Russian Qt Forum
Ноябрь 01, 2024, 04:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как отличить QIcon  (Прочитано 3567 раз)
thechicho
Гость
« : Ноябрь 24, 2011, 13:51 »

хочу сделать как в плеере, кнопку play/stop
как отличить иконки?
if (iconka1)
   stop
else
    play
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Ноябрь 24, 2011, 14:03 »

Ужас. Зачем иконку-то проверять? Ну, выставляй хотя бы objectName у кнопки.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
thechicho
Гость
« Ответ #2 : Ноябрь 24, 2011, 14:07 »

кнопка одна, objectName установлен, допустим pushButtonStart. надо при нажатии и при определенных условиях менять иконку.
как?!  Непонимающий
Записан
madRoger
Гость
« Ответ #3 : Ноябрь 24, 2011, 14:07 »

Можно завести флаг (переменную типа bool). При проигрывании устанавливать в true, при паузе false и проверять его.
Записан
Bepec
Гость
« Ответ #4 : Ноябрь 24, 2011, 14:09 »

Упаси тебя боже иконку проверять Улыбающийся

MadRoger дело советует.

По вопросу как отличить иконки - у Qicon есть cacheKey(), который собственно уникальный Улыбающийся
Записан
thechicho
Гость
« Ответ #5 : Ноябрь 24, 2011, 14:14 »

блин, видел же cacheKey()...
он на любом компе будет одинаков для иконки?

Код
C++ (Qt)
   if (ui->pushButtonStart->icon().cacheKey() == "4294967296") {
       ui->pushButtonStart->setIcon(iconStop);
   } else {
       ui->pushButtonStart->setIcon(iconPlay);
   }

если да, то то что нужно, сенкс.
если нет, то через флаг, сенкс.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Ноябрь 24, 2011, 14:16 »

Не хардкодь, же. Ну, нельзя разве написать:

if (ui->pushButtonStart->icon().cacheKey() == iconPlay.cacheKey()) {
?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
thechicho
Гость
« Ответ #7 : Ноябрь 24, 2011, 14:18 »

ага Улыбающийся
сделал, через флаг, благодарю за помощь.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.12 секунд. Запросов: 23.