Qt5 从另一个 class 访问 ui

Qt5 access the ui from another class

我创建了一个 class 数据函数,我想在其中存储更新主窗口中 UI 小部件的每个函数。所以我试图将 ui 作为参数传递给函数。假设我想更改作为主窗口一部分的 textEdit_data 小部件的文本。将 ui 作为参数传递到 class 数据函数中的函数格式和插入后,我无法访问主窗口的任何小部件 ui。下面的代码给我错误 "member access into incomplete type 'Ui::MainWindow'"

void dataFunctions::formatandInsert(Ui::MainWindow *ui){
    ui->textEdit_data->setText("");
}

那是我的 datafunctions.h 文件

#ifndef DATAFUNCTIONS_H
#define DATAFUNCTIONS_H

#include "mainwindow.h"
#include <QTextEdit>

class dataFunctions
{
public:
    dataFunctions();
    void formatandInsert(Ui::MainWindow*);
};

#endif // DATAFUNCTIONS_H

我在主窗口的构造函数中调用了函数 formatandInsert,如下所示:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    dataFunctions df;
    df.formatandInsert(ui);
}

您需要 #include "ui_mainwindow.h" 在您的 datafunctions.cpp 文件中。它是由 Qt Designer 自动生成的 header,它定义了 Ui::MainWindow class.