Цикл сообщений QWidget, принадлежащий QThread - PullRequest
0 голосов
/ 24 декабря 2010

Я занимаюсь разработкой приложения Qt в Windows, которое фиксирует глобальный ввод с клавиатуры. Я использую WH_KEYBOARD, который загружает мою DLL в каждый процесс. Когда клавиша нажата, функция ловушки в DLL будет отправлять сообщение в QWidget в QThread внутри приложения. Проблема в том, как мне создать QWidget в QThread и запустить цикл обработки сообщений?

1 Ответ

2 голосов
/ 24 декабря 2010

Ну, в двух словах, вы не можете.Виджеты должны принадлежать основному потоку, и ни один из классов GUI не может быть многопоточным.Однако вы можете отправлять сигналы между потоками, т.е. решение состоит в том, чтобы связываться с вашей DLL в прокси-классе, а затем отправлять поставленные в очередь сигналы вашему виджету в главном потоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...