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); }
運行效果以下: