2014-10-13 4 views
0

Ну, I'am вид новичку на 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 

I определенный MainWindow w; как это и я использовал тег на конструктор и деструкторе, но я получаю г:

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 :: MainWindow определение (в ui_Mainwindow.h) порождается МСЖД, а не шаблонный класс.


Ошибка после этого вы получите, потому что QObject подкласс не может быть шаблонного класса ... Так что я думаю, что вы не можете делать то, что вы хотите с шаблонами.

Смежные вопросы