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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: появление окна из трея  (Прочитано 5588 раз)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« : Май 14, 2010, 22:28 »

Здравствуйте. Возникла проблема - окно не становится видимым после нажатие на иконку в трее, оно только появляется на панели задач. Уже перепробовал всякие комбинации с activateWindow(), raise(), setFocus() - не помогает.
Код
C++ (Qt)
connect(sysTrayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), SLOT(sysTrayActivated(QSystemTrayIcon::ActivationReason)));
...
void AutoEmpImporter::sysTrayActivated(QSystemTrayIcon::ActivationReason reason)
{
if (reason == QSystemTrayIcon::DoubleClick)
show();
}
 
Подскажите пожалуйста как исправить.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #1 : Май 15, 2010, 00:19 »

У меня такой код нормально работает:
Код:
void MainWindow::iconTrayActivated(QSystemTrayIcon::ActivationReason reason)
{
    if (reason==QSystemTrayIcon::DoubleClick) {//если двойной щелчок
        show();//показываем окно
        trayIcon->hide();//убираем иконку
    }
}
отличие только в убирании иконки...
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
ритт
Гость
« Ответ #2 : Май 15, 2010, 17:12 »

поиск по форуму рулит
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Май 17, 2010, 17:51 »

Спасибо, вот это решение сработало, но это не совсем то, что хотелось бы. Неужели никак нельзя заставить окно появляться именно при QSystemTrayIcon::DoubleClick?

добавлено:
решение оказалось простым:
Код
C++ (Qt)
if (reason == QSystemTrayIcon::DoubleClick)
{
setWindowState(windowState() & ~Qt::WindowMinimized | Qt::WindowActive);
show();
activateWindow();
}
 
« Последнее редактирование: Май 18, 2010, 14:04 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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