Qt5从另一个类访问ui [重复]

Posted

技术标签:

【中文标题】Qt5从另一个类访问ui [重复]【英文标题】:Qt5 access the ui from another class [duplicate] 【发布时间】: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 我更新了它 【参考方案1】:

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

【讨论】:

以上是关于Qt5从另一个类访问ui [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从另一个类访问 UI 图像

从另一个线程访问 UI 线程的视图

如何从另一个模块访问测试类以在 junit 测试中使用?

Python Kivy 无法从另一个类访问 id

如何从另一个 qdialog 的主窗口访问 ui?

Qt5 ui,多个窗口:如何从窗口 1 访问窗口 2 中的 Ui 对象