5.3 QPushButton按钮控件及创建菜单
一、QPushButton按钮控件及创建菜单
1.基本知识
'''
setMenu(QMenu) 设置菜单
menu() 获取菜单
showMenu() 展示菜单
QMenu()继承自QWidget
addMenu(QMenu) 添加子菜单
addSeparator() 添加分割线
addAction(QAction) 添加行为动作
QMenu控件设置:setTitle() setIcon(QIcon)
QAction设置:setText() setIcon(QIcon) 信号:triggered
'''
2.代码
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('QPushButton - PyQt5中文网')
window.resize(600, 450)
window.move(300, 300)
# ==============QPushbutton的构造函数=============== # 代码分割线 - 开始
# btn1 = QPushButton() #按钮会当作单独的页面 会有两个页面
# btn2 = QPushButton(window) #会在window中生成一个按钮
# btn3 = QPushButton('按钮',window)#会在window中生成一名称为‘按钮’的控件
#1.创建按钮
btn4 = QPushButton(QIcon('aaa.png'), '按钮', window)#会在window中生成一名称为‘按钮’,图标为aaa
# ==============QPushbutton的构造函数=============== # 代码分割线 - 结束
# ==============控件菜单设置=============== # 代码分割线 - 开始
# 流程参考test.py
# 2.创建菜单对象
menu = QMenu()
# 3.创建子菜单
sun_menu = QMenu(menu)
sun_menu.setTitle('子菜单标题') #设置子菜单标题
# 4.构造一个菜单
menuAction1 = QAction(QIcon('aaa.png'), '菜单1', window)
#menuAction1.triggered.connect(lambda : print('WWWWWW'))
menuAction2 = QAction(QIcon('aaa.png'), '菜单2', window)
#menuAction2.triggered.connect(lambda : print('SSSSSSSS'))
menuAction3 = QAction(QIcon('aaa.png'),'菜单3', window)
#menuAction3.triggered.connect(lambda : print('AAAAA'))
sun_menuAction = QAction(QIcon('aaa.png'), '子菜单1', window)
# 5.添加菜单列表
menu.addAction(menuAction1)
menu.addAction(menuAction2)
menu.addSeparator() # 添加分割线
# 6.添加子菜单列表
menu.addMenu(sun_menu) # 先在主菜单栏中添加一个子菜单
sun_menu.addAction(sun_menuAction) # 然后为上面的子菜单添加子菜单
menu.addAction(menuAction3)
# 7.为按钮添加菜单
btn4.setMenu(menu)
# btn4.showMenu() # 继承与QWidget所以可以单独展示
# ==============控件菜单设置=============== # 代码分割线 - 结束
window.show()
btn4.showMenu()
sys.exit(app.exec_())
3.运行结果
分类:
可视化界面 / PYQT5
标签:
python可视化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码