【问题标题】:Is there a way to set icon size for multiple icons at once (i.e. all the icons within a widget) in Qt?有没有办法在 Qt 中一次设置多个图标的图标大小(即小部件中的所有图标)?
【发布时间】:2019-07-02 19:03:15
【问题描述】:

我有一个小部件,其中包含来自不同来源的多个图标,我想增加图标的大小。

大小只需要在这个小部件中增加,而在其他地方不需要增加,所以我不能只调整图标所基于的 .png 文件的大小。

是否可以使用 for 循环引用小部件中的每个图标,然后在循环主体中执行类似 button1->setIconSize(QSize(100, 100)); 的操作?我无法找到任何类型的小部件的任何属性,这些属性允许您访问该小部件中的所有图标

我对任何想法都持开放态度

【问题讨论】:

  • 也许您希望auto lstButtons = pWidget->findChildren<QPushButton*>(); 获取所有按钮。以下是文档:doc.qt.io/qt-5/qobject.html#findChildren 拥有列表后,使用基于范围的 for 循环遍历列表。 for(auto btn : lstButtons) { // do something with btn}
  • 有时 QSS 可以解决问题,具体取决于您的需要。

标签: c++ qt icons


【解决方案1】:

我为你写了一个例子

btn1 = new QToolButton(this);
btn2= new QToolButton(this);
btn3 = new QToolButton(this);

btn1->setFixedSize(80,80);
btn2->setFixedSize(80,80);
btn3->setFixedSize(80,80);

QIcon icon1;
iconRe.addFile(QString::fromUtf8("path/icon.png"), QSize(), QIcon::Normal, QIcon::Off);
btn1->setIcon(icon1);
btn1->setIconSize(QSize(24, 24));

QIcon icon2;
iconte.addFile(QString::fromUtf8("path/icon.png"), QSize(), QIcon::Normal, QIcon::Off);
btn2->setIcon(icon2);
btn2->setIconSize(QSize(50, 50));


QIcon icon3;
icondelete.addFile(QString::fromUtf8("path/icon.png"), QSize(), QIcon::Normal, QIcon::Off);
btn3->setIcon(icon3);
btn3->setIconSize(QSize(70, 70));

结果是这样的

【讨论】:

    猜你喜欢
    • 2014-07-19
    • 2019-07-09
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    相关资源
    最近更新 更多