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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Двойной клик левой кнопкой мыши по трею  (Прочитано 4139 раз)
wenny
Гость
« : Июль 01, 2016, 13:25 »

Доброго времени суток. Хочу разворачивать окно при двойном клаце по трейной иконке. Соорудил следующее:
Код
C++ (Qt)
void TrayWindow::handleDoubleClick( QSystemTrayIcon::ActivationReason reason )
{
   //if( reason == QSystemTrayIcon::Trigger )  //если нажато левой кнопкой
   if ( reason == QSystemTrayIcon::DoubleClick ) {
       this->show();
   } else {
       this->hide();
   }
}

Я могу по отдельности отловить клик левой кнопкой и двойной клик любой - левой или правой. Вопрос: как мне зафиксировать именно даблклик левой кнопкой? Спасибо.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Июль 01, 2016, 13:39 »

А QSystemTrayIcon::DoubleClick не работает что ли?
Записан

wenny
Гость
« Ответ #2 : Июль 01, 2016, 13:47 »

Вы правы, работает.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #3 : Июль 01, 2016, 13:49 »

 Улыбающийся
Записан

wenny
Гость
« Ответ #4 : Июль 01, 2016, 15:29 »

Дабы топ зря не пропадал, подскажите, пожалуйста, как в ручном режиме назначить QAction'у слот? Текст и иконку назначаю, а метод для слота найти не могу Грустный

Код
C++ (Qt)
connectionMenuItem->setText( "Отключиться" );
connectionMenuItem->setIcon( QIcon( ":/disconnect.png" ) );
« Последнее редактирование: Июль 01, 2016, 15:55 от gil9red » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #5 : Июль 01, 2016, 15:56 »

Дабы топ зря не пропадал, подскажите, пожалуйста, как в ручном режиме назначить QAction'у слот? Текст и иконку назначаю, а метод для слота найти не могу Грустный

Код
C++ (Qt)
connectionMenuItem->setText( "Отключиться" );
connectionMenuItem->setIcon( QIcon( ":/disconnect.png" ) );


Используйте такую запись:
connect(connectionMenuItem, SIGNAL(triggered()), this, SLOT(<ваш_слот>));

Ну, или новый механизм с с++11:
connect(connectionMenuItem, &QAction::triggered, this, &<ваш_слот>);

у меня (mingw 4.9.2), в принципе, и так компилирует:
connect(connectionMenuItem, QAction::triggered, this, <ваш_слот>);

зы. промахнулся при клике на Цитировать, попав на Изменить, поэтому не пугайтесь, что у вас такая приписка осталась Улыбающийся
Записан

wenny
Гость
« Ответ #6 : Июль 01, 2016, 16:51 »

А как очистить/заменить коннект?
« Последнее редактирование: Июль 01, 2016, 17:26 от wenny » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #7 : Июль 01, 2016, 17:29 »

А как очистить/заменить коннект?

А погуглить или посмотреть в доку? Улыбающийся
если есть connect, то есть и disconnect

Но можно добавить в слот флаг, который разрешает/запрещает выполняться
Записан

wenny
Гость
« Ответ #8 : Июль 01, 2016, 19:39 »

Гуглил, но тока вот с божьей (т.е. Вашей Веселый) помощью наконец довел до конца это действо Улыбающийся
« Последнее редактирование: Июль 01, 2016, 19:42 от wenny » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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