我只有一個QMainWindow與mainwindow.ui,我有表,按鈕等... 從一個按鈕,我想動態創建小部件,並設置一個evenFilter它。如何在動態創建的QWidget上安裝eventFilter?
QWidget dialog = new QWidget();
dialog->installEventFilter(this);
當我編譯程序它說,QObject::installEventFilter(): Cannot filter events for objects in a different thread.
我怎麼能添加這個小部件與其他的QObject線程或什麼是解決這個問題最好的解決辦法?
QWidget是否屬於特定的QThread(非主)? – duDE
QWidget未被我設置爲另一個線程。它只是在mainwindow.cpp中創建的,而不是與ui中的設計器一起作爲其他對象ui-> tableView ..etc –
您是否在其他線程中有其他QObject?所有的小部件應該在主線程中,你可以使用QObject :: moveToThread來設置特定QObject的線程(主線程可以被QApplication :: instance() - > thread()接收),但是最好是創建所有的您的小部件直接在ui線程中。 – nikitoz