나는 테이블, 버튼 등이있는 mainwindow.ui가있는 QMainWindow가 하나뿐입니다. 하나의 버튼에서 위젯을 동적으로 만들고 evenFilter를 설정하고 싶습니다. 내가 프로그램을 컴파일 할 때동적으로 생성 된 QWidget에 eventFilter를 설치하는 방법은 무엇입니까?
QWidget dialog = new QWidget();
dialog->installEventFilter(this);
그것은 QObject::installEventFilter(): Cannot filter events for objects in a different thread.
이 어떻게 다른 Qobjects과 글에이 위젯을 추가하거나이 문제에 대한 최선의 해결책은 무엇인가 있다고?
QWidget이 특정 QThread (기본이 아닌)에 속합니까? – duDE
QWidget was not가 나에 의해 다른 스레드를 설정했습니다. 그것은 mainwindow.cpp에서 만든 것이지, 다른 객체처럼 UI에있는 디자이너가 아닙니다 .-> tableView ..etc –
다른 스레드에 다른 QObject가 있습니까? 모든 위젯은 주 스레드에 있어야합니다. QObject :: moveToThread를 사용하여 특정 QObject의 스레드를 설정할 수 있습니다 (주 스레드는 QApplication :: instance() -> thread()에 의해 수신 될 수 있지만 모든 너의 위젯은 UI 스레드에서 직접. – nikitoz