1. 线程与界面组件须要注意的地方多线程
2.QThread线程如何操做界面组件-方法1app
3.QThread线程如何操做界面组件-方法2函数
4.使用Invokes()函数来调用界面组件的信号槽-方法3post
通常使用该函数(用来调用对方的私有信号或槽):this
该函数的链接方式默认使用的是Qt::AutoConnectionspa
好比,当咱们想调用一个obj下的compute(QString, int, double)槽函数时:线程
则只须要写入:code
QMetaObject::invokeMethod(obj, "compute", Q_ARG(QString, "sqrt"), Q_ARG(int, 42), Q_ARG(double, 9.7));
示例以下所示:对象
在Testtherd线程类里经过invokeMethod向父界面类的paintMsg槽函数发送信息blog
void Testtherd::run() {
int count=0; while(1) { QString str="请稍等,正在验证用户,登陆中"; for(int i =0;i<count;i++) str.append('.'); //循环添加小数点 count=(count+1)%7; QMetaObject::invokeMethod(this->parent(), "paintMsg", Q_ARG(QString, str)); msleep(500); } }
父界面类的paintMsg槽函数以下所示:
void loginwindow:: paintMsg(QString msg) { this->LineHint->setText(msg); }
运行效果以下: