单击按钮时运行功能

时间:2014-05-24 16:11:09

标签: c++ qt qtgui qmainwindow qt-signals

我正在使用Qt add for visual studio。现在我使用Qt设计器创建了一个简单的按钮,我想使用该按钮,以便在按下时运行具有某个输入参数的函数,然后显示该函数打印的结果。

我想要运行的函数使用eigen库,因此需要#include <Eigen/Dense>,并且应按如下方式调用:

void coef(Eigen::Matrix<long double, Dynamic, Dynamic> vector, Eigen::Matrix<long double, Dynamic, Dynamic> Matrix)

在Qt设计器中创建了按钮后,它自动将一些代码添加到我的头文件中。 现在我将此头文件调整为以下内容:

#ifndef QTDEMO_H

#define QTDEMO_H

#include <QtWidgets/QMainWindow>
#include "ui_qtdemo.h"

class qtdemo : public QMainWindow
{
    Q_OBJECT

public:
    qtdemo(QWidget *parent = 0);
    ~qtdemo();

private:
    Ui::qtdemoClass ui;

// begin new code
public slots:
    void on_btnHello_clicked() {
        ui.btnHello->coef(v, A); // v and A are defined in main.cpp, so not in this header file
    }
// end new code

};

#endif // QTDEMO_H

我知道这当然行不通,因为

  1. 此标题不知道本征库,
  2. v和A未知此标题
  3. 3)此头文件未知函数coef()。
  4. 但是,我对使用头文件没有经验,所以我不知道如何使其工作。有人可以帮忙吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

您需要执行以下操作:

1)此文件中的#include <Eigen/Dense>

2)ui.btnHello->coef(v, A); - &gt; coef(v, A);

3)将vA作为const成员变量移动到此类中,或者将它们设置为静态。虽然,最好将实现移动到qtdemo.cpp源文件中,并将声明留在标题中。