【问题标题】:Qt5 access the ui from another class [duplicate]Qt5从另一个类访问ui [重复]
【发布时间】:2019-01-07 15:53:36
【问题描述】:

我创建了一个类 datafunctions,我想在其中存储更新主窗口中的 UI 小部件的每个函数。所以我试图将 ui 作为参数传递给函数。假设我想更改作为主窗口一部分的 textEdit_data 小部件的文本。将ui作为参数传递到类dataFunctions中的函数formatandInsert后,我无法访问主窗口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);
}

【问题讨论】:

  • 不清楚您所说的“我仍然无法访问 ui”是什么意思。似乎你得到的东西比你预期的要多。没有描述您所期望的和您得到的。也看不到 formatandInsert 所做的任何事情。
  • @ÖöTiib 我更新了它

标签: c++ qt qt5 qt-creator


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多