如何通过按下第三个窗口中的按钮将QString从一个窗口转到另一个窗口 新的C++和QT作为研究项目(生物学)的一部分,一直在与一些简单的东西进行斗争。我真的很感激有人的帮助
我正在为一个预先存在的程序使用GUI,我正在尝试将QString变量从一个窗口(inputform)的QLineEdit传输到第二个窗口(output form)的QLineEdit 我遇到的问题是,当我单击第三个窗口(filedialog)上的按钮时,我需要显示输出表单,并预先填充它的LineEdit 问题:如何通过按下第三个窗口中的按钮将QString从一个窗口转到另一个窗口 新的C++和QT作为研究项目(生物学)的一部分,一直在与一些简单的东西进行斗争。我真的很感激有人的帮助,c++,qt,getter-setter,qlineedit,C++,Qt,Getter Setter,Qlineedit,我正在为一个预先存在的程序使用GUI,我正在尝试将QString变量从一个窗口(inputform)的QLineEdit传输到第二个窗口(output form)的QLineEdit 我遇到的问题是,当我单击第三个窗口(filedialog)上的按钮时,我需要显示输出表单,并预先填充它的LineEdit 问题: 启动-->时会出现两个窗口:文件对话框和inputform 用户将数据输入inputform的QLineEdit 用户按下文件对话框窗口上的“传输按钮” 按下按钮时,将显示-->out
- 启动-->时会出现两个窗口:文件对话框和inputform李>
- 用户将数据输入inputform的QLineEdit
- 用户按下文件对话框窗口上的“传输按钮”
- 按下按钮时,将显示-->outputform,其中预填充了用户数据(来自inputform)的QLineEdit李>
#include "filedialog.h"
#include "inputform.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
FileDialog w;
InputForm w2;
w.show();
w2.show();
return a.exec();
}
inputform.h
#ifndef INPUTFORM_H
#define INPUTFORM_H
#include <QWidget>
namespace Ui {
class InputForm;
}
class InputForm : public QWidget
{
Q_OBJECT
public:
explicit InputForm(QWidget *parent = nullptr);
~InputForm();
Ui::InputForm *ui;
};
#endif // INPUTFORM_H
outputform.h
#ifndef OUTPUTFORM_H
#define OUTPUTFORM_H
#include <QWidget>
namespace Ui {
class OutPutForm;
}
class OutPutForm : public QWidget
{
Q_OBJECT
public:
explicit OutPutForm(QWidget *parent = nullptr);
~OutPutForm();
Ui::OutPutForm *ui;
};
#endif // OUTPUTFORM_H
谢谢你的简短指示 玩了一会儿之后: 设置主窗口(或在我的情况下为主对话框窗口)。生成inputform实例,将按钮连接到inputform
FileDialog::FileDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::FileDialog)
{
ui->setupUi(this);
InputForm *inputForm = new InputForm;
connect(ui->transferButton,SIGNAL(clicked()),inputForm,SLOT(getLineEditTextFunc()));
inputForm->show();
}
FileDialog::~FileDialog()
{
delete ui;
}
void FileDialog::on_transferButton_clicked()
{
}
然后从输入表单:
定义一个函数以获取输入表单的LineEdit文本(文件名);然后还生成一个输出表单,并用fileName变量填充它的LineEdit
InputForm::InputForm(QWidget *parent) :
QWidget(parent),
ui(new Ui::InputForm)
{
ui->setupUi(this);
}
InputForm::~InputForm()
{
delete ui;
}
void InputForm::getLineEditTextFunc()
{
fileName = this->ui->inputLineEdit->text();
OutPutForm *outputform = new OutPutForm;
outputform->ui->outputLineEdit->setText(fileName);
outputform->show();
}
信号和插槽
#ifndef OUTPUTFORM_H
#define OUTPUTFORM_H
#include <QWidget>
namespace Ui {
class OutPutForm;
}
class OutPutForm : public QWidget
{
Q_OBJECT
public:
explicit OutPutForm(QWidget *parent = nullptr);
~OutPutForm();
Ui::OutPutForm *ui;
};
#endif // OUTPUTFORM_H
#include "outputform.h"
#include "ui_outputform.h"
OutPutForm::OutPutForm(QWidget *parent) :
QWidget(parent),
ui(new Ui::OutPutForm)
{
ui->setupUi(this);
}
OutPutForm::~OutPutForm()
{
delete ui;
}
FileDialog::FileDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::FileDialog)
{
ui->setupUi(this);
InputForm *inputForm = new InputForm;
connect(ui->transferButton,SIGNAL(clicked()),inputForm,SLOT(getLineEditTextFunc()));
inputForm->show();
}
FileDialog::~FileDialog()
{
delete ui;
}
void FileDialog::on_transferButton_clicked()
{
}
InputForm::InputForm(QWidget *parent) :
QWidget(parent),
ui(new Ui::InputForm)
{
ui->setupUi(this);
}
InputForm::~InputForm()
{
delete ui;
}
void InputForm::getLineEditTextFunc()
{
fileName = this->ui->inputLineEdit->text();
OutPutForm *outputform = new OutPutForm;
outputform->ui->outputLineEdit->setText(fileName);
outputform->show();
}