问题描述
我们有 2 个 ui 表单。假设 form1.ui 和 form2.ui 以及它们的头文件和源文件。 在每个表单中,都有一个pushButton、一个标签和一个变量QString。我想通过单击 form1.ui 中的按钮来显示 form2.ui 并通过单击 form2.ui 中的按钮来显示 form1.ui。
label1 的文本为 QString2 的值,label2 的文本为 QString1 的值。
这是大纲: Project outline
form1.cpp:
#include "form1.h"
#include "ui_form1.h"
Form1::Form1(QWidget *parent) :
QMainWindow(parent),ui(new Ui::Form1)
{
ui->setupUi(this);
}
Form1::~Form1()
{
delete ui;
}
form1.h
#ifndef FORM1_H
#define FORM1_H
#include <QMainWindow>
namespace Ui {
class Form1;
}
class Form1 : public QMainWindow
{
Q_OBJECT
public:
explicit Form1(QWidget *parent = nullptr);
~Form1();
QString str1 = "some text 1";
private:
Ui::Form1 *ui;
};
#endif // FORM1_H
form2.cpp 和 form2.h 与这些相同。
解决方法
没有你提供一点代码......
理想情况下,当您通过连接发出事件信号时,例如 QPushButton
Your_QPushButton.clicled.connect(lambda: loadUi('form2.ui',self) )
或
你调用另一个会加载你 ui 的类?