Python GUI编程网 > PyQt5常用控件属性和方法学习 > QPushButton的信号、API和右键菜单创建
python教程

QPushButton的信号、API和右键菜单创建

发布日期:2020年12月9日 13:25
阅读:3087
作者:Python GUI编程网

QPushButton的信号、API和右键菜单创建

00:00 / 01:23
1x
2x
1.5x
1.25x
1x
0.8x
0.5x

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_())