不更新 QLabel 值

Not updating QLabel value

我想读取数据文件并使用 QLabel 打印数据的大小。我只能在读取数据之前调用 setText,所以它 returns 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();
   }

向您的 canvas 添加信号 class

// 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)); });
 }