我在Visual Studio中的以前的項目(我們稱之爲項目1)中創建了一個QT窗體,現在另一個項目的UI屬性和設計與之前的幾乎相同項目,因此我正在考慮在Visual Studio中創建一個QT表單項目(項目2),並且從之前的QT表單繼承而不是重寫代碼。例如,對於項目1:如何從Visual Studio C++中的QT窗體繼承
class GUIBase : public QMainWindow
{
Q_OBJECT
public:
GUIBase (QWidget *parent = 0, Qt::WFlags flags = 0);
~GUIBase();
public slots:
//some slot definitions
};
而在項目2中,衍生自:
class GUIDerived: public GUIBase
{
Q_OBJECT
public:
GUIDerived (QWidget *parent = 0, Qt::WFlags flags = 0);
~GUIDerived();
};
當編譯項目2,它有一個問題,當MOC-ING在項目1 GUIBase(因爲頭GUIBase文件位於不同的文件夾中)。所以我的主要問題是,我如何設置moc過程?我是否僅僅需要GUIBase或是否需要同時使用GUIBase和GUIDerived?我還需要一個GUIDerived的.ui文件嗎?
對不起,如果問題不太清楚,那是因爲我自己並不完全確定這個過程。
如果要將UI複製到其他項目,可以重複使用.ui文件,將其與第一個項目中的相同方式包含到項目中。 MainWindow類只是UI的容器,UI的佈局和控件存儲在.ui文件中。如果您想重用您在GUIBase中編寫的方法,您需要複製GUIBase頭文件和cpp文件以及.ui文件在新項目 – WoJo
中感謝您的評論。我想到了這一點,但我試圖看看是否有可能將基礎文件放在一箇中央位置,並從那裏使用它們。我需要使用相同的UI設計和格式來開發另外兩個項目。 – mikevil14rin