• QToolButton按钮


    继承 QAbstractButton   

    QToolButton是与工具操作相关的按钮,通常和QToolBar搭配使用。QToolButton一般不用来显示文本,而显示图标QIcon

    需要  from PyQt5.QtWidgets import QToolButton

    请注意不能在QToolButton实例化的时候直接传入文本字符串,因为该控件没有相应的初始化函数。也就是说这样做是错误的:self.test_button = QToolButton('Test', self)  如果要设置文本的话得通过setText()方法。但是setText()方法和setIcon()方法都使用的话,只会显示图标

    import sys
    from PyQt5.QtGui import QIcon
    from PyQt5.QtWidgets import QApplication, QWidget, QToolButton,QMenu,QAction
    from PyQt5.QtCore import Qt
    
    class Demo(QWidget):
        def __init__(self):
            super(Demo, self).__init__()
            self.resize(100,100)
            self.button = QToolButton(self)  # 实例化按钮
            self.button.move(50,30)
            self.button.setIcon(QIcon('大象.ico'))  #设置图标,也可以是png图片
            self.button.setToolTip('提示文本')    #设置提示文本
            self.button.setToolButtonStyle(Qt.ToolButtonFollowStyle)#设置按钮风格
            #Qt.ToolButtonIconOnly    仅显示图标-默认
            #Qt.ToolButtonTextOnly    仅显示文字
            #Qt.ToolButtonTextBesideIcon    文本显示在图标旁边
            #Qt.ToolButtonTextUnderIcon    文本显示在图标下方
            #Qt.ToolButtonFollowStyle   遵循风格
    
            #toolButtonStyle()   #获取样式风格
    
            self.button.setArrowType(Qt.UpArrow)   #设置箭头
            #Qt.NoArrow     无箭头
            #Qt.UpArrow     向上箭头
            #Qt.DownArrow    向下箭头
            #Qt.LeftArrow    向左箭头
            #Qt.RightArrow    向右箭头
    
            #arrowType()   获取箭头类型
    
            self.button.setAutoRaise(True)  #设置是否自动提升-鼠标在上面时会自动凸起
            #autoRaise()    返回是否自动凸起
    
            menu=QMenu(self)
            action1=QAction(menu)
            action1.setText('新建')
            action1.setData([1,2,3])  #给行为绑定数据
            action1.triggered.connect(self.A)
            menu.addAction(action1)
            self.button.setMenu(menu)   #给按钮设置菜单
            self.button.setPopupMode(QToolButton.MenuButtonPopup)  #设置菜单弹出模式
            #QToolButton.DelayedPopup    鼠标按住一会才显示-默认
            #QToolButton.MenuButtonPopup    有一个专门的指示箭头,点击箭头才显示
            #QToolButton.InstantPopup    点了按钮就显示,点击信号不会发射
    
            self.button.triggered.connect(self.B)  #点击行为时发出这个信号
            #会向槽函数传递被点击的行为
    
        def A(self):
            print('点击了新建行为')
        def B(self,action):
            print('点击了行为',action,action.data())  #action.data() 获取行为绑定的数据
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        demo = Demo()
        demo.show()
        sys.exit(app.exec_())

    天子骄龙

  • 相关阅读:
    2019.8.8 python day03
    2019.8.7 python进阶day02
    2019.8.6(python day01)
    2019.8.5
    2019.8.2
    2019.8.1
    2019.7.31
    2019.7.30
    面向对象进阶
    访问可见性问题和@property装饰器
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10357450.html
Copyright © 2020-2023  润新知