簡體   English   中英

Qt gui是否有定義?

[英]Is a define available for Qt gui?

我只有一個問題:如果您正在編譯某些代碼以了解GUI標志是否已設置,那么可以使用定義(或類似的東西)嗎?

我會更好地解釋。 我想在QT中為不同的程序重用一些代碼。 現在,此代碼的某些部分僅用於GUI應用程序(或更好的窗口小部件應用程序),並依賴於QtGui和QtWidgets。 我想將這些部分放在條件塊( #if#ifdef )中,以便僅在包含GUI和/或小部件庫的項目中進行編譯。

並且,在您提出建議之前,制作庫不是解決方案。 我更喜歡定義......

編輯:
可能我沒有清楚地解釋自己。 我正在尋找的是與GUI包含相關的定義。 例:

FILE myfile.h

#ifdef THE_QT_GUI_DEFINE_FLAG
#include <QPainter.h>
#endif

PROJECT A:在我寫的QMake文件中:

QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

項目B:在我寫的QMake文件中:

QT       -= gui

現在,我希望QPainter.h只包含在項目A中。你知道我添加gui庫時設置的define標志是什么嗎? 我嘗試使用QT_QTGUI_MODULE_H ,但它不起作用(可能是因為它在編譯THE qt庫時使用)。

好的,我找到了。 受到答案的啟發,我開始挖掘自動生成的文件,搜索lib文件,我找到了

Qt\5.2.1\msvc2010\mkspecs\modules\qt_lib_gui.pri

哪條線

QT.gui.DEFINES = QT_GUI_LIB

然后......這是一個神奇的詞! :)

如果我放了

#ifdef QT_GUI_LIB
#include <QPainter.h>
#endif

QPainter僅包含在啟用gui的項目中。

感謝大家的幫助!

如果對Qt中的任何內容有疑問,請記住:

Qt不是“像C ++”。 這是C ++。 如果它在C ++中是合法的,那么它在Qt中是合法的。 QObject(例如多重繼承)帶來了一些特殊規則,但如果它來自C ++方面,它幾乎總能發揮作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM