不更新 QLabel 值
Posted
技术标签:
【中文标题】不更新 QLabel 值【英文标题】:Not updating QLabel value [closed] 【发布时间】:2021-05-25 06:39:39 【问题描述】:我想读取一个数据文件并使用 QLabel 打印数据的大小。我只能在读取数据之前调用 setText ,所以它返回 0 并且在我读取数据后不会改变。您能否帮助我了解如何在读取数据后更新 Qlabel 的值?
MainInterfaceWindow::MainInterfaceWindow(QWidget *parent) :
QMainWindow(parent), ui(new Ui::MainInterfaceWindow)
ui->label->setText(QString::number(ui->openGLWidget->m_size));
void Canvas::DoDataRelatedStuff
...
m_size= dataSize.size();
【问题讨论】:
【参考方案1】:给你的画布类添加一个信号
// Canvas.h
class Canvas : public /* base class */
// required in header
Q_OBJECT
// ... other class stuff ...
signals:
void dataSizeChanged(int size);
在您的 MainInterfaceWindow 中,将该信号连接到更新文本的 lambda 函数:
MainInterfaceWindow::MainInterfaceWindow(QWidget *parent) :
QMainWindow(parent), ui(new Ui::MainInterfaceWindow)
ui->label->setText(QString::number(ui->openGLWidget->m_size));
connect(ui->openGLWidget, &Canvas::dataSizeChanged, ui->label,
[](auto size) ui->label->setText(QString::number(size)); );
【讨论】:
以上是关于不更新 QLabel 值的主要内容,如果未能解决你的问题,请参考以下文章
自动调整 QLabel 的大小以适应更新的 QTableWidget 跨度