Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从qt中的另一个对话框/表单的文本框中访问值?_C++_Qt_Textbox_Qt Creator_Multiplication - Fatal编程技术网

C++ 如何从qt中的另一个对话框/表单的文本框中访问值?

C++ 如何从qt中的另一个对话框/表单的文本框中访问值?,c++,qt,textbox,qt-creator,multiplication,C++,Qt,Textbox,Qt Creator,Multiplication,我试图完成这个乘法,因为它算出了我需要的值 int n1 = textboxWeight.text().toInt(); int n2 = 4; labelForcePS.setText(QString::number(n1 * n2)); 不幸的是,“textboxWeight”与我的labelForcePS位于不同的对话框/表单上。我希望标签等于文本框*4中输入的任何值。 我很难从textboxWeight中获取值,因为它与标签的形式不同。我一直在尝试信号和插槽,运气不好!我是新来的:/

我试图完成这个乘法,因为它算出了我需要的值

int n1 = textboxWeight.text().toInt();
int n2 = 4;
labelForcePS.setText(QString::number(n1 * n2));
不幸的是,“textboxWeight”与我的labelForcePS位于不同的对话框/表单上。我希望标签等于文本框*4中输入的任何值。 我很难从textboxWeight中获取值,因为它与标签的形式不同。我一直在尝试信号和插槽,运气不好!我是新来的:/

你们知道如何在从另一个对话框/表单访问值时完成乘法吗?

任何帮助都将不胜感激,谢谢

编辑:

这是我希望乘法发生的形式的代码:

#include "analytics.h"
#include "ui_analytics.h"
#include "ui_profiles.h"
#include "profiles.h"
#include "mainwindow.h"

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

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

void analytics::on_calculatebtn_clicked()
{
    int n1 = Ui::profiles.getTextboxText().toInt();
    int n2 = 4;
    ui->labelForcePS->setText(QString::number(n1 * n2));
}
    QString profiles::getTextboxText(){
        return ui->textboxWeight->text();
    }
这是“textboxWeight”所在表单的代码:

#include "ui_profiles.h"
#include <QComboBox>
profiles::profiles(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::profiles)
{
    ui->setupUi(this);
}

profiles::~profiles()
{
    delete ui;
}
#包括“ui_profiles.h”
#包括
配置文件::配置文件(QWidget*父项):
QWidget(母公司),
用户界面(新用户界面::配置文件)
{
用户界面->设置用户界面(此);
}
配置文件::~profiles()
{
删除用户界面;
}

如果第二个表单是一个
QDialog
,完成它的最简单方法是使用一个在这两个表单之间起桥梁作用的方法

在对话框类(第二种形式)中添加如下方法:

QString MyDialog::getTextboxText(){
    return ui->mytextbox->text();
}
int n1 = myDialog.getTextboxText().toInt();
int n2 = 4;
labelForcePS.setText(QString::number(n1 * n2));
在你的第一节课上,每当你想计算乘法时,你都会这样做:

QString MyDialog::getTextboxText(){
    return ui->mytextbox->text();
}
int n1 = myDialog.getTextboxText().toInt();
int n2 = 4;
labelForcePS.setText(QString::number(n1 * n2));

Edit#1:似乎
profiles
类就像一个对话框,即使它不是子类
QDialog
。请注意,最好扩展
QDialog
而不是
QWidget
来创建自定义对话框<代码>QDialogs内部继承
QWidget

好吧,让我们回到你的问题上来。您应该将该接口方法添加到
概要文件
类中。像这样:

  • profiles.cpp:

    QString profiles::getTextboxText(){
        return ui->mytextbox->text();
    }
    
  • h:(在
    profiles
    class的公共区域内的某处)

第二个问题是单击的方法上的
Ui::profiles
引用类本身,但您应该在该类的实例上调用此方法。只能对类名本身调用静态方法,而不能调用常规方法


顺便说一下,按照惯例,您的类名应该以大写字母而不是小写字母开头。i、 e.
配置文件
配置文件

再次感谢您的快速回复,Frogato!那么,这两位代码是否都进入了我想要完成乘法的表单/对话框?而且,我得到了很多未在作用域中声明的错误,这可能是因为我将代码放在了错误的位置!你把“我的对话”放在哪里我会把我的表格的名字放在哪里,我在主窗口中称它为“表格”。h?@Joe请回答你的问题并把你的代码贴在那里。没有他们我帮不了你。你知道我的意思吗?我的分析页面上有一个标签,我试图输出4*用户输入textboxWeight的任何值(在配置文件页面上)