Size: a a a

2021 June 29

v

vyacheslav@deepin:~$ in Qt
из простого
источник

AB

Alex B. in Qt
Да, спасибо, тупанул.
источник

v

vyacheslav@deepin:~$ in Qt
да на здоровье)
источник

E

Eugene in Qt
А кто-нибудь тут имел дело с winapi хуками? Мне потребовалось прикрутить получение глобальных системных событий, и я что-то в замешательстве. Если у кого есть опыт, может подскажете куда копать? Тогда расскажу подробнее в чём у меня проблема.
источник

AB

Alex B. in Qt
виджеты?
источник

E

Eugene in Qt
Само приложение на виджетах, да. Но хуки прикручиваю через winapi. Но происходит какая-то ерунда. Я сначала грешил на Qt, сейчас сделал минимальный пример на winapi полностью - там та же фигня.
источник

AB

Alex B. in Qt
Системные события же валятся в ивент фильтр
зачем лезть в винапи дополнительно?
источник

E

Eugene in Qt
Мне нужны глобальные события, WH_CBT, например. Qt такое не умеет же.
источник

E

Eugene in Qt
Нужно отслеживать, какое окно/приложение было активировано, какое закрыто и т.п.
источник

AB

Alex B. in Qt
Я из qt ловлю WM_POWERBROADCAST, WM_SETTINGCHANGE,
источник

AB

Alex B. in Qt
источник

E

Eugene in Qt
Выглядит как что-то, что может сработать. Туда вообще всё подряд валится от всего desktop-а из всех потоков?
источник

AB

Alex B. in Qt
Там не все просто,но примеры можно найти, к главному окну лучше цеплять
источник

E

Eugene in Qt
Да, я так и хотел попробовать. Спасибо, попробую, вдруг поможет и мне этого будет достаточно.
источник

V

Valerie in Qt
Подскажите, а в чем разница в поведении QDialog при нажатии на кнопку cancel или OK или Save и на крестик? Только крестик разрушает диалог? И считается ли хорошей практикой диалоги скрывать (hide) по закрытии вместо того чтобы создавать новый после если был нажат крестик. Спасибо заранее знатоки Qt ☺️
источник

П

Пашечка in Qt
При нажатии ОК посылается сигнал QDialog::accepted(), при нажатии отмены - QDialog::rejected(). При закрытии диалога на крестик вызывается тоже QDialog::rejected().

При закрытии диалога деструктор не вызывается по умолчанию, то есть объект, фактически, не уничтожается. Чтобы диалог разрушался ВСЕГДА при закрытии, нужно установить флаг Qt::WA_DeleteOnClose с помощью метода QWidget::setWindowFlags(Qt::WindowFlags type), который доступен, ибо диалог наследует виджет.

Насколько реально нужно всегда закрывать диалог - хз... Мы всегда установливаем флаг WA_DeleteOnClose. Но у нас диалоги тяжелые и открываются по логике редко. То есть либо он открыт и активно используется, либо его закрыли и нужен он будет не скоро.
источник

v

vyacheslav@deepin:~$ in Qt
зачастую для простых уведомлений или вопросов достаточно QMessageBox
источник

v

vyacheslav@deepin:~$ in Qt
QDialog это базовый класс диалога, если на его основе что-то большое делать
источник

V

Valerie in Qt
Спасибо за подробный ответ! То есть если диалоги без каких-то тяжёлых штук, только кнопки, едит поля, ссылки и текст должны быть нетяжёлые?
источник

V

Valerie in Qt
Спасибо. У нас диалоги, не QMessageBox
источник