我正在尝试完成这个乘法,因为它计算出我需要的值。
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;
}
答案 0 :(得分:0)
如果你的第二个表格是QDialog
,那么完成它的最简单方法就是使用一种方法,就像这两种形式之间的桥梁一样。
在对话框类(第二种形式)中添加如下方法:
QString MyDialog::getTextboxText(){
return ui->mytextbox->text();
}
在你的第一堂课中,无论何时你想计算乘法,你都会做这样的事情:
int n1 = myDialog.getTextboxText().toInt();
int n2 = 4;
labelForcePS.setText(QString::number(n1 * n2));
编辑#1:似乎profiles
类就像对话框一样,即使它不是QDialog
的子类。请注意,最好扩展QDialog
而不是QWidget
来创建自定义对话框。 QDialog
内部继承了QWidget
类。
好的,让我们回到你的问题。您应该将该接口方法添加到profiles
类。像这样:
profiles.cpp:
QString profiles::getTextboxText(){
return ui->mytextbox->text();
}
profiles.h :(在profiles
类的公共区域内的某处)
QString getTextboxText();
第二个问题出在on_calculatebtn_clicked
方法。 Ui::profiles
指的是类本身,但是您应该在此类的实例上调用此方法。只能在类名本身上调用 static 方法,而不是常规方法。
顺便说一下,作为惯例,你的类名应该以大写字母而不是小写字母开头。即Profiles
而非profiles
。