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

 

 

天子驕龍


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM