如何更改 QToolButton 的 IconSize

Posted

技术标签:

【中文标题】如何更改 QToolButton 的 IconSize【英文标题】:How to change IconSize of QToolButton 【发布时间】:2014-01-15 09:32:41 【问题描述】:

如何改变QToolButton的IconSize。

button1->setIcon(QIcon("download.jpg"));
button1->setFixedSize(100,100);

通过使用上面的代码按钮大小正在改变,但按钮内的图标没有改变。

【问题讨论】:

【参考方案1】:

怎么样

button1->setFixedSize(100,100);
button1->setIconSize(QSize(100, 100));

如果您的按钮位于工具栏上,则使用

toolBar->setIconSize(QSize(100, 100));

而不是更改按钮图标大小。 如果您想在工具栏上有不同的大小,请使用setFixedSize() 改变它们。当然最大的应该是QToolBar图标大小。

【讨论】:

是的,它奏效了。但是,如果我想将第一个按钮图标大小设置为 (100,100),其他设置为 (200,200),那么我应该怎么做 toolBar 中的尺寸是工具栏图标可以拥有的最大尺寸。将其设置为某个最大值并为图标使用较低(不同)的值。 @Rupesh,编辑了答案。在这种情况下,您应该将 (200, 200) 分配给工具栏,将 (100, 100) 分配给按钮的固定大小【参考方案2】:

从 https://qt-project.org/doc/qt-5/qabstractbutton.html#iconSize-prop

你可以试试

button1->setIconSize(QSize(100, 100));

或者您可以将button1 大小作为参数,

button1->setIconSize(button1->size());

此方法的唯一缺点是图标的缩放比例不会超过其原始大小的 100%。如果你想放大图标,你可以尝试重新实现QToolButton::setIconSize 方法,或者作为一个快速而肮脏的修复,使用图像编辑器调整图像大小。

如果使用 QToolBar,请使用QToolBar::setIconSize 方法,该方法设置工具栏中图标的最大 大小。图标本身可以有不同的大小。

【讨论】:

您的button1 是使用Qt Designer 创建的吗?您能否检查是否有任何您可能意外设置的属性(以粗体显示)可能会阻止该方法调整按钮的大小?按钮是布局还是网格的一部分? NO 我没有创建是使用 QTDesigner。 QToolButton 是 QToolBar 的一部分,QtoolBar 是布局的一部分。按钮大小正在增加,但图标大小没有增加 你也应该使用 QToolBar::setIconSize。

以上是关于如何更改 QToolButton 的 IconSize的主要内容,如果未能解决你的问题,请参考以下文章

为禁用的 QToolButton 启用 QMenu 访问

如何突出显示 QToolButton

如何计算qtoolbutton文字的长度

如何使 QToolButton 中的图标居中?

如何在 Qt5 中的 QToolButton 上设置 GIF 图像

QT学习之如何在QToolBar中添加带图标的QToolButton并设置图标大小