[PyQt5] Three, QPushButton

function list

1. Constructor

  • QPushButton(): Create a button without a parent control
  • QPushButton(parent): While creating the button, set the parent control
  • QPushButton(text, parent): While creating the button, set the prompt text and parent control
  • QPushButton(icon, text, parent): When creating a button, set the icon, prompt text and parent control

2. Menu settings

  • setMenu(QMenu): set the menu

  • menu(): get the menu

  • showMenu(): Display menu

  • QMenu:
    addMenu(QMenu): add submenu
    addAction(QAction): add behavior action
    addSeparator(): add dividing line

  • QMenu control settings:
    setTitle(str)
    setIcon(QIcon(picture path))

  • QAction setting:
    setText(str)
    setIcon(QIcon(picture path))
    triggered: signal trigger

sample source code

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

Guess you like

Origin blog.csdn.net/qq_44921056/article/details/128569444