gpt4 book ai didi

c++ - Qt访问不同类的ui

转载 作者:行者123 更新时间:2023-11-30 04:03:43 24 4
gpt4 key购买 nike

我正在尝试访问不同类的 ui 元素,但收到错误消息。我已经尝试这样做了很多个小时,但仍然失败,我觉得我缺少一些简单的东西。

我正在尝试访问 form.h 中的元素“label”

主窗口:

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include "form.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

Form * elemForm = new Form(this);
elemForm->ui; // works
//elemForm->ui->label; // does not work
}

MainWindow::~MainWindow()
{
delete ui;
}

表格.h

#ifndef FORM_H
#define FORM_H

#include <QWidget>

namespace Ui {
class Form;
}

class Form : public QWidget
{
Q_OBJECT

public:
explicit Form(QWidget *parent = 0);

~Form();
Ui::Form *ui;
private:

};

#endif // FORM_H

表单.cpp

#include "form.h"
#include "ui_form.h"

Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
ui->label; //works fine here
}

问题出在 mainwindow 文件中。我知道这是不合适的代码,我只是对我做错了什么感兴趣。我正在努力寻找问题所在,有什么想法吗?

最佳答案

除了 form.h 之外,您还应该在 MainWindow.h 中包含 ui_form.h

那是因为表单元素都是在 Ui::Form 中定义的,可以通过包含 :

#include "ui_form.h"

关于c++ - Qt访问不同类的ui,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24260562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com