QPushButton的信号、API和右键菜单创建
QPushButton的信号、API和右键菜单创建
QPushButton的信号、API和右键菜单创建
################################ # PyQt5中文网 - PyQt5全套视频教程 # # https://www.PyQt5.cn/ # # 主讲: 村长 # ################################ ''' setFlat(bool) # 默认为False isFlat() setAutoDefault(True) # 点击后会焦点停留 setDefault(True) # 点击前自动默认 ''' from PyQt5.Qt import * import sys class Window(QWidget): # QContextMenuEvent def contextMenuEvent(self, evt): menu = QMenu(self) menuAction1 = QAction(QIcon('123.jpg'), '菜单1', self) menuAction1.triggered.connect(lambda: print('WWWWWW')) menu.addAction(menuAction1) menu.exec_(evt.globalPos()) app = QApplication(sys.argv) window = Window() window.setWindowTitle('QPushButton - PyQt5中文网') window.resize(600,450) window.move(300,300) btn4 = QPushButton(QIcon('123.jpg'),'按钮',window) # ==============控件菜单设置=============== # 代码分割线 - 开始 # 上面需要创建一个按钮 # 创建菜单对象 menu = QMenu() # 菜单中不要创建文本和图标,会被上面的主按钮覆盖 # 构造一个菜单选项 menuAction1 = QAction(QIcon('123.jpg'),'菜单1',window) menuAction1.triggered.connect(lambda : print('WWWWWW')) # 添加菜单列表 menu.addAction(menuAction1) btn4.setMenu(menu) # ==============控件菜单设置=============== # 代码分割线 - 结束 # ==============按钮扁平化处理=============== # 代码分割线 - 开始 # btn4.setStyleSheet('background-color:green') # btn4.setFlat(True) # ==============按钮扁平化处理=============== # 代码分割线 - 结束 # ==============默认按钮处理=============== # 代码分割线 - 开始 btn5 = QPushButton(window) btn5.setText('默认按钮') btn5.move(150,150) btn6 = QPushButton(window) btn6.setText('默认按钮') btn6.move(150,200) btn6.setAutoDefault(True) # 点击后会焦点停留 btn6.setDefault(True) # 点击前自动默认 # ==============默认按钮处理=============== # 代码分割线 - 结束 # ==============右键菜单=============== # 代码分割线 - 开始 # 第一种方法:上面创建的类中 # 第二种方法:下面的right_menu函数中 def right_menu(point): menu = QMenu(window) menuAction1 = QAction(QIcon('123.jpg'), '菜单1', window) menuAction1.triggered.connect(lambda: print('QQQQ')) menu.addAction(menuAction1) menu.exec_(window.mapToGlobal(point)) # window.setContextMenuPolicy(Qt.DefaultContextMenu) window.setContextMenuPolicy(Qt.CustomContextMenu) window.customContextMenuRequested.connect(right_menu) # ==============右键菜单=============== # 代码分割线 - 结束 window.show() sys.exit(app.exec_())