1

我刚刚将一些工具栏从 Q3ToolBars(明确添加了 QToolButtons)更改为 Q4 工具栏(直接添加了操作。)

旧的工具按钮周围有一个很好的轮廓,但在新版本中没有显示;Q4 工具栏中的 QActions 看起来就像一行图标。有没有办法改变新版本中的“按钮”样式(假设这些动作可以被认为是这样)并给它们轮廓?我查看了 QToolBar 参考,但 toolButtonStyle() 函数似乎只适用于您是否要显示图标、文本等。

...或者我是否只需要制作实际的工具按钮和/或 QPushButtons 并使用 addWidget()?

4

2 回答 2

1

与给定操作关联的小部件可通过QToolBar::widgetForAction(从 Qt 4.2 开始)访问。因此,您可以将您的操作传递给此方法,获取QWidget它返回的 s ,将它们转换为QToolBar,然后像往常一样处理它们(代码未测试):

// ...

auto toolButton =
    static_cast<QToolButton *>(
        m_ui.toolbar->widgetForAction(m_ui.my_Action));

// Will make the toolButton always appear raised:
toolButton->setAutoRaise(false);

// ...

就我一直在测试的情况而言,有些方法可能不起作用(即,QWidget::hide),所以请自己进行测试。

于 2015-08-12T18:13:37.313 回答
0

是的,当然你可以用两种不同的方式编辑 QToolButtons 的外观:

  1. 您可以使用void QWidget::setStyleSheet(const QString &)设置它的样式表
  2. 您可以使用新的paintEvent函数重新实现 QToolButtons 类,您可以在其中准确设置按钮的外观。
于 2012-09-05T14:51:52.157 回答