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]