• 3033阅读
  • 4回复

[提问]全局函数调用ui控件提示“ui”: 未声明的标识符 [复制链接]

上一主题 下一主题
离线hahaxiao1
 

只看楼主 倒序阅读 楼主  发表于: 2019-06-20
在mainwindow.cpp里创建了一个线程CreateThread, 线程调用队列获取数据, 在调用的最后一个解析函数里调用ui->tableWidget->setItem(0,0,new QTableWidgetItem(""));报“ui”: 未声明的标识符。
解析函数是全局函数, 没有类, 在linklist.cpp文件里。
在网上搜了一下问题, 没找到有效的答案, 请各位帮忙, 能不能用connectc把数据传到mainwindow.cpp里
离线hahaxiao1

只看该作者 1楼 发表于: 2019-06-20
搞错思路了, 直接在mainwindow.cpp里直接取数据就行了, 不知道这样行不行
离线hahaxiao1

只看该作者 2楼 发表于: 2019-06-20
线程是static的,线程里不能调用类成员,将this指针作为参数传递也不行, 启动就挂了,那位老大帮忙给个demo, 十分感谢
离线20091001753

只看该作者 3楼 发表于: 2019-06-21
你要注意,UI的操作,只能在主线程,不能在其他的线程,否则会出现问题。
所以应该是,你新建的线程只处理数据,完成后发送信号,通知主线程来把数据写入UI里。
(づ ̄ 3 ̄)づ
离线hahaxiao1

只看该作者 4楼 发表于: 2019-06-21
是的, 没加信号的时候报错, 加了connect(this, SIGNAL(pthreadSingnalData(QString)), this, SLOT(pthreadSlotData(QString)));正常了,
快速回复
限100 字节
 
上一个 下一个