如何在Visual Studio 2022中隐藏Qt项目自动生成的moc_、autouic_及ui_文件?
在VS2022中隐藏Qt CMake项目的自动生成文件
方法1:通过CMake分组并手动设置VS隐藏属性
在项目的CMakeLists.txt中添加以下配置:
# 启用项目文件夹分组 set_property(GLOBAL PROPERTY USE_FOLDERS ON) # 将自动生成的moc/uic构建目标归类到单独的CMake文件夹 set(CMAKE_AUTOGEN_TARGETS_FOLDER "CMakeAutoGen") # 把所有自动生成的源文件(moc_/autouic_/ui_开头)归到"AutoGen Files"组 source_group("AutoGen Files" REGULAR_EXPRESSION "moc_|autouic_|ui_")
重新生成CMake项目后,在VS2022的解决方案资源管理器中右键"AutoGen Files"组,选择Hide Folder即可永久隐藏该组,后续CMake重新配置也不会自动显示。
方法2:通过CMake直接标记文件为VS不显示类型
无需手动操作VS,直接在CMakeLists.txt中添加代码控制文件可见性:
# 定义函数批量处理目标中的自动生成文件 function(hide_autogen_files target_name) get_target_property(target_sources ${target_name} SOURCES) foreach(src ${target_sources}) # 匹配自动生成的文件前缀 if(src MATCHES "moc_|autouic_|ui_") # 标记为头文件类型,VS默认不会在源文件列表中突出显示 set_property(SOURCE ${src} PROPERTY HEADER_FILE_ONLY TRUE) # 强制VS不在资源管理器中显示该文件 set_property(SOURCE ${src} PROPERTY VS_SHOW_IN_EXPLORER FALSE) endif() endforeach() endfunction() # 在添加你的Qt可执行/库目标后调用该函数 add_executable(YourQtApp main.cpp your_window.cpp ...) hide_autogen_files(YourQtApp)
这段代码会自动识别目标中所有自动生成的文件,设置VS特定属性让它们不再显示在项目列表中,同时完全不影响AUTOMOC/AUTOUIC的正常工作。
方法3:利用CMake自动生成文件分组变量
CMake提供了CMAKE_AUTOGEN_SOURCE_GROUP变量,可直接指定自动生成文件的分组:
set(CMAKE_AUTOGEN_SOURCE_GROUP "HiddenAutoGen") set_property(GLOBAL PROPERTY USE_FOLDERS ON)
配置后所有自动生成的文件会被归到"HiddenAutoGen"组,在VS中右键该组选择隐藏,操作一次后后续CMake重新配置都会保持隐藏状态。
内容的提问来源于stack exchange,提问作者Sanel Hasic
相关产品推荐
相关产品推荐

