Qt5从另一个类访问ui

时间:2019-01-07 15:53:36

标签: c++ qt qt5 qt-creator

我创建了一个类datafunctions,我想在其中存储用于更新主窗口中的UI小部件的每个函数。所以我试图将ui作为参数传递给函数。假设我想更改属于主窗口的textEdit_data小部件的文本。将ui作为参数传递给类dataFunctions中的function formatandInsert函数后,我无法访问mainwindow ui的任何小部件。以下代码给我错误“成员访问不完整类型'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);
}

1 个答案:

答案 0 :(得分:1)

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