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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Как загрузиться в трей  (Прочитано 19073 раз)
Jkc
Гость
« : Март 08, 2005, 08:51 »

У меня такая задача, нужно написать программу на C++ с использованием Qt библиотеки.
Что касается окон и элементов то проблем нет но мне нужно ещё что бы при запуске программка пряталась в Трей
 Вопрос как всё это сделать на Qt на систему Win32?  Если кто то сталкивался дайте знать. Буду очень благодарен за пример с кодом.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #1 : Март 08, 2005, 09:48 »

в examples поставляемых вместе с QT есть пример использования tray под windows

смотри и пользуй
Записан
Jkc
Гость
« Ответ #2 : Март 09, 2005, 07:28 »

Цитата: "Admin"
в examples поставляемых вместе с QT есть пример использования tray под windows

смотри и пользуй


В этом примере просто создаёться трей трёх видов но там нет запуска приложения в трей, так же нет сворачивания окна в трей.
Записан
mikl2002
Гость
« Ответ #3 : Март 09, 2005, 08:51 »

menu = new QPopupMenu();
   menu->insertItem( tr("Hide"), form1, SLOT(hide()) );
   menu->insertItem( tr("Show"),form1, SLOT(show()) );
    menu->insertSeparator();
   menu->insertItem( tr("&Quit"), form1, SLOT(close()) );

   tray = new TrayIcon( QPixmap::fromMimeSource( "tray.png" ), tr("SSB  - Boss"), menu);
     QObject::connect(tray,SIGNAL(clicked(const QPoint&)),this,SLOT(hideshow()));
   tray->show();
Записан
GrolfCry
Гость
« Ответ #4 : Март 09, 2005, 14:33 »

Что нужно подробнее, в примерах и так достаточно хорошо все описано...
Берем файлы
trayicon.cpp
trayicon.h
trayicon_win.cpp
из примеров -ложим в каталог проекта.
В файле проекта добавляем примерно это
Код:

HEADERS =  trayicon.h
SOURCES += main.cpp \
    trayicon.cpp \
    trayicon_win.cpp
IMAGES = images/icon.png

картинка для трея должна лежать в папке images
В main.cpp добавляем в начало файла
Код:

#ifdef Q_WS_WIN
#include "trayicon.h"
#endif // Q_WS_WIN
#include <qpopupmenu.h>
#include <qpixmap.h>


дальше  выглядит примерно так
Код:

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    // ваша форма
MainForm *mf = new MainForm();
app.setMainWidget(mf);
/* createConnections();
mf->dbComboBox1->setConnectionName("SSB");
mf->dbComboBox1->setTableName("persons");

mf->dbComboBox1->setEditable(true);
mf->dbComboBox1->setAutoCompletion(true);
QStringList flds;
flds << "FIO" << "JOB";

mf->dbComboBox1->setEntries(flds);
mf->dbComboBox1->setFilter("1=1");
mf->dbComboBox1->setActiveFilter(QDbComboBox::Both);
mf->dbComboBox1->setOrder("FIO");
*/
// вот добавляем трей
#ifdef Q_WS_WIN
    QPopupMenu *menu = new QPopupMenu();
menu->insertItem( QObject::tr("Hide"),mf , SLOT(hide()) );
menu->insertItem( QObject::tr("Show"), mf, SLOT(show()) );
    menu->insertSeparator();
menu->insertItem( QObject::tr("&Quit"), mf, SLOT(close()) );

TrayIcon *tray = new TrayIcon( QPixmap::fromMimeSource( "icon.png" ), QObject::tr("Tray"), menu);
tray->show();
#endif // Q_WS_WIN

mf->show();
    return app.exec();
}
Записан
Jkc
Гость
« Ответ #5 : Март 16, 2005, 08:45 »

А как стартонуть что бы сразу в трей?
Записан
GrolfCry
Гость
« Ответ #6 : Март 16, 2005, 08:56 »

Вот это не делай
 mf->show();
Записан
Jkc
Гость
« Ответ #7 : Март 16, 2005, 11:02 »

Так просто в трей не грузиться иконка
Записан
GrolfCry
Гость
« Ответ #8 : Март 16, 2005, 11:25 »

ну тогда
после
mf->show();
сделай
mf->hide();
Записан
Jkc
Гость
« Ответ #9 : Март 16, 2005, 11:59 »

Работает и последний штрих на эту тему, как по двойному щелчку мыши на иконке вызвать программу?
Записан
GrolfCry
Гость
« Ответ #10 : Март 16, 2005, 13:52 »

по щелчку - добавь строку
  QObject::connect(tray,SIGNAL(clicked(const QPoint&)),this,SLOT(mf->show()));

по двойному типа того наверное
Записан
Jkc
Гость
« Ответ #11 : Март 16, 2005, 16:48 »

Есть ещё небольшой вопрос, как из QListView загрузить контектное меню?
Записан
GrolfCry
Гость
« Ответ #12 : Март 17, 2005, 06:25 »

Не очень понятен вопрос, да и не по теме. Создай новый топик
Записан
Jkc
Гость
« Ответ #13 : Март 18, 2005, 13:07 »

Можно показать как добавить двойной щелчёк на иконку в трее?
Записан
homa9999
Гость
« Ответ #14 : Июль 28, 2005, 02:04 »

А в Linux работает этот код?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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