我从QT4开始,我想知道在哪里放置我的应用程序代码 这里吗?
void MainWindow::changeEvent(QEvent *e) {...}
还是在这? (究竟在哪里?)
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
如果我希望我的应用程序不仅对用户事件做出反应,而且在循环中定期执行,那么我在哪里放置循环?
答案 0 :(得分:2)
Qt有自己的主循环,您可以使用QTimer类连接到它。
如果您想提供自己的事件循环,可以使用QApplication::processEvents()来指示Qt处理它的事件(并保持负责的UI)。
此外,QAbstractEventDispatcher可能对您有用。
This问题也可能有用。
答案 1 :(得分:2)
除非你在非gui线程中循环,否则你将通过循环(在隐式主gui线程中)来阻止GUI。这里有几种不同的方法:
还有其他不同的方法,例如使用processEvents(),但我个人推荐线程方法。