更新Qlabel文档矩形,该矩形调用的标签不是文本标签.为什么

Updating Qlabel Document rectangle called for label that is not a text label. Why?

本文关键字:标签 为什么 文本标签 Qlabel 文档 更新 调用      更新时间:2023-10-16

在我的代码中,我有以下更新qlabel的函数。qlabel的更新非常频繁。代码是

void foo::someMethod(std:atring a)
{
     {//begin
     boost::lock_guard<boost::mutex> lock(mutex_label);
     frm->mylabel->setText(a.c_str());
     }//end lock
}

然后过了一会儿,我得到一个断言错误:

assert failure in documentRect: "document rect called for label that is not a text label! , file widgetsqlabel.cpp

有什么建议可能导致它吗?此外,有时该值从未显示。我需要移动表单来更新值

您无法从另一个线程访问GUI。没有多少互斥锁在这里会有帮助,Qt不支持。正确的方法是通过信号和插槽来实现。

你可以阅读更多的Qt信号跨线程,一个是GUI线程?.