2016-03-21 12 views
2

Мне бы хотелось получить активное имя вкл/выкл для значка qPushButton. Я попытался сначала записать имя значка, как в моем коде, но выход всегда был пустым, даже если я попытался программно создать значок, любую идею, как это решить?QT - Как получить QPushButton Active On/Off Название значка

Вот мой код просто пытаюсь войти имя значка:

QDebug() < < "имя значка" < < ui-> btnWestern1_2-> значок() имя();. // output: пустая строка

Только, чтобы подтвердить мою цель - получить активное имя вкл/выкл, а не только имя значка, но ничего не работает для меня.

Я использую Qt 5.2.1

enter image description here

ответ

3

Вы не можете. значок name метод не подходит в вашем случае.

Значок создается с именем файла, но имя файла не сохраняется нигде. См this answer

Вы можете проверить, как ваша кнопка создается глядя на файл uicui_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"); 
+0

Спасибо за ответ, но, возможно, я знаю, когда это «название» метод может быть полезным или функциональным? – Shuin

+0

похоже, что он используется в случае использования темы: http://doc.qt.io/qt-4.8/qicon.html#name – bibi