我有一个Qt gui项目,在“mainwindow.cpp”文件中我必须定义一个我无法在“mainwindow.h”下声明的函数。但我想在MainWindow下调用该函数(func_sqrt)并在标签中显示我的func_sqrt的结果值。出于某种原因,我需要这样做。但我不知道如何将该函数连接到gui对象。我的代码如下所示:
#include "mainwindow.h"
#include "ui_mainwindow.h"
QString input;
void func_sqrt(int x);
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
func_sqrt(2);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::showtext(QString txt)
{
ui->lbl_value->setText(txt);
}
void func_sqrt(int x)
{
int y;
y = x*x;
}
我将此部分添加到func_sqrt函数中,但它不起作用:
MainWindow *w = new MainWindow;
w->showtext(QString::number(y));
答案 0 :(得分:0)
首先,你的func_sqrt目前是一个无操作。接下来,在内部计算一个正方形,但其名称为sqrt(平方根的缩写),您可能想要检查该名称是否与语义一致。这是旁注。
如果您需要在mainwindow.cpp之外使用此功能,则可以在单独的标头中声明它,并根据需要将其包含在任何位置。或者,您可以在其使用的每个文件中声明它,链接器稍后将解析实际的实现。例如,在subordinatewindow.cpp文件中:
void func_sqrt(int);
// ...
int x{42};
func_sqrt(x);