1、QPushButton简介
用来给用户点击,来完成某种动作的控件——一般是矩形
比如:登录按钮,注册按钮,关闭按钮......等等
继承QAbstractButton
2、QPushButton——构造函数
(1)框架
(2)操作
1 btn = QPushButton(QIcon('xxx.png'),'xxx',window) # 实现以下功能 2 # btn.setParent(window) 3 # btn.setText("xxx") 4 # btn.setIcon(QIcon('xxx.png'))
3、QPushButton——菜单设置
(1)框架
QMenu()继承QWidget
(2)操作:菜单添加行为动作,菜单添加子菜单,子菜单添加行为动作,构造函数
1 # *******************菜单设置**********************开始 2 import sys 3 from PyQt5.Qt import * 4 5 app=QApplication(sys.argv) 6 7 window=QWidget() 8 window.setWindowTitle("菜单设置") 9 window.resize(500,500) 10 11 btn = QPushButton(QIcon('xxx.png'),'xxx',window) 12 # *********菜单设置***********begin 13 menu = QMenu() 14 15 # 子菜单 16 open_recent_menu = QMenu(menu) 17 open_recent_menu.setTitle("最近打开") 18 # open_recent_menu.setIcon() # 也可以设置图标 19 20 # 创建相应的行为动作 21 # new_action = QAction() 22 # new_action.setText("新建") 23 # new_action.setIcon(QIcon('xxx.png')) 24 new_action = QAction(QIcon('xxx.png'),'新建',menu) # 构造函数,实现以上功能 25 new_action.triggered.connect(lambda :print("新建文件")) 26 27 open_action = QAction(QIcon('xxx.png'),'打开',menu) # 构造函数,实现以上功能 28 open_action.triggered.connect(lambda :print("打开文件")) 29 30 exit_action = QAction('退出',menu) # 构造函数,实现以上功能 31 exit_action.triggered.connect(lambda :print("退出程序")) 32 33 file_action = QAction("Python-GUI-PyQt",open_recent_menu) 34 open_recent_menu.addAction(file_action) # 添加到子菜单 35 # 将行为动作添加到菜单 36 menu.addAction(new_action) 37 menu.addAction(open_action) 38 menu.addMenu(open_recent_menu) # 添加子菜单 39 menu.addSeparator() # 添加分割线 40 menu.addAction(exit_action) 41 # *********菜单设置***********end 42 43 btn.setMenu(menu) # 控件里加入菜单 44 45 # btn.showMenu() # 展示菜单 46 print(btn.menu()) # 获取菜单 47 48 window.show() 49 sys.exit(app.exec_()) 50 # *******************菜单设置**********************结束
4、QPushButton——扁平化
(1)框架
(2)操作:btn.isFlat(True)
1 # *******************扁平化**********************开始 2 import sys 3 from PyQt5.Qt import * 4 5 app=QApplication(sys.argv) 6 7 window=QWidget() 8 window.setWindowTitle("扁平化") 9 window.resize(500,500) 10 11 btn = QPushButton(QIcon('xxx.png'),'哈哈',window) 12 btn.setStyleSheet('background-color:red') 13 # 扁平化 设置了扁平化不显示背景色 14 btn.setFlat(True) 15 print(btn.isFlat()) 16 17 window.show() 18 sys.exit(app.exec_()) 19 # *******************扁平化**********************结束
5、QPushButton——默认处理
(1)框架
(2)操作:
1 # *******************默认处理**********************开始 2 import sys 3 from PyQt5.Qt import * 4 5 app=QApplication(sys.argv) 6 7 window=QWidget() 8 window.setWindowTitle("默认处理") 9 window.resize(500,500) 10 11 btn1 = QPushButton(QIcon('xxx.png'),"btn",window) 12 btn2 = QPushButton("btn",window) 13 btn2.move(200,200) 14 15 btn1.setAutoDefault(True) # 用户点击后才会默认 16 17 print(btn1.autoDefault()) # True 18 print(btn2.autoDefault()) # False 19 20 btn2.setDefault(True) # 一开始就是默认处理 21 22 window.show() 23 sys.exit(app.exec_()) 24 # *******************默认处理**********************结束
6、QpushButton——右键菜单
(1)框架
(2)操作
方法一:通过对象方法调用contextMenuEvent( )
1 # *******************右键菜单**********************开始 2 import sys 3 from PyQt5.Qt import * 4 5 class Window(QWidget): 6 def contextMenuEvent(self, evt): 7 print("展示菜单") 8 menu = QMenu(self) 9 10 open_action = QAction(QIcon('xxx.png'), "打开文件") 11 open_action.triggered.connect(lambda: print("打开文件")) 12 new_action = QAction(QIcon('xxx.png'), "新建文件") 13 new_action.triggered.connect(lambda: print("新建文件")) 14 save_action = QAction(QIcon('xxx.png'), "保存") 15 save_action.triggered.connect(lambda: print("保存")) 16 exit_action = QAction(QIcon('xxx.png'), "退出") 17 exit_action.triggered.connect(lambda: print("退出")) 18 19 menu.addAction(open_action) 20 menu.addAction(new_action) 21 menu.addAction(save_action) 22 menu.addAction(exit_action) 23 menu.exec_(QPoint(evt.globalPos())) 24 25 app=QApplication(sys.argv) 26 27 window=Window() 28 window.setWindowTitle("右键菜单") 29 window.resize(500,500) 30 31 btn = QPushButton(QIcon('xxx.png'),'菜单',window) 32 menu = QMenu() 33 34 open_action = QAction(QIcon('xxx.png'),"打开文件") 35 open_action.triggered.connect(lambda :print("打开文件")) 36 menu.addAction(open_action) 37 btn.setMenu(menu) 38 39 window.show() 40 sys.exit(app.exec_()) 41 # *******************右键菜单**********************结束
1 # *******************右键菜单--2**********************开始 2 import sys 3 from PyQt5.Qt import * 4 5 def show_menu(point): 6 print("展示菜单",point) 7 menu = QMenu(window) 8 9 open_action = QAction(QIcon('xxx.png'), "打开文件") 10 open_action.triggered.connect(lambda: print("打开文件")) 11 new_action = QAction(QIcon('xxx.png'), "新建文件") 12 new_action.triggered.connect(lambda: print("新建文件")) 13 save_action = QAction(QIcon('xxx.png'), "保存") 14 save_action.triggered.connect(lambda: print("保存")) 15 exit_action = QAction(QIcon('xxx.png'), "退出") 16 exit_action.triggered.connect(lambda: print("退出")) 17 18 menu.addAction(open_action) 19 menu.addAction(new_action) 20 menu.addAction(save_action) 21 menu.addAction(exit_action) 22 23 dest_point = window.mapToGlobal(point) 24 menu.exec_(QPoint(dest_point)) 25 26 app=QApplication(sys.argv) 27 28 window=QWidget() 29 window.setWindowTitle("右键菜单") 30 window.resize(500,500) 31 32 btn = QPushButton(QIcon('xxx.png'),'菜单',window) 33 menu = QMenu() 34 35 open_action = QAction(QIcon('xxx.png'),"打开文件") 36 open_action.triggered.connect(lambda :print("打开文件")) 37 menu.addAction(open_action) 38 btn.setMenu(menu) 39 40 window.setContextMenuPolicy(Qt.CustomContextMenu) 41 window.customContextMenuRequested.connect(show_menu) 42 43 window.show() 44 sys.exit(app.exec_()) 45 # *******************右键菜单--2**********************结束
7、QCommandLinkButton
(1)框架
扁平化
继承QPushButton
(2)操作
1 # *******************QCommandLinkButton**********************开始 2 import sys 3 from PyQt5.Qt import * 4 5 app=QApplication(sys.argv) 6 7 window=QWidget() 8 window.setWindowTitle("QCommandLinkButton") 9 window.resize(500,500) 10 11 btn = QCommandLinkButton('标题','描述',window) 12 btn.setText("标题2") 13 btn.setDescription("描述。。。") 14 btn.setIcon(QIcon('xxx.png')) 15 16 print(btn.description()) 17 18 window.show() 19 sys.exit(app.exec_()) 20 # *******************QCommandLinkButton**********************结束
时间:2020-03-19 15:09:13
作者(QQ):931935931