功能列表
1、构造函数
- QPushButton():创建一个无父控件的按钮
- QPushButton(parent):创建按钮的同时,设置父控件
- QPushButton(text, parent):创建按钮的同时,设置提示文本和父控件
- QPushButton(icon, text, parent):创建按钮的同时,设置图标,提示文本和父控件
2、菜单设置
-
setMenu(QMenu):设置菜单
-
menu():获取菜单
-
showMenu():展示菜单
-
QMenu:
addMenu(QMenu):添加子菜单
addAction(QAction):添加行为动作
addSeparator():添加分割线 -
QMenu控件设置:
setTitle(str)
setIcon(QIcon(图片路径)) -
QAction设置:
setText(str)
setIcon(QIcon(图片路径))
triggered:信号触发
示例源码
# -*- coding: UTF-8 -*-
"""
# @Author: 爱打瞌睡的CV君
# @CSDN: https://blog.csdn.net/qq_44921056
"""
from PyQt5.Qt import *
import sys
# 1. 创建一个应用程序对象
app = QApplication(sys.argv)
# 2. 控件的操作
# 2.1 创建控件
"""
构造函数
QPushButton():创建一个无父控件的按钮
QPushButton(parent):创建按钮的同时,设置父控件
QPushButton(text, parent):创建按钮的同时,设置提示文本和父控件
QPushButton(icon, text, parent):创建按钮的同时,设置图标,提示文本和父控件
"""
# window = QWidget()
#
# window.setWindowTitle("按钮的功能")
# window.resize(500, 500)
#
# # btn要设置一个父控件
# # btn = QPushButton(QIcon("xxx.png"), "按钮1", window) # 这行与下面四行等价
# btn = QPushButton()
# btn.setParent(window)
# btn.setText("按钮1")
# btn.setIcon(QIcon("xxx.png"))
"""
菜单设置
setMenu(QMenu):设置菜单
menu():获取菜单
showMenu():展示菜单
QMenu:
addMenu(QMenu):添加子菜单
addAction(QAction):添加行为动作
addSeparator():添加分割线
QMenu控件设置:
setTitle(str)
setIcon(QIcon(图片路径))
QAction设置:
setText(str)
setIcon(QIcon(图片路径))
triggered:信号触发
"""
# 需要和上一部分一起执行
# menu = QMenu() # 创建菜单,功能有:新建、打开、关闭
#
# new_action = QAction(QIcon("xxx.png"), "新建", menu) # 这行与下面三行等价
# # new_action = QAction()
# # new_action.setText("新建")
# # new_action.setIcon(QIcon("xxx.png"))
# new_action.triggered.connect(lambda: print("新建文档"))
#
# open_action = QAction(QIcon("xxx.png"), "打开", menu)
# open_action.triggered.connect(lambda: print("打开文档"))
#
# close_action = QAction("关闭", menu)
# close_action.triggered.connect(lambda: print("关闭文档"))
#
# open_recent_menu = QMenu() # 添加子菜单
# open_recent_menu.setTitle("最近打开")
#
# file_action = QAction("最近打开的文档") # 设置子菜单的功能
#
# menu.addAction(new_action) # 讲事件添加到菜单
# menu.addAction(open_action)
# open_recent_menu.addAction(file_action)
# menu.addMenu(open_recent_menu) # 添加子菜单(一个菜单添加另一个菜单,用addMenu())
# menu.addSeparator() # 添加分割线
# menu.addAction(close_action)
#
# btn.setMenu(menu) # 将菜单设置到按钮btn上
"""
右击菜单
需要重写方法
"""
class Window(QWidget):
def contextMenuEvent(self, evt):
# QContextMenuEvent
menu = QMenu(self) # 创建菜单,功能有:新建、打开、关闭
new_action = QAction(QIcon("xxx.png"), "新建", menu) # 这行与下面三行等价
# new_action = QAction()
# new_action.setText("新建")
# new_action.setIcon(QIcon("xxx.png"))
new_action.triggered.connect(lambda: print("新建文档"))
open_action = QAction(QIcon("xxx.png"), "打开", menu)
open_action.triggered.connect(lambda: print("打开文档"))
close_action = QAction("关闭", menu)
close_action.triggered.connect(lambda: print("关闭文档"))
open_recent_menu = QMenu() # 添加子菜单
open_recent_menu.setTitle("最近打开")
file_action = QAction("最近打开的文档") # 设置子菜单的功能
menu.addAction(new_action) # 讲事件添加到菜单
menu.addAction(open_action)
open_recent_menu.addAction(file_action)
menu.addMenu(open_recent_menu) # 添加子菜单(一个菜单添加另一个菜单,用addMenu())
menu.addSeparator() # 添加分割线
menu.addAction(close_action)
# point
menu.exec_(evt.globalPos()) # 确定右击菜单时,点的位置
window = Window()
# 2.3 展示控件
window.show()
# 3. 应用程序的执行, 进入到消息循环
sys.exit(app.exec_())