PyQt(Python+Qt)学习随笔:toolButton的popupMode属性

属性介绍

toolButton的popupMode属性为设有菜单集或Action列表的toolButton指定菜单弹出模式,类型为枚举类型ToolButtonPopupMode,有如下三种模式:
1、DelayedPopup(值为0):按住toolButton一定时间(超时取决于样式,请参见QStyle.SH_ToolButton_PopupDelay)后,将显示菜单。典型的应用程序示例是一些web浏览器工具栏中的“后退”按钮。如果用户单击它,浏览器只需浏览回上一页。如果用户按下并按住按钮一段时间,工具按钮将显示包含当前历史列表的菜单;

2、MenuButtonPopup(值为1):在此模式下,toolButton显示一个特殊箭头,指示有弹出菜单存在。当按下toolButton上的箭头一部分时,将弹出菜单;

3、InstantPopup(值为2):按下toolButton时,立即显示弹出菜单。toolButton自己对应的Action不会触发。

缺省类型为DelayedPopup,可以通过popupMode()、setPopupMode(ToolButtonPopupMode mode)来读取和设置该属性。

案例

1、案例说明

在一个mainWindow中,设置了个system菜单,system菜单包含Quit和About两个菜单项以及工具栏,对应动作分别为actionQuit和actionAbout。在窗口中部署了个toolButton按钮,界面信息如下:
在这里插入图片描述
Quit菜单对应动作为关闭窗口,与系统槽函数close()关联,About菜单对应动作为显示一个提示信息,与自定义槽函数about()关联。

该界面对应的派生类定义如下:

class Ui_mainWindowWin(QtWidgets.QMainWindow,mainWinTest.Ui_MainWindow):
    def __init__(self):
        super(Ui_mainWindowWin, self).__init__()
        self.setupUi(self)
        self.toolButton.setDefaultAction(self.actionAbout) #将toolButton的点击与actionAbout关联
        self.toolButton.setMenu(self.menusystem) #将窗口菜单同时设置为toolButton的弹出菜单

    def about(self):
        print("In about")
        QMessageBox.information(self,'About','This is a toolButton test!',QMessageBox.Ok)

案例1、将弹出模式设置为DelayedPopup

对应toolButton设置信息如下:
在这里插入图片描述
运行后初始界面如下:
在这里插入图片描述
可以看到直接点击toolButton并立即释放按钮会显示About信息,如下:

在这里插入图片描述
但当点击后不立即释放后弹出了菜单,如图:
在这里插入图片描述

案例2、将弹出模式设置为MenuButtonPopup

对应toolButton设置信息如下:
在这里插入图片描述
运行后初始界面如下:
在这里插入图片描述
点击上图中按钮非右边朝下箭头部分显示About信息,如图:
在这里插入图片描述
点击图中按钮右边朝下箭头部分则弹出菜单,如图:
在这里插入图片描述

案例3、将弹出模式设置为InstantPopup

对应toolButton设置信息如下:
在这里插入图片描述
初始运行界面如下:
在这里插入图片描述
点击toolButton的任何部分都显示弹出菜单,如图:
在这里插入图片描述

大家可以对照这三个案例与上面介绍来验证。

老猿Python,跟老猿学Python!

博文目录

博客地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LaoYuanPython

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

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

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

打赏作者

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

抵扣说明:

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

余额充值