我特别想获得qPushButton图标的主动开/关名称。我尝试首先记录我的代码上的图标名称,但输出始终为空,即使我尝试以编程方式创建一个图标,任何想法如何解决这个问题?
这是我尝试记录图标名称的代码:
qDebug()<< “icon name”<< UI-> btnWestern1_2->图标()的名称(); //输出:空字符串
只是为了验证我的目标是获取活动的开/关名称而不仅仅是图标名称,但对我来说没有任何作用。
我正在使用Qt 5.2.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");