Qt5 从另一个类访问 UI

Qt5 access the ui from another class

本文关键字:访问 UI 另一个 Qt5      更新时间:2023-10-16

我创建了一个类数据函数,我想在其中存储每个更新主窗口中UI小部件的函数。所以我尝试将 ui 作为参数传递给函数。假设我想更改我的textEdit_data小部件的文本,该小部件是主窗口的一部分。将 ui 作为参数传递到函数格式和插入类 dataFunctions 后,我无法访问主窗口 ui 的任何小部件。下面的代码给了我错误"成员访问不完整的类型'Ui::MainWindow'"

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

那是我的数据函数.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);
}
您需要

datafunctions.cpp文件中#include "ui_mainwindow.h"。它是一个由Qt Designer自动生成的标头,它定义了Ui::MainWindow类。