在Qt中设置线程中的小部件标签文本
Set widget label text in a thread in Qt
我是Qt的新手,我真的被线程困住了。我知道这个问题已经被回答过很多次了,但是我不知道如何解决我的问题。我有几个标签的小部件应用程序,我有一个类,从串行端口读取数据。我需要连续读取数据并在标签中显示它们。我在Qt中找到了许多关于线程的不同答案,但我不能让他们中的任何一个工作。谁能给我指个正确的方向?
这段代码大致显示了我想要实现的目标:
串口class:
SerialPort *port;
int value1;
int value2;
int value3;
void Port::ReadData()
{
// First I send data to serial port as a QByteArray
QByteArray data = port.readAll();
value1 = data[0];
value2 = data[1];
value3 = data[3];
// Of course it's not really like this but I process data and assign them to
variables
}
变量value1, value2和value3是公共的,我使用label1->setText(portClass.value1)来显示数据。当我使用这个按钮点击它的工作原理,但我想关闭它的循环和连续读取数据。
标签有插槽,你可以使用invokeMethod
从任何线程调用:
QMetaObject::invokeMethod (label1, "setText",
Q_ARG(QString,data[0]);
QMetaObject::invokeMethod (label2, "setText",
Q_ARG(QString,data[1]);
QMetaObject::invokeMethod (label3, "setText",
Q_ARG(QString,data[2]);
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 最小硬币更换问题(自上而下方法)
- Qt VTK交互风格的信号到小部件
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 使用递归的数组的最小值.这是怎么回事
- 为什么在浮点中从大到小会引入更多的误差
- 找到两对数字,使它们的乘积的绝对差最小化
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 最大和最小 1 C++函数
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 我可以做些什么来消除或最小化这种将提供相同功能和行为的代码重复
- 如何在等效列表中查找最小的连接标签
- 如何添加相对于QTABBAR中标签的位置的小部件
- C++ 创建小部件数组
- 当框架未启用时,保持GtkFrame标签小部件处于启用状态
- 如何在Qt中打破小部件的标签顺序链
- 向小部件添加标签
- c++ qt添加图像到匿名标签(或其他小部件)
- 在Qt中设置线程中的小部件标签文本