当我启动程序时,会弹出一个对话框窗口,并要求我输入一个名称。一旦我输入了我的姓名并按下按钮,它就会关闭对话框并打开主窗口。
我的问题是我如何将对话框中设置的变量/名称转换为另一个类/我的main.cpp
Main.cpp的
#include "mainwindow.h"
#include <QApplication>
#include <QtDebug>
#include <QtNetwork>
#include <sstream>
#include "mydialog.h"
using namespace std;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// Open Dialog
MyDialog mDialog;
mDialog.setModal(true);
mDialog.exec();
//Open Main Window
GW2::MainWindow w;
w.show();
return a.exec();
}
mydialog.cpp
#include "mydialog.h"
#include "ui_mydialog.h"
#include <QDebug>
using namespace std;
MyDialog::MyDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::MyDialog)
{
ui->setupUi(this);
}
MyDialog::~MyDialog()
{
delete ui;
}
void MyDialog::on_pushButton_clicked()
{
QString MYNAME = ui->lineEdit->text();
close();
}
我可以在这里按下按钮但我需要传递变量...
mydialog.h
#ifndef MYDIALOG_H
#define MYDIALOG_H
#include <QDialog>
#include <QString>
namespace Ui {
class MyDialog;
}
class MyDialog : public QDialog
{
Q_OBJECT
public:
explicit MyDialog(QWidget *parent = 0);
~MyDialog();
private slots:
void on_pushButton_clicked();
private:
Ui::MyDialog *ui;
};
#endif // MYDIALOG_Hs
我尝试使用谷歌和搜索功能,但没有找到任何有效的项目。希望您能够帮助我。干杯
答案 0 :(得分:1)
在MyDialog
:
QString MyDialog::getName()
{
return ui->lineEdit->text();
}
然后做:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// Open Dialog
MyDialog mDialog;
mDialog.setModal(true);
mDialog.exec();
// retrieve the name
QString name = mDialog.getName();
//Open Main Window
GW2::MainWindow w;
w.show();
return a.exec();
}
请注意,该对话框可能会被取消。您应该从accept()
致电close()
而不是on_pushButton_clicked()
,然后测试是否接受了对话:
if ( mDialog.exec() == QDialog::Accepted )
{
QString name = mDialog.getName();
...