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.
我创建了一个 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.