当前位置:   article > 正文

Qt pro项目文件属性

Qt pro项目文件属性

一.Qt pro项目文件属性介绍

Qt项目.pro文件是项目管理文件,用于记录项目设置和组织管理项目包含的文件。以下是一些主要属性及其介绍:

  1. QT: 指定项目使用的Qt模块。例如,QT += core gui表示项目中加入core和gui模块。如果使用到数据库操作,则需要添加sql模块,如QT += sql
  2. greaterThan(QT_MAJOR_VERSION, 4): 这是一个条件判断,用于检查Qt版本。如果Qt的主版本号大于4,则执行后面的语句。例如,greaterThan(QT_MAJOR_VERSION, 4): QT += widgets表示如果Qt版本大于4,则添加widgets模块。
  3. TARGET: 指定生成的目标文件名,通常与项目名称相同。
  4. TEMPLATE: 指定项目的模板类型,如app表示创建应用程序。
  5. SOURCES: 列出项目中所有的源文件,可以使用相对路径或绝对路径,并且可以包含空格和特殊字符。例如,SOURCES += \main.cpp \widget.cpp表示项目中包含main.cpp和widget.cpp两个源文件。
  6. HEADERS: 列出项目中所有的头文件,使用方法与SOURCES类似。
  7. FORMS: 列出项目中所有的表单文件,通常与用户界面设计相关。
  8. DEFINES: 用于预处理器定义,如DEFINES += QT_DEPRECATED_WARNINGS表示定义了QT_DEPRECATED_WARNINGS宏。
  9. INCLUDEPATH: 指定额外的头文件搜索路径。
  10. LIBS: 指定项目需要链接的外部库。
  11. CONFIG: 用于设置编译配置选项,如释放模式或调试模式。
  12. qmldir: 这个文件用于模块化管理QML文件。在QML项目中,qmldir文件定义了QML模块的名称、版本和包含的QML文件。它通常位于QML文件的根目录中,并且其内容指示了如何加载和使用QML模块。
  13. DISTFILES: 这个属性列出了在构建安装包时需要分发的文件列表。这些文件通常是除了项目生成的可执行文件和库文件之外的其他文件,如配置文件、资源文件等。
  14. CONFIG: 此属性用于指定工程配置和编译参数。例如,可以设置是否编译调试版本的可执行文件或库文件。CONFIG变量可以影响编译器的行为,比如开启或关闭某些特定的编译选项。
  15. DLLDESTDIR: 指定目标库文件放置的目录。这在构建项目时非常有用,尤其是当需要将库文件放置在非标准目录时。
  16. DESTDIR: 指定可执行文件放置的目录。这与DLLDESTDIR类似,但用于可执行文件而非库文件。
  17. RESOURCES: 列出项目中的资源文件,这些资源文件会被编译进最终的可执行文件中,可以通过Qt的资源系统在程序中访问。
  18. TRANSLATIONS: 指定项目中使用的语言翻译文件。这对于国际化(i18n)和本地化(l10n)非常重要,允许应用程序支持多种语言。

