我特别想获得 qPushButton 图标的活动开/关名称。我尝试先在代码上记录图标名称,但即使我尝试以编程方式制作图标,输出也始终为空,知道如何解决这个问题吗?
这是我尝试记录图标名称的代码:
qDebug() << "图标名称" << ui->btnWestern1_2->icon().name(); //输出:空字符串
只是为了验证我的目标是获取活动的开/关名称,而不仅仅是图标名称,但对我没有任何作用。
我正在使用 Qt 5.2.1
我特别想获得 qPushButton 图标的活动开/关名称。我尝试先在代码上记录图标名称,但即使我尝试以编程方式制作图标,输出也始终为空,知道如何解决这个问题吗?
这是我尝试记录图标名称的代码:
qDebug() << "图标名称" << ui->btnWestern1_2->icon().name(); //输出:空字符串
只是为了验证我的目标是获取活动的开/关名称,而不仅仅是图标名称,但对我没有任何作用。
我正在使用 Qt 5.2.1
你不能。iconname
方法在您的情况下没有用。
该图标是使用文件名创建的,但文件名并未存储在任何地方。看到这个答案
您可以通过查看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");