Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt] Убрать приложение из taskBar при minimize, QSystemTrayIcon 
:(
    Опции темы
borisbn
Дата 6.5.2010, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Доброго времени суток!
Имеется Widget, который должен "сворачиваться" в systemTray. При нажатии на кнопку закрытия окна (красный крест) окно исчезает с экрана и из taskBar'а, но остаётся иконка в sysTray'е (как и должно быть), а при нажатии кнопки minimize окно закрывается, но в taskBar'е остаётся значок приложения. Подскажите, пожалуйста, как убрать приложение из taskBar при minimize ?
Qt 4.6.2, MSVC 2008, Windows-7
file_remover.h
Код

...
class FileRemover : public QWidget
{
    Q_OBJECT

...

protected:
    void closeEvent( QCloseEvent * event );
    void hideEvent( QHideEvent * event );

    QSystemTrayIcon * m_trayIcon;
};

file_remover.cpp
Код

FileRemover::FileRemover( QWidget * parent, Qt::WFlags flags )
    : QWidget( parent, flags )
{
...
    createTrayIconMenu();

    m_trayIcon = new QSystemTrayIcon( this );
    m_trayIcon->setContextMenu( trayIconMenu );
    m_trayIcon->show();
}

void FileRemover::closeEvent( QCloseEvent * event )
{
    if ( m_trayIcon->isVisible() )
    {
        hide();
        event->ignore();
    }
}

void FileRemover::hideEvent( QHideEvent * event )
{
    close(); // не работает
//    m_trayIcon->hide(); // не работает
//    setVisible( false ); // не работает
    event->accept();
}

main.cpp
Код

int main( int argc, char *argv[] )
{
    QApplication a( argc, argv );
    QApplication::setQuitOnLastWindowClosed( false );
    FileRemover w;
    return a.exec();
}




--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
chaos
Дата 11.5.2010, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 5
Всего: 44



PM WWW   Вверх
borisbn
Дата 11.5.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



chaos, hide не работает. Форма с экрана уходит, а из taskBar'а - нет. При нажатии на иконку приложения в taskBar'е окно открывается, но на нём нет ни одного контрола (только окно и заголовок). В общем-то, я вышел из ситуации (подсказали на QtCentre), но мне этот костыль не очень нравится: 
Код

void FileRemover::hideEvent( QHideEvent * event )
{
    QTimer::singleShot( 250, this, SLOT( close() ) );
    event->ignore();
}

Если close вызывать явно, то происходит то же, что и с hide.
Интересно, это глюк/фича windows или Qt ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0419 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.