QT - 如何激活 QPushButton On/Off 图标名称

QT - How to get QPushButton Active On/Off Icon Name

我特别想获得 qPushButton 图标的活动 on/off 名称。我试着像在我的代码中那样先记录图标名称,但即使我尝试以编程方式制作图标,输出也始终为空,知道如何解决这个问题吗?

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

qDebug() << "icon name " << ui->btnWestern1_2->icon().name(); //output: empty string

只是为了验证我的 objective 是为了获得活动的 on/off 名称,而不仅仅是图标名称,但对我没有任何作用。

我正在使用 Qt 5.2.1

你不能。 icon name 方法对您的情况没有用。

图标是用文件名创建的,但文件名没有存储在任何地方。 参见 this answer

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

如果您想以编程方式进行,您可以 property 到包含两个图标的按钮 (on/off)?

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

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");