gpt4 book ai didi

qt - 存储 qdialog 中的变量以在 qmainwindow 中使用

转载 作者:行者123 更新时间:2023-12-04 12:46:49 25 4
gpt4 key购买 nike

我已经创建了一个 dialog.h、dialog.cpp 和一个 dialog.ui,我在对话框中有 qlineedit,还有确定和取消按钮,我想将这些 linedit 信息存储在不同的主窗口中使用文件。这是我的对话框代码。

#include <QtGui/QApplication>
#include "dialog.h"
#include "ui_dialog.h"

void Dialog::startplanevolume()
{
if (xMax==0)
{
ui->label_17->setText("Error: Can't start, invalid \nmeasures");
}
else
{
this->accept();
}
}

// Define the length of the volume
void Dialog::bmprange()
{
// Getting some proprieties for the lenght of the volume
QString XMAX=ui->lineEdit->text();
xMax=XMAX.toDouble();

if (xMax==0)
{
ui->label_17->setText("Error: invalid measures");
}
else
{
ui->label_17->setText("Valid measures");
}
}

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

// Control volume measures
// Making the lineedit objects only accept numbers
ui->lineEdit->setValidator(new QIntValidator(this));
connect(ui->lineEdit, SIGNAL(textChanged(QString)), this, SLOT(bmprange()));


// Start planevolume
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(startplanevolume()));
connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(hide()));

}

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

void Dialog::changeEvent(QEvent *e)
{
QDialog::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}

我怎样才能在 mainwindow.cpp 中使用 xMax 的值?

这是我的 dialog.h
#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog {
Q_OBJECT
public:
Dialog(QWidget *parent = 0);
~Dialog();

protected:
void changeEvent(QEvent *e);

private:
Ui::Dialog *ui;
double xMax, yMax, zMax, xMMax, yMMax, zMMax, list[6];

public slots:
void bmprange();
void startplanevolume();

};

#endif // DIALOG_H

这是我的 main.cpp
#include <QtGui/QApplication>

#include "planevolume.h"
#include "dialog.h"

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

Dialog *dialog= new Dialog;

if (dialog->exec())
{
planevolume mainwindow;
mainwindow.show();
return app.exec();
}

return 0;
}

那么我想使用 xMax 来计算planevolume.cpp 中的一些东西,主窗口

最佳答案

我认为您可以在对话框中创建一个 getter 函数。对话框关闭后,您可以使用创建的 getter 函数访问变量。

您可以将返回的变量作为参数提供给主窗口 (planvolume.cpp)。

我希望这有帮助。

编辑:

在 dialog.h/dialog.cpp 中添加一个函数:

double Dialog::getXMax()
{
return xMax;
}

之后,您可以访问 main.cpp 中的变量:
Dialog *dialog= new Dialog;

if (dialog->exec())
{
double xMax = dialog->getXMax();
planevolume mainwindow;
mainwindow.show();
return app.exec();
}

关于qt - 存储 qdialog 中的变量以在 qmainwindow 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12195117/

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