Mam tylko jedno pytanie: czy definicja (lub coś podobnego) jest dostępna, jeśli kompilujesz kod, aby wiedzieć, czy flaga GUI została ustawiona?Czy definicja jest dostępna dla Qt gui?
Wyjaśnię lepiej. Mam kod, który chcę ponownie wykorzystać dla różnych programów w QT. Teraz niektóre części tego kodu są używane tylko w aplikacjach GUI (lub lepszych aplikacjach widgetów) i zależą od QtGui i QtWidgets. Chciałbym umieścić te części w bloku warunkowym (#if
lub #ifdef
), aby mogły być kompilowane tylko w projektach, w których znajdują się GUI i/lub biblioteki widgetów.
I zanim to zasugerujesz, tworzenie biblioteki nie jest rozwiązaniem. Wolałbym zdefiniować ...
EDYCJA:
Prawdopodobnie nie wyjaśniłem się wyraźnie. To, czego szukam, to definicja związana z włączeniem GUI. Przykład:
PLIK myfile.h
#ifdef THE_QT_GUI_DEFINE_FLAG
#include <QPainter.h>
#endif
PROJECT A: w pliku QMake piszę:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
Projekt B: w pliku QMake piszę:
QT -= gui
Teraz chcę QPainter.h
dołączyć tylko do projektu A. Czy wiesz, co to jest flaga definicji, kiedy dodaję g biblioteka ui? Próbowałem z QT_QTGUI_MODULE_H
, ale to nie działa (prawdopodobnie dlatego, że jest używane tylko podczas kompilowania biblioteki qt).
To teraz wydaje się być pytanie QMake dotyczące definiowania symboli preprocesora. Czy powinniśmy dodać tag qmake? – drescherjm
Ehm ... Nie, nie chodzi o to, żeby QMake powiedzieć jak zdefiniować symbol preprocesora. Jest to "jaki symbol preprocesora jest zdefiniowany kiedy, poprzez QMake, dodaję funkcję gui?" pytanie – frarugi87