You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:05:29