crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> 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  


Цитата(BRE @ 2.10.2009, 10:07) *
Поясни, что это за сервер, для чего ты используешь консоль? Просто выводишь в ней сообщения?
Что бы перевести приложение в GUI вполне возможно хватит использования QApplication вместо QCoreApplication, переключения вывода сообщений из консоли в окно, и добавления иконки в систем трей.

В общем да. У нас просто правила дурацкие: для вывода использовать консоль. ... если при запуске сервер скрывается в Tray и показывает консольное окно лишь по требованию пользователя +10%;

ViGOur, СПАСИБО он скомпановался!!!
И запустился!!!
Но когда я пытаюсь показать иконку в трее консоль просто закрывается!!!
Поиогите еще ПОЖАЛУЙСТА!!!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 2.10.2009, 9:20
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Cergey @ 2.10.2009, 10:10) *
В общем да. У нас просто правила дурацкие: для вывода использовать консоль. ... если при запуске сервер скрывается в Tray и показывает консольное окно лишь по требованию пользователя +10%;

Можно создать окно на базе QListView, в качестве модели использовать QStringListModel. В эту модель добавляются диагностические строки. Когда пользователь захочет посмотреть диагностику (из меню QSystemTrayIcon), то открывать это окошко.
Если для вывода диагностики на консоль используются qDebug(), qWarning(), есть простой способ сделать такое переопределение.

Цитата(Cergey @ 2.10.2009, 10:17) *
Но когда я пытаюсь показать иконку в трее консоль просто закрывается!!!

Ты бы еще код показал. ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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() но наверное из-за консоли ах :mellow:

Добавление:
В 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  


Цитата(BRE @ 2.10.2009, 10:29) *
Как ты планируешь консоль скрывать/показывать?

я думал что потом найду, теперь тут понятно.
Последнее:
диагностические строки. что такое(на анг. название)???

P. S. Если лать буду сюда полностью все скину, может кому пригодится

Цитата(BRE @ 2.10.2009, 10:29) *
Как ты планируешь консоль скрывать/показывать?

я думал что потом найду, теперь тут понятно.
Последнее:
диагностические строки. что такое(на анг. название)???

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, 10:54) *
А куда выводить qDebug и прочее можно переопределить вот так: [url="http://www.forum.crossplatform.ru/index.php?showtopic=44&view=findpost&p=87"]

Ага, я тоже это имел ввиду, только строки добавлять в модель.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 2.10.2009, 9:59
Сообщение #19


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(Cergey @ 2.10.2009, 10:36) *
P. S. Если делать буду сюда полностью все скину, может кому пригодится
Можно не только сюда, но и на сайт. На сайте описание и исходник, здесь обсуждение! :)

Сообщение отредактировал ViGOur - 2.10.2009, 9:59
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


10 чел. читают эту тему (гостей: 10, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.1.2025, 2:12