2

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

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

qDebug() << "图标名称" << ui->btnWestern1_2->icon().name(); //输出:空字符串

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

我正在使用 Qt 5.2.1

在此处输入图像描述

4

1 回答 1

3

你不能。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");
于 2016-03-21T20:33:39.890 回答