【发布时间】:2017-12-31 12:41:32
【问题描述】:
是否可以在 QT 中初始化 MainWindow 的对象并从另一个类调用 show 方法,例如在线程类构造函数中,然后在 main 函数中创建线程对象并启动线程?它对我不起作用(用户界面闪烁并立即消失)。有什么办法可以解决吗?如果没有,我怎样才能控制线程中的按钮和其他东西。如何通过交换数据在它们(线程和 ui 类)之间进行通信?
我的程序是这样的。线程构造函数:
#include "mainwindow.h"
void thread::thread(){
MainWindow m;
m.show();
}
及主要功能:
int main(int argc,char *argv[]){
QApplication a(argc,argv);
thread t;
t.start();
return a.exec();
}
【问题讨论】:
-
尝试将
MainWindow m; m.show();更改为MainWindow *m = new MainWindow; m->show();