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]