QT - 如何获得QPushButton Active On / Off图标名称

时间:2016-03-21 19:36:06

标签: qt qt-creator qpushbutton qicon

我特别想获得qPushButton图标的主动开/关名称。我尝试首先记录我的代码上的图标名称,但输出始终为空,即使我尝试以编程方式创建一个图标,任何想法如何解决这个问题?

这是我尝试记录图标名称的代码:

  

qDebug()<< “icon name”<< UI-> btnWestern1_2->图标()的名称(); //输出:空字符串

只是为了验证我的目标是获取活动的开/关名称而不仅仅是图标名称,但对我来说没有任何作用。

我正在使用Qt 5.2.1

enter image description here

1 个答案:

答案 0 :(得分:3)

你做不到。在您的情况下,图标name方法无用。

使用文件名创建图标,但文件名不会存储在任何位置。 见this answer

您可以通过查看uic ui_XXX.h文件来检查按钮的创建方式。

如果你想以进步方式进行,你可以property到包含两个图标的按钮(开/关)吗?

这是一个(未经测试的)提示:

QStringList icons = (QStringList() << "icon1.png" << "icon2.png");

QIcon my_icon;
my_icon.addFile(QStringLiteral(icons[0]), QSize(), QIcon::Normal, QIcon::Off);
my_icon.addFile(QStringLiteral(icons[1]), QSize(), QIcon::Normal, QIcon::On);

QPushButton btn = new QPushButton(my_icon);
btn->setProperty("icons",icons);

qDebug() << btn->property("icons");