二. Qt pro项目文件属性使用示例

  1. #引用平台文件及项目描述文件
  2. include(../../platform.pri)
  3. include(manager_view.pri)
  4. #TEMPLATE: 指定项目的模板类型,如app表示创建应用程序、lib表示库文件
  5. TEMPLATE = lib
  6. #TARGET: 指定生成的目标文件名,通常与项目名称相同
  7. TARGET = manager_view
  8. #QT: 指定项目使用的Qt模块。例如,QT += qml quick sql表示项目中加入qml、quick和数据库模块
  9. QT += qml quick charts core websockets multimedia network svg
  10. uri = rc.qt.ManagerView
  11. #DISTFILES: 这个属性列出了在构建安装包时需要分发的文件列表。
  12. #这些文件通常是除了项目生成的可执行文件和库文件之外的其他文件,如配置文件、资源文件等。
  13. DISTFILES = qmldir
  14. #DEFINES: 用于预处理器定义,如DEFINES += QT_DEPRECATED_WARNINGS表示定义了QT_DEPRECATED_WARNINGS宏
  15. DEFINES += RC_LOG_MODEL_NAME=hmilogger
  16. #库文件版本号及库文件名称设置
  17. VERSION = 1.0.0.20230918
  18. QMAKE_TARGET_PRODUCT = "manager_view"
  19. RC_LANG = 0x0004
  20. #CONFIG: 用于设置编译配置选项。more mem for resources
  21. CONFIG += resources_big
  22. CONFIG += qtquickcompiler skip_target_version_ext
  23. #CONFIG: 此属性用于指定工程配置和编译参数。
  24. #例如,可以设置是否编译调试版本的可执行文件或库文件
  25. CONFIG(debug, debug | release){
  26. SHUCHUDIR = debug
  27. }else{
  28. SHUCHUDIR = release
  29. }
  30. #自定义变量
  31. PLUGROOT = RcPlugins
  32. #自定义dll输出目录
  33. win32{
  34. #DLLDESTDIR: 指定目标库文件放置的目录。
  35. DLLDESTDIR = $$DLLDESTDIR/$$PLUGROOT/$$replace(uri, \., /)
  36. #LIBS: 指定项目需要链接的外部库
  37. LIBS += $$PWD/../../../lib/$$TARGET_PLATFORM/$$SHUCHUDIR/unit_settings.lib
  38. LIBS += $$PWD/../../../lib/$$TARGET_PLATFORM/$$SHUCHUDIR/qtqrencode.lib
  39. COPYTODIR = $$DLLDESTDIR
  40. }else{
  41. #DESTDIR: 指定可执行文件放置的目录
  42. DESTDIR = $$DESTDIR/$$PLUGROOT/$$replace(uri, \., /)
  43. #LIBS: 指定项目需要链接的外部库
  44. LIBS += -L$$PWD/../../../bin/$$TARGET_PLATFORM/$$SHUCHUDIR -lunit_settings
  45. LIBS += -L$$PWD/../../../bin/$$TARGET_PLATFORM/$$SHUCHUDIR -lqtqrencode
  46. COPYTODIR = $$DESTDIR
  47. }
  48. #HEADERS: 列出项目中所有的头文件
  49. HEADERS += \
  50. $$PWD/../src/onlineupdate.h \
  51. $$PWD/../src/settings.h
  52. #SOURCES: 列出项目中所有的源文件,可以使用相对路径或绝对路径,并且可以包含空格和特殊字符
  53. SOURCES += \
  54. $$PWD/../src/onlineupdate.cpp \
  55. $$PWD/../src/settings.cpp
  56. #RESOURCES: 列出项目中的资源文件,这些资源文件会被编译进最终的可执行文件中,
  57. #可以通过Qt的资源系统在程序中访问。
  58. RESOURCES += \
  59. rc_device_manager_view.qrc
  60. #TRANSLATIONS: 指定项目中使用的语言翻译文件。
  61. #这对于国际化和本地化非常重要,允许应用程序支持多种语言
  62. TRANSLATIONS += ./RcConfigFiles/RcLanguage/manager_cn.ts \
  63. ./RcConfigFiles/RcLanguage/manager_en.ts \
  64. ./RcConfigFiles/RcLanguage/manager_ru.ts \
  65. #INCLUDEPATH: 指定额外的头文件搜索路径
  66. INCLUDEPATH += $$PWD/../../../include/qtqrencode \
  67. $$PWD/../../../include/curl \
  68. $$PWD/../../../include
  69. #_PRO_FILE_PWD_代表工程文件(.pro文件)所在的目录路径
  70. #而$$COPYTODIR代表将要复制到的目标目录
  71. #如果这两个变量的值不相等,那么条件表达式的结果为真,否则为假。
  72. #主要进行资源文件复制:在构建过程中,可能需要将一些资源文件复制到输出目录
  73. !equals(_PRO_FILE_PWD_, $$COPYTODIR) {
  74. copy_qmldir.target = $$COPYTODIR/qmldir #会自动将qmldir文件复制到构建输出目录中。这样,应用程序就可以正确地加载和使用QML模块了。
  75. copy_qmldir.depends = $$_PRO_FILE_PWD_/qmldir
  76. copy_qmldir.commands = $(COPY_FILE) "$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)" "$$replace(copy_qmldir.target, /, $$QMAKE_DIR_SEP)"
  77. QMAKE_EXTRA_TARGETS += copy_qmldir
  78. PRE_TARGETDEPS += $$copy_qmldir.target
  79. }
  80. qmldir.files = qmldir
  81. unix {
  82. installPath = $$[QT_INSTALL_QML]/$$replace(uri, \., /)
  83. qmldir.path = $$installPath
  84. target.path = $$installPath
  85. INSTALLS += target qmldir
  86. }

知识点补充:

 Qt项目的.pro文件中,可以使用DEFINES关键字来定义自定义变量。

这些变量可以在项目中的其他部分使用,例如在源代码中引用它们或在构建过程中使用它们。

要定义一个自定义变量,请按照以下步骤进行操作:

  1. 打开您的Qt项目的.pro文件。
  2. 在文件中找到适当的位置,通常是在文件的开头或结尾处。
  3. 添加以下行来定义自定义变量:
  1. //pro文件
  2. DEFINES = MY_VARIABLE
  3. //现在,您可以在项目中的其他部分使用这个自定义变量。例如,在源代码中,您可以使用以下方式引用它:
  4. //cpp文件
  5. #ifdef MY_VARIABLE
  6. // 使用MY_VARIABLE变量的代码
  7. #endif

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/282895
推荐阅读
相关标签
  

闽ICP备14008679号