zoukankan      html  css  js  c++  java
  • 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!

    博文目录

    博客地址

  • 相关阅读:
    java 编码问题
    关于时间
    页面
    关于微信
    01-jQuery的介绍
    15-BOM
    14-定时器
    13-JS中的面向对象
    12-关于DOM操作的相关案例
    购物车练习
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/11931605.html
Copyright © 2011-2022 走看看