16,173
社区成员
发帖
与我相关
我的任务
分享
//A和B都继承QObject
QThread th1;
A a;
B b;
b.moveToThread(&th1);
th1.start();
你试试看能不能解决你的问题[/quote]
但现在的问题是如果在B类中处理耗时程序的话,由于耗时程序需要进行ui操作,而ui操作只能在A类中进行,怎么办呢?[/quote]利用信号的槽啊,B可以发射信号并传递参数过去,A中的槽函数对参数进行判断显示相应的界面。。。比如参数是1,就显示窗口,参数是2就隐藏窗口。不知道这样说明白吗?[/quote]
我懂你什么意思,我简单描述一下我的问题吧,我需要用QTableWidget显示数据量达到7000行的数据,每次刷新会比较忙,大概要10秒,而且会阻塞主线程,造成假死现象,因此我想让刷新的程序放进一个子线程中去运行,主线程在子线程开始的时候在QTableWidget区域覆盖一个动图,表示正在刷新,等待子线程运行完毕之后再关闭这个动图,表示刷新完毕,由于放进子线程的程序要用到主线程中的QTableWidget对象,不断添加数据,我只能在子线程中发送信号,槽函数还是要运行在主线程中才能在QTableWidget中添加数据啊,你说的那个方法我不知道怎么用进去。。。[/quote]
原来是这样,那我说的方法就不适用了。。。既然你的方法可以实现功能,就先别管吧,以后对线程理解了再改,我对线程也不是很理解。把QTableWidget弄成全局的有没有可能?[/quote]
现在所有的问题处理的差不多了,参加比赛临时上手Qt也是蛮拼的,估计比赛结束之后就不会再碰Qt了。。。
//A和B都继承QObject
QThread th1;
A a;
B b;
b.moveToThread(&th1);
th1.start();
你试试看能不能解决你的问题[/quote]
但现在的问题是如果在B类中处理耗时程序的话,由于耗时程序需要进行ui操作,而ui操作只能在A类中进行,怎么办呢?[/quote]利用信号的槽啊,B可以发射信号并传递参数过去,A中的槽函数对参数进行判断显示相应的界面。。。比如参数是1,就显示窗口,参数是2就隐藏窗口。不知道这样说明白吗?
//A和B都继承QObject
QThread th1;
A a;
B b;
b.moveToThread(&th1);
th1.start();
你试试看能不能解决你的问题[/quote]
但现在的问题是如果在B类中处理耗时程序的话,由于耗时程序需要进行ui操作,而ui操作只能在A类中进行,怎么办呢?
//A和B都继承QObject
QThread th1;
A a;
B b;
b.moveToThread(&th1);
th1.start();
你试试看能不能解决你的问题
//A和B都继承QObject
QThread th1;
A a;
B b;
b.moveToThread(&th1);
th1.start();
你试试看能不能解决你的问题[/quote]
但现在的问题是如果在B类中处理耗时程序的话,由于耗时程序需要进行ui操作,而ui操作只能在A类中进行,怎么办呢?[/quote]利用信号的槽啊,B可以发射信号并传递参数过去,A中的槽函数对参数进行判断显示相应的界面。。。比如参数是1,就显示窗口,参数是2就隐藏窗口。不知道这样说明白吗?[/quote]
我懂你什么意思,我简单描述一下我的问题吧,我需要用QTableWidget显示数据量达到7000行的数据,每次刷新会比较忙,大概要10秒,而且会阻塞主线程,造成假死现象,因此我想让刷新的程序放进一个子线程中去运行,主线程在子线程开始的时候在QTableWidget区域覆盖一个动图,表示正在刷新,等待子线程运行完毕之后再关闭这个动图,表示刷新完毕,由于放进子线程的程序要用到主线程中的QTableWidget对象,不断添加数据,我只能在子线程中发送信号,槽函数还是要运行在主线程中才能在QTableWidget中添加数据啊,你说的那个方法我不知道怎么用进去。。。[/quote]
原来是这样,那我说的方法就不适用了。。。既然你的方法可以实现功能,就先别管吧,以后对线程理解了再改,我对线程也不是很理解。把QTableWidget弄成全局的有没有可能?
//A和B都继承QObject
QThread th1;
A a;
B b;
b.moveToThread(&th1);
th1.start();
你试试看能不能解决你的问题[/quote]
但现在的问题是如果在B类中处理耗时程序的话,由于耗时程序需要进行ui操作,而ui操作只能在A类中进行,怎么办呢?[/quote]利用信号的槽啊,B可以发射信号并传递参数过去,A中的槽函数对参数进行判断显示相应的界面。。。比如参数是1,就显示窗口,参数是2就隐藏窗口。不知道这样说明白吗?[/quote]
我懂你什么意思,我简单描述一下我的问题吧,我需要用QTableWidget显示数据量达到7000行的数据,每次刷新会比较忙,大概要10秒,而且会阻塞主线程,造成假死现象,因此我想让刷新的程序放进一个子线程中去运行,主线程在子线程开始的时候在QTableWidget区域覆盖一个动图,表示正在刷新,等待子线程运行完毕之后再关闭这个动图,表示刷新完毕,由于放进子线程的程序要用到主线程中的QTableWidget对象,不断添加数据,我只能在子线程中发送信号,槽函数还是要运行在主线程中才能在QTableWidget中添加数据啊,你说的那个方法我不知道怎么用进去。。。