GUI编程--PyQt5--QPushButton

创建按钮

btn1 = QPushButton()
btn1.setParent(win)
btn1.setText("btn1")

btn2 = QPushButton(win)
btn2.setText("btn2")

btn3 = QPushButton("btn3", win)

btn4 = QPushButton(QIcon, "btn4", win)

菜单功能

在这里插入图片描述

# 菜单对象
 menu_obj1 = QMenu() # 菜单控件  独立
 # 菜单添加 动作
 action1 = QAction(menu_obj1) # 动作控件  放入菜单
 action1.setText("新建")
 action1.setIcon(QIcon("./imgs/dog.jpg"))
 # action1.setFont(QFont("字体", 20, 10, True))
 action1.triggered.connect(lambda : print("开始新建..."))

 # 菜单对象 添加 动作
 menu_obj1.addAction(action1) # 动作

 # 添加子菜单
 sub_menu = QMenu(menu_obj1)
 sub_menu.setTitle("最近打开")
 sub_action = QAction("文件1", sub_menu)
 sub_menu.addAction(sub_action)
 menu_obj1.addMenu(sub_menu)

 # 添加分隔符
 menu_obj1.addSeparator()

 # 退出
 exit_action = QAction("退出", menu_obj1)
 menu_obj1.addAction(exit_action)

 # 按钮添加菜单
 btn3.setMenu(menu_obj1)

 btn3.showMenu()  #  展示菜单
 btn3.menu()   # 查看菜单
	
 btn3.setFlat(True)  # 扁平化  不在展示背景色 不在凸起
 btn3.isFlat()
 btn3.setDefault(True)
 

右键菜单

在这里插入图片描述
默认的右键菜单

# __author__ = "laufing"
# class_based_qt
# laufing_qt

# __author__ = "laufing"

from PyQt5.QtGui import QIcon, QPixmap, QCursor, QKeyEvent
from PyQt5 import QtGui
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplication, QLabel, QDesktopWidget, QPushButton, QMenu, QMenuBar, QAction
import sys


class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        # 窗口标题
        self.setWindowTitle("laufing[*]")
        # 窗口图标
        pixmap = QPixmap("./imgs/dog.jpg").scaled(50, 50)
        icon = QIcon(pixmap)
        # icon.addPixmap(pixmap, QIcon.Normal, QIcon.Off)
        self.setWindowIcon(icon)

        # 设置宽高
        self.resize(500, 600)

        # 窗口居中
        desktop_geo = QDesktopWidget().geometry()
        width, height = desktop_geo.width(), desktop_geo.height()
        self.move(width / 2 - self.width() / 2, height / 2 - self.height() / 2)


        # 设置文本
        self.label = QLabel(self)
        self.label.setText("测试按钮被按下")
        self.label.resize(200, 200)
        self.label.move(100, 100)
	
    def contextMenuEvent(self, event: QtGui.QContextMenuEvent):
        # 右键 的事件
        # 创建菜单
        menu = QMenu()
        action = QAction("打开", menu)
        action2 = QAction("编辑", menu)
        action3 = QAction("退出", menu)

        menu.addAction(action)
        menu.addAction(action2)
        menu.addSeparator()
        menu.addAction(action3)

        # 展示菜单
        menu.exec_(event.globalPos())



if __name__ == '__main__':
    import time
    # 窗口应用程序
    app = QApplication(sys.argv)

    window = Window()
    window.show()

    status_code = app.exec_()
    sys.exit(status_code)

另外,还可以设置右键菜单的策略:

window = Window()
# 设置右键的菜单策略
# window.setContextMenuPolicy(Qt.ContextMenuPolicy.DefaultContextMenu) 默认的右键 触发contextMenuEvent
window.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
window.customContextMenuRequested.connect(lambda : print("用户自定义的右键菜单"))

window.show()

 
 

子类QCommandLineButton

btn = QCommandLineButton("text", 'description', parent)

btn.setText("xxxx")
btn.setDescription("xxx")
btn.setIcon(QIcon(xx))

btn.text()
btn.description()
btn.icon()

相对于窗口的局部坐标点转为相对于屏幕的全局坐标点

window.mapToGlobal(point)
window.mapToParent(point)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

laufing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值