0

我想在运行时调整现有样式,特别是 QStyle::PM_ToolBarIconSize。这可以做到吗?据我所知,您只能继承 QStyle 并覆盖 pixelMetric()。

编辑 1:在 QStyle::PM_ToolBarIconSize 的特定情况下,我可以使用 QToolBar::setIconSize,但这只会为单个工具栏实例设置图标大小。我想一举改变底层样式提示,以影响所有地方的所有工具栏。QStyle::PM_ToolBarIconSize 可能不是我想要调整的唯一样式,它只是我正在查看的第一个样式,恰好具有“更改此实例的图标大小”功能。

编辑 2:我不能只创建一个新的样式子类,因为当前样式已经是基于样式表的自定义样式。用户可以选择多种样式。我不想创建一堆新样式,只是为了调整几个工具栏图标或菜单高度大小设置。

4

2 回答 2

0

那么为什么不覆盖 QStyle 呢?您的子类将返回一个图标大小(通过 pixelMetric),这取决于您的 QStyle 的可设置参数。

由于 Qt 没有动态的 QStyle 机制,因此最好创建一个更改图标大小的新样式实例,然后将其设置到 QApplication,而不是更改当前样式。

于 2015-07-07T06:17:57.933 回答
0

这就是 QProxyStyle 的确切目的。

于 2015-07-08T20:45:18.547 回答