crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
mezmay
  опции профиля:
сообщение 14.1.2014, 9:45
Сообщение #1


Активный участник
***

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

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




Репутация:   1  


Программа сервера чата имеет только иконку в трее. Запускается из автозапуска. Как правильно обработать событие выключения комьютера/выхода из системы? Надо сделать корректный выход из программы (мне там надо всем клиентам прописать в базу данных время выхода)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.1.2014, 12:25
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


В Qt есть поддержка POSIX-сигналов, но для Виндовоза видимо придётся писать своё с использованием WinAPI.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 14.1.2014, 16:25
Сообщение #3


Активный участник
***

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

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




Репутация:   1  


сделал небольшой велосипед:
bool cwin::nativeEvent( const QByteArray &eventType, void *message, long *result )
{
    Q_UNUSED(eventType)
    MSG* msg = static_cast<MSG*>(message);

    if(msg->message == WM_QUERYENDSESSION)
    {
        // здесь сделать всё что надо:
        m_connectThread.stop();
    }
    return QWidget::nativeEvent(eventType, message, result);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.1.2014, 18:53
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Тут вдруг вспомнил про Сессии Qt и возможности QApplication:
void QApplication::commitDataRequest ( QSessionManager & manager ) [signal]


Никогда не пользовался, почему-то, поэтому сразу и не вспомнил.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 15.1.2014, 8:37
Сообщение #5


Активный участник
***

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

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




Репутация:   1  


у меня при выходе из системы commitDataRequest не высылается

connect(qGuiApp, &QGuiApplication::commitDataRequest,
        this, &cwin::onCommitDataRequest, Qt::DirectConnection);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.1.2014, 17:42
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(mezmay @ 15.1.2014, 10:37) *
connect(qGuiApp, &QGuiApplication::commitDataRequest,
        this, &cwin::onCommitDataRequest, Qt::DirectConnection);
странная форма записи для соединения, так точно не будет работать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 16.1.2014, 9:43
Сообщение #7


Активный участник
***

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

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




Репутация:   1  


из документации Qt5:
http://qt-project.org/wiki/New_Signal_Slot_Syntax

New: connecting to QObject member
connect(sender, &Sender::valueChanged,
             receiver, &Receiver::updateValue );

New: connecting to simple function
The new syntax can even connect to functions, not just QObjects:
connect(sender, &Sender::valueChanged, someFunction);


Сообщение отредактировал mezmay - 16.1.2014, 13:37
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.1.2014, 16:22
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(mezmay @ 16.1.2014, 11:43) *
из документации Qt5:
ясно, думал Qt4


тогда посмотри это
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 2.4.2025, 6:01