[Python PyQT] QToolBar的一些使用技巧


QT官網:https://www.qt.io/
QT(qt5)官方文檔:http://doc.qt.io/qt-5/,查詢某個類的文檔可以直接在後面加上類名即可。
    如:QAction Class文檔: http://doc.qt.io/qt-5/qaction.html
           QToolBar Class文檔:http://doc.qt.io/qt-5/qtoolbar.html
    (注:文檔中雖然是針對C++的,但PyQT中基本都可以直接使用。)


1.  QToolBar的創建及操作響應:
    _font = QFont()
    _font.setPixelSize(12)
    toolbar = QToolBar(self)

    # 創建QAction
    action_radio_btn1 = toolbar.addAction('btn1')
    action_radio_btn1.setCheckable(True)
    action_radio_btn1.setFont(_font)
    action_radio_btn2 = toolbar.addAction('btn2')
    action_radio_btn2.setCheckable(True)
    action_radio_btn2.setFont(_font)

    # 爲單選按鈕創建組
    function_group = QActionGroup(toolbar)
    function_group.setExclusive(True)
    function_group.addAction(action_radio_btn1)
    function_group.addAction(action_radio_btn2)
    function_group.triggered.connect(_function_selected_handler)
    # 初始化button1爲選中狀態
    action_radio_btn1.setChecked(True)

    # 增加分割線
    toolbar.addSeparator()
    
    action_btn3 = toolbar.addAction('btn3')
    action_btn3.setFont(_font)
    action_btn3.triggered.connect(_button3_handler)

    # 增加QPushButton (作爲Widget添加)
    push_btn4 = QPushButton('btn4')
    push_btn4.setFlat(True)
    push_btn4.clicked.connect(_push_button4_handler)
    action_push_button4 = toolbar.addWidget(push_btn4)
    action_push_button4.setEnabled(False)

 

def _function_selected_handler(action):

    if action == action_radio_btn1:

        pass  # TODO

      elif action == action_radio_btn2:
        pass  # TODO


def _button3_handler():
    pass  # TODO


def _push_button4_handler():

    pass  # TODO

 

2.  QToolBar的背景顏色和前景顏色設置: 
    toolbar = QToolBar(self)
    toolbar.setAutoFillBackground(True)
    
    # Method1:僅設置Toolbar的背景色爲紅色
    toolbar.setPalette(QPalette(QColor(0xFF, 0x00, 0x00)))
    # Method2:同時設置Toolbar的背景色和前景色
    _palette = QPalette()
    _palette.setColor(QPalette.Button, QColor(0x00, 0x00, 0xFF))
    _palette.setColor(QPalette.ButtonText, QColor(0xFF, 0x00, 0x00))
    toolbar.setPalette(_palette)


3. 單獨設置QToolBar上某一按鈕的顏色:
   由於QAction類沒有setPalette方法,暫不知如何爲QAction對象設置顏色,所以QToolBar上的按鈕採用QPushButton類。
   action_button1 = toolbar.addAction('Button1')
   # action_button1如何設置文本顏色?以後再研究~~

   # 使用QPushButton類
   action_button1 = QPushButton('Button1')
   action_button1.setFlat(True)
   action_button1.setAutoFillBackground(True)
   _palette = QPalette()
   # 設置按鈕字體顏色
   _palette.setColor(QPalette.ButtonText, QColor(0xFF, 0x00, 0x00))
   # 設置按鈕背景顏色,需要setFlat(True)且setAutoFillBackground(True)
   _palette.setColor(QPalette.Button, QColor(0xFF, 0xFF, 0x00))
   action_button1.setPalette(_palette)
   toolbar.addWidget(action_button1)  

4. QToolBar上的按鈕對齊方式

    [TODO] 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章