[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] 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值