2014-05-24 7 views
3

Visual Studio 용 Qt 추가 기능을 사용하고 있습니다. 이제는 Qt 디자이너를 사용하여 간단한 푸시 버튼을 만들었습니다. 푸시 버튼을 사용하여 특정 입력 매개 변수가있는 함수를 실행 한 다음 해당 함수가 인쇄 한 결과를 표시합니다.누름 버튼을 클릭하면 기능 실행

는 내가 실행하려는 기능은 eigen 라이브러리가 너무 #include <Eigen/Dense> 필요하며 다음과 같이 호출해야합니다

: 나는 Qt는 디자이너의 푸시 버튼을 만든 후 자동 이미 일부 코드를 추가

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

내 헤더 파일. 내가

  1. 고유치의 libary이 헤더에 알 수 없기 때문에이 당연히 작동하지 않을 것입니다 알고

    #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 
    

    ,

  2. V A는 알 수 : 는 이제 다음이 헤더 파일을 조정 이 헤더에
  3. 3)이 헤더 파일에서는 coef() 함수를 알 수 없습니다.

그러나 헤더 파일을 사용하는 데 익숙하지 않아서 작동하도록하기 위해 무엇을해야할지 모르겠습니다. 아무도 도와 줄 수 없습니까? 미리 감사드립니다.

+0

coef는 어디에 정의되어 있습니까? QPushButton에는 이러한 메서드가 없습니다. 하위 클래스를 만들었습니까? 그렇다면 왜? 그렇지 않다면 어떻게 작동 할 수 있습니까? – lpapp

+0

@LaszloPapp in main.cpp – dreamer

+0

main.cpp를 보여 주시겠습니까? – lpapp

답변

2

당신은 다음을 수행해야합니다 :

1) #include <Eigen/Dense>을이 파일에.

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

3)이 클래스에 const 멤버 변수로 vA를 이동하거나 여기에 정적합니다. 하지만 구현을 qtdemo.cpp 소스 파일로 옮기고 머리말에 선언 만 남겨 두는 것이 좋습니다.

+0

고마워. :). 3) 가장 편하게 어떻게하면 좋을까요? A와 v는 main.cpp의 다른 함수에 의해 생성됩니다 – dreamer

+0

다시 한번 감사드립니다. 아직 실제로 마지막 부분을 얻지는 못했지만 구현의 어느 부분을 .cpp 파일로 옮길 것입니까? 헤더에 정확히 무엇을 넣으시겠습니까? – dreamer

+0

@dreamer : main.cpp에'v'와'A'가 있습니다 만,이 헤더에이 변수가 필요합니다 ...이 변수를이 헤더로 옮기고 main.cpp에서이 헤더를 포함시켜야합니다 어쨌든. – lpapp