- QPushButton继承于基类QAbstractButton;QAbstractButton的方法QPushButton都可以用;用来给用户点击,来完成某种动作的控件
案例:
- 控件建立
- 扁平化
- 简单菜单建立
- 右击菜单建立
from PyQt5.Qt import * import sys # *************控件建立***************开始 # app = QApplication(sys.argv) # # window = QWidget() # # window.setWindowTitle("按钮的功能") # window.resize(500, 500) # # # btn = QPushButton(window) # # btn.setParent(window) # 设置父类 # # btn.setText("xxx") # 添加文本 # # btn.setIcon(QIcon("dp.png")) # 添加图片 # btn = QPushButton(QIcon('dp.png'),'按钮',window) # 设置方法二 # # window.show() # sys.exit(app.exec_()) # *************控件建立***************结束 # *************扁平化***************开始 # app = QApplication(sys.argv) # # window = QWidget() # # window.setWindowTitle("按钮的功能") # window.resize(500, 500) # # btn = QPushButton(QIcon('dp.png'),'按钮',window) # btn.setFlat(True) # 设置扁平化 # print(btn.isFlat()) # # window.show() # sys.exit(app.exec_()) # *************扁平化***************结束 # *************简单菜单***************开始 # app = QApplication(sys.argv) # # window = QWidget() # # window.setWindowTitle("按钮的功能") # window.resize(500, 500) # # btn = QPushButton(QIcon('dp.png'),'按钮',window) # # # 1.设置一个菜单对象 # menu = QMenu(window) # # # 2.添加行为动作;分割线 # # new_action = QAction() # 添加一个行为动作 # # new_action.setText("新建") # 设置文本 # # new_action.setIcon(QIcon("dp.png")) #添加图片 # new_action = QAction(QIcon("dp.png"), "新建", menu) # 添加行为方式二 # new_action.triggered.connect(lambda :print("新建文件")) # # open_action = QAction(QIcon("dp.png"), "打开", menu) # open_action.triggered.connect(lambda :print("打开文件")) # # exit_action = QAction("退出", menu) # exit_action.triggered.connect(lambda :print("退出程序")) # # file_action = QAction("Python-GUI编程-PyQt5") # # #添加子菜单 # open_recent_menu = QMenu(menu) # open_recent_menu.setTitle("最近打开") # # # 3.将动作行为,子菜单添加到菜单中 # menu.addAction(new_action) #添加行为 # menu.addAction(open_action) # open_recent_menu.addAction(file_action) # menu.addMenu(open_recent_menu) #添加子菜单 # menu.addSeparator() # 添加分割线 # menu.addAction(exit_action) # # # 4.将菜单设置到按钮中 # btn.setMenu(menu) # # window.show() # sys.exit(app.exec_()) # *************简单菜单***************结束 # *************右击菜单方法一***************开始 # class Window(QWidget): # def contextMenuEvent(self, evt): # print("默认上下文菜单调用这个方法") # # 1.添加需要展示的菜单 # menu = QMenu(self) # # # 2.添加菜单内容 # # 2.1添加子菜单 # open_recent_menu = QMenu(menu) # open_recent_menu.setTitle("最近打开") # # # 2.2添加行为动作;分割线 # new_action = QAction(QIcon("dp.png"), "新建", menu) # new_action.triggered.connect(lambda: print("新建文件")) # # open_action = QAction(QIcon("dp.png"), "打开", menu) # open_action.triggered.connect(lambda: print("打开文件")) # # exit_action = QAction("退出", menu) # exit_action.triggered.connect(lambda: print("退出程序")) # # file_action = QAction("Python-GUI编程-PyQt5") # # menu.addAction(new_action) # menu.addAction(open_action) # open_recent_menu.addAction(file_action) # menu.addMenu(open_recent_menu) # menu.addSeparator() # menu.addAction(exit_action) # # # 3.展示菜单,会传递一个对象:Qpoint:展示在那个点 # # menu.exec_(QPoint(100, 100) # Qpoint:展示在那个点(先对于桌面) # menu.exec_(evt.globalPos()) # 全局位置:窗口 # # menu.exec_(evt.pos()) # 局部位置:桌面 # # # 1. 创建一个应用程序对象 # app = QApplication(sys.argv) # # # 2. 控件的操作 # # 2.1 创建控件 # window = Window() # # 2.2 设置控件 # window.setWindowTitle("按钮的功能") # window.resize(500, 500) # # # btn = QPushButton(window) # btn.setParent(window) # btn.setText("xxx") # btn.setIcon(QIcon("dp.png")) # # window.show() # # sys.exit(app.exec_()) # *************右击菜单方法一***************结束 # *************右击菜单方法二***************开始 # # 1. 创建一个应用程序对象 # app = QApplication(sys.argv) # # # 2. 控件的操作 # # 2.1 创建控件 # window =QWidget() # # 2.2 设置控件 # window.setWindowTitle("按钮的功能") # window.resize(500, 500) # # btn = QPushButton(window) # btn.setParent(window) # btn.setText("xxx") # btn.setIcon(QIcon("dp.png")) # # def show_menu(point): # # 1.设置展示菜单 # menu = QMenu(window) # # # 2.添加菜单控件 # open_recent_menu = QMenu(menu) # open_recent_menu.setTitle("最近打开") # # # 添加行为动作;分割线 # new_action = QAction(QIcon("xxx.png"), "新建", menu) # new_action.triggered.connect(lambda: print("新建文件")) # # open_action = QAction(QIcon("xxx.png"), "打开", menu) # open_action.triggered.connect(lambda: print("打开文件")) # # exit_action = QAction("退出", menu) # exit_action.triggered.connect(lambda: print("退出程序")) # # file_action = QAction("Python-GUI编程-PyQt5") # # menu.addAction(new_action) # menu.addAction(open_action) # open_recent_menu.addAction(file_action) # menu.addMenu(open_recent_menu) # menu.addSeparator() # menu.addAction(exit_action) # # # point # # dest_point = window.mapToGlobal(point) # 局部点映射到桌面 # # menu.exec_(dest_point) # menu.exec_(point) # 桌面位置点 # # window.setContextMenuPolicy(Qt.CustomContextMenu) # 自定义上下文菜单策略 # window.customContextMenuRequested.connect(show_menu) # 信号 # # # 2.3 展示控件 # window.show() # # # 3. 应用程序的执行, 进入到消息循环 # sys.exit(app.exec_()) # *************右击菜单方法二***************结束