2014-10-13 141 views
0

好吧,我'那種Qt的新手的話,我想用Qt的模板,但我無法找出如何做到這一點,QT如何在設計器類

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QMainWindow> 

namespace Ui { 
template<typename T> class MainWindow; 
} 

template<typename T> class MainWindow : public QMainWindow 
{ 
    Q_OBJECT 

public: 
    explicit MainWindow(QWidget *parent = 0); 
    ~MainWindow(); 

private: 
    Ui::MainWindow *ui; 
}; 

#endif // MAINWINDOW_H 

我使用模板定義MainWindow w;這樣,我用在構造函數和析構函數標籤,但我想趁自己G:

error: invalid use of template-name 'Ui::MainWindow' without an argument list

如何使用模板上呢?

+0

從哪一行你會得到那個錯誤? – hyde

+0

關於這個Ui :: MainWindow * ui;在私人領域的類。 –

+0

那麼,是不是很明顯的錯誤信息:你從那裏錯過了''。或者任何你想要的類型。 – hyde

回答

1

您必須:

namespace Ui { 
    class MainWindow; 
} 

因爲UI ::(在ui_Mainwindow.h)主窗口定義由UIC生成的,不是一個模板類。


的錯誤後,你得到的,因爲QObject子類不能是一個模板類...所以我想你想使用模板你不能這樣做。