[英]How to inherit variables from between forms in Visual Studio, C++
[英]How to inherit from a QT form in Visual Studio C++
我已經在Visual Studio的先前項目(我們稱為項目1)中創建了QT表單,現在另一個項目具有與先前項目幾乎相同的UI屬性和設計,因此我正在考慮在Visual中創建QT表單項目。 Studio(項目2),並繼承以前的QT表單,而不是重寫代碼。 例如,對於項目1:
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時,在項目1中移動GUIBase時會出現問題(因為GUIBase的頭文件位於其他文件夾中)。 所以我的主要問題是,如何設置moc流程? 我只是移動GUIBase還是需要同時移動GUIBase和GUIDerived? 而且我還需要GUIDerived的.ui文件嗎?
很抱歉,如果問題不是很清楚,那是因為我自己不太完全確定該過程。
創建一個庫項目(.dll)並將UI放入其中(.ui文件和UI的源代碼)。 在需要的所有項目中使用該庫。
庫(標題):
#ifndef GUI_BASE_H
#define GUI_BASE_H
#ifdef UILIB
#define DLL __declspec(dllexport)
#else
#define DLL __declspec(dllimport)
#endif
class DLL GUIBase : public QMainWindow
{
Q_OBJECT
public:
GUIBase (QWidget *parent = 0, Qt::WFlags flags = 0);
~GUIBase ();
public slots:
//some slot definitions
};
#endif //GUI_BASE_H
lib項目中的預處理器定義:
UILIB
lib頭文件和生成的.lib文件必須在所有項目中都可用。 將.lib文件添加到Visual Studio中“項目屬性”的“鏈接器/輸入”部分中的“其他依賴項”(並確保VS知道lib的路徑,您可以在鏈接器/通用/“其他”中添加lib路徑圖書館目錄”部分)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.