gpt4 book ai didi

c++ - (Qt C++) 将 int 值从对话框发送到 MainWindow?

转载 作者:行者123 更新时间:2023-11-28 07:31:06 24 4
gpt4 key购买 nike

我对 C++ 和 Qt 还很陌生。我在当前项目上已经取得了很大进展,但我一直在推迟这一部分。我有一个按钮可以打开这样一个新对话框:

void MainWindow::on_fillAll_clicked()
{
int yo;
BlockSelect bSelect;
bSelect.setModal(true);
bSelect.exec();

if( bSelect.exec() == QDialog::Accepted )
{
//Get stuff here?
//I want to fill yo with the spinbox value
yo = bSelect.stuff();
return;
}

qDebug() << yo;
}

这很好用。在对话框中,我有一个旋转框。当用户单击“确定”时,我想将输入到旋转框的值发送到我的主窗口。

我一直在尝试获取“int yo;”从 spinbox 中获取该值,但我尝试的所有操作都会出错。

我将其添加到我的 BlockSelect 公共(public)类中:

int stuff();

我在我的 blockselect.cpp 中创建了这个函数:

int BlockSelect::stuff()
{
qDebug() << "The function was called";
return ui->yolo->value();
}

但是 qDebug 从来不显示任何东西???

那么我怎样才能用对话框中的 yolo 填充主窗口中的 yo?

抱歉,如果我没有解释清楚 :( 我还在学习。感谢您的宝贵时间:)

最佳答案

首先,不需要调用exec()两次,只需要在if语句中调用一次即可。

要回答你的问题,你仍然有 bSelect 对话框对象(我假设 BlockSelect 是你定义的类?),所以在它里面创建一个访问函数来检索你想要的值。

if( bSelect.exec() == QDialog::Accepted )
{
//Get stuff here?
//I want to fill yo with the spinbox value
yo = bSelect.stuff();
return;
}

编辑:

您的 BlockSelect 类需要包含一个访问函数,这意味着一个返回值的函数。

int stuff() { return ui->yolo->value();}

我在这里所做的是检索 spinbox 的值(假设它被命名为“yolo”)并将其作为调用“stuff”函数的结果返回。

关于c++ - (Qt C++) 将 int 值从对话框发送到 MainWindow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17688722/

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