Tôi chỉ có một câu hỏi: là một định nghĩa (hoặc một cái gì đó tương tự) có sẵn nếu bạn đang biên dịch một số mã để biết cờ GUI đã được thiết lập chưa?Định nghĩa có sẵn cho Qt gui không?
Tôi sẽ giải thích rõ hơn. Tôi có một số mã tôi muốn tái sử dụng cho các chương trình khác nhau trong QT. Bây giờ, một số phần của mã này được sử dụng chỉ trong các ứng dụng GUI (hoặc các ứng dụng widget tốt hơn) và phụ thuộc vào QtGui và QtWidgets. Tôi muốn đặt những phần này trong một khối có điều kiện (#if
hoặc #ifdef
) để chúng được biên dịch chỉ trong các dự án nơi có các thư viện GUI và/hoặc tiện ích con.
Và trước khi bạn đề xuất điều này, việc tạo một thư viện không phải là giải pháp. Tôi muốn định nghĩa ...
EDIT:
Có lẽ tôi không giải thích rõ ràng. Những gì tôi đang tìm kiếm là định nghĩa liên quan đến việc bao gồm GUI. Ví dụ:
FILE myfile.h
#ifdef THE_QT_GUI_DEFINE_FLAG
#include <QPainter.h>
#endif
DỰ ÁN A: trong file qmake tôi viết:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
DỰ ÁN B: trong file qmake tôi viết:
QT -= gui
Bây giờ, tôi muốn QPainter.h
để được bao gồm chỉ trong dự án A. Bạn có biết cờ xác định được đặt khi tôi thêm g hay không ui thư viện? Tôi đã thử với QT_QTGUI_MODULE_H
, nhưng nó không hoạt động (có thể vì nó được sử dụng chỉ khi bạn biên dịch THE qt library).
Điều này bây giờ có vẻ là một câu hỏi QMake về việc xác định các ký hiệu tiền xử lý. Chúng ta có nên thêm thẻ qmake không? – drescherjm
Ehm ... Không, nó không phải là một câu hỏi về nói QMake làm thế nào để xác định một biểu tượng tiền xử lý. Đó là "biểu tượng tiền xử lý được định nghĩa khi nào, thông qua QMake, tôi thêm tính năng gui?" question – frarugi87