QT界面开发,线程函数里面不饿能够调用UI控件的问题

用QT做上位机界面,在QT头文件定义类
class MainWindow : public QMainWindow
{ QOBJECT
piblic :
explicit MainWindow(QWidget parent =0);
~MainWindow();
int initPort();
static DWORD stdcall ThreadPDoTest( DWORD EventID, LPVOID pBuf, DWORD BufLen, LPVOID UserData);

private:
Ui:: Mainwindow *ui;
}
#end if

然后ThreadPDoTest函数是这样定义的:
DWORD __stdcall MainWindow threadDotest(DWORD EventID, LPVOID pBuf, DWORD Buflen, LPVOID UserData)//。主要功能是完成数据的计算并且显示到QT的控件上
{
....
c1=(float)(256*data[1]+data[0])-512)*1.5/1000;
ui->NUMERIC_C1->setText(temp.setNum(c1));
c2=...
....
}

编译报错 invalid use of member ' MainWindow :: *ui' instatic member function
我看网上说把ui 改成public可行,但是主线程函数中才行,不然就会崩溃。

1个回答

QT 明确说明UI操作必须由ui主线程操作,

gy19920615
gy19920615 针对我这个问题,可以具体说明下解决思路吗
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