【发布时间】:2014-05-24 16:11:08
【问题描述】:
我正在为 Visual Studio 使用 Qt 插件。现在我使用 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
我知道这当然行不通,因为
- 此标头不知道 Eigen 库,
- v 和 A 对此标头未知
- 3) 此头文件不知道函数 coef()。
但是,我对使用头文件没有经验,所以我不知道该怎么做才能使它工作。有人可以帮忙吗?提前致谢。
【问题讨论】:
-
coef 是在哪里定义的? QPushButton 没有这样的方法。你创建了一个子类吗?如果是,为什么?如果没有,它怎么可能工作?
-
@LaszloPapp 在 main.cpp 中
-
能否请您显示main.cpp?
-
@Sure,但它仅包含 coef 函数以及
Eigen使其工作所需的标头。 -
它还必须具有主要功能,方法是使用您的 qtdemo 子类和包围的 QApplication。 ;)
标签: c++ qt qtgui qmainwindow qt-signals