从MainWindow Qt

时间:2018-01-12 14:01:26

标签: c++ qt function mainwindow

我有一个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));

1 个答案:

答案 0 :(得分:0)

首先,你的func_sqrt目前是一个无操作。接下来,在内部计算一个正方形,但其名称为sqrt(平方根的缩写),您可能想要检查该名称是否与语义一致。这是旁注。

如果您需要在mainwindow.cpp之外使用此功能,则可以在单独的标头中声明它,并根据需要将其包含在任何位置。或者,您可以在其使用的每个文件中声明它,链接器稍后将解析实际的实现。例如,在subordinatewindow.cpp文件中:

void func_sqrt(int);

// ...

int x{42};
func_sqrt(x);