QT 4.3.0 не найден файл QSystemTrayIcon, fatal error C1083: Cannot open include file: 'QSystemTrayIcon' |
Здравствуйте, гость ( Вход | Регистрация )
QT 4.3.0 не найден файл QSystemTrayIcon, fatal error C1083: Cannot open include file: 'QSystemTrayIcon' |
ViGOur |
2.10.2009, 9:09
Сообщение
#11
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
свойства проекта -> linker -> general -> additional library directories - добавь путь к QtGui.lib, если его нет.
свойства проекта -> linker -> input -> additional dependencies - добавь QtGui.lib. |
|
|
Cergey |
2.10.2009, 9:17
Сообщение
#12
|
Студент Группа: Участник Сообщений: 62 Регистрация: 18.10.2008 Пользователь №: 395 Спасибо сказали: 3 раз(а) Репутация: 1 |
Поясни, что это за сервер, для чего ты используешь консоль? Просто выводишь в ней сообщения? Что бы перевести приложение в GUI вполне возможно хватит использования QApplication вместо QCoreApplication, переключения вывода сообщений из консоли в окно, и добавления иконки в систем трей. В общем да. У нас просто правила дурацкие: для вывода использовать консоль. ... если при запуске сервер скрывается в Tray и показывает консольное окно лишь по требованию пользователя +10%; ViGOur, СПАСИБО он скомпановался!!! И запустился!!! Но когда я пытаюсь показать иконку в трее консоль просто закрывается!!! Поиогите еще ПОЖАЛУЙСТА!!! |
|
|
BRE |
2.10.2009, 9:20
Сообщение
#13
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
В общем да. У нас просто правила дурацкие: для вывода использовать консоль. ... если при запуске сервер скрывается в Tray и показывает консольное окно лишь по требованию пользователя +10%; Можно создать окно на базе QListView, в качестве модели использовать QStringListModel. В эту модель добавляются диагностические строки. Когда пользователь захочет посмотреть диагностику (из меню QSystemTrayIcon), то открывать это окошко. Если для вывода диагностики на консоль используются qDebug(), qWarning(), есть простой способ сделать такое переопределение. Но когда я пытаюсь показать иконку в трее консоль просто закрывается!!! Ты бы еще код показал. |
|
|
Cergey |
2.10.2009, 9:29
Сообщение
#14
|
Студент Группа: Участник Сообщений: 62 Регистрация: 18.10.2008 Пользователь №: 395 Спасибо сказали: 3 раз(а) Репутация: 1 |
CODE // Класс, для помещения сервера в системный трей class ServerSystemTray : public QSystemTrayIcon { Q_OBJECT public: ServerSystemTray(QCoreApplication & a); public slots: void visualServer(QSystemTrayIcon::ActivationReason reason); // Обработка нажатия по трею private: QCoreApplication *server; // Указатель на сервер bool vSer; // Флаг определяющий показан ли сервер (true - показан, false - спрятан) }; ServerSystemTray::ServerSystemTray(QCoreApplication & a) : QSystemTrayIcon() { // Соединяем сигнал нажатия по иконки сервера в трее и его обработчик connect(this, SIGNAL(activated (QSystemTrayIcon::ActivationReason )), this, SLOT(visualServer(QSystemTrayIcon::ActivationReason reason ))); // Обозначаем, что сервер показан vSer = true; // Сохраняем ссылку на сервер server = &a; setIcon(QIcon("icon.bmp")); // Показываем иконку сервера в трее show (); } /* * Функция-обработчик нажатия по иконки в трее * \param reason причина нажатия */ void ServerSystemTray::visualServer(QSystemTrayIcon::ActivationReason reason) { // Если нажатие по иконке произошло левой кнопкой мышы один раз if(reason == QSystemTrayIcon::Trigger) { // Если сервер был показан if(vSer == true) { // То прячем его // Обозначаем что сервер скрыт vSer = false; } else // Если сервер был скрыт { // То показываем его // Обозначаем что сервер показан vSer = true; } } } Вылет на setIcon() но наверное из-за консоли ах Добавление: В main создаю объект этого класса. |
|
|
BRE |
2.10.2009, 9:29
Сообщение
#15
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Если начал работать с GUI, то нужно использовать QApplication, а не QCoreApplication.
Как ты планируешь консоль скрывать/показывать? |
|
|
Cergey |
2.10.2009, 9:36
Сообщение
#16
|
Студент Группа: Участник Сообщений: 62 Регистрация: 18.10.2008 Пользователь №: 395 Спасибо сказали: 3 раз(а) Репутация: 1 |
Как ты планируешь консоль скрывать/показывать? я думал что потом найду, теперь тут понятно. Последнее: диагностические строки. что такое(на анг. название)??? P. S. Если лать буду сюда полностью все скину, может кому пригодится Как ты планируешь консоль скрывать/показывать? я думал что потом найду, теперь тут понятно. Последнее: диагностические строки. что такое(на анг. название)??? P. S. Если делать буду сюда полностью все скину, может кому пригодится |
|
|
ViGOur |
2.10.2009, 9:54
Сообщение
#17
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Можно сделать как предложил BRE, а можно использовать QTextEdit в режиме read only с фоном черного цвета и беленькими буквами.
А куда выводить qDebug и прочее можно переопределить вот так: Вывод отладочной информации, централизованно, аля qDebug, qCritical и ... только там пример выврда в консоль, но переделать под вывод в любой из виджетов не составит проблем. |
|
|
BRE |
2.10.2009, 9:55
Сообщение
#18
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
ViGOur |
2.10.2009, 9:59
Сообщение
#19
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
Текстовая версия | Сейчас: 19.1.2025, 1:55 |