QT_ADD_UI

.ui 파일을 대상에 추가합니다.

이 명령은 Qt6 패키지의 Widgets 구성 요소에 정의되어 있습니다. 패키지를 로드합니다:

find_package(Qt6 REQUIRED COMPONENTS Widgets)

시놉시스

qt_add_ui(<TARGET>
          SOURCES file1.ui [file2.ui ...]
          [INCLUDE_PREFIX <PREFIX>]
          [OPTIONS ...])

버전 없는 명령이 비활성화되어 있으면 qt6_add_ui() 을 대신 사용합니다. 이 명령은 이 명령과 동일한 인수 집합을 지원합니다.

이 명령은 Qt 6.8에 도입되었습니다.

설명

.ui 파일에서 User Interface Compiler (uic) 를 호출하기 위한 규칙을 만듭니다. 각 입력 파일에 대해 빌드 디렉터리에 헤더 파일이 생성됩니다. 생성된 헤더 파일은 대상의 소스에 추가됩니다.

인수

TARGET

TARGET 인수는 생성된 헤더 파일을 추가할 CMake 대상을 지정합니다.

SOURCES

SOURCES 인수는 처리할 .ui 파일 목록을 지정합니다.

INCLUDE_PREFIX

INCLUDE_PREFIX 는 생성된 헤더 파일의 include 접두사를 지정합니다. 소스 파일에 #include 지시어와 동일한 include 접두사를 사용합니다. ui_<basename>.h 접두사 없이 포함하면 이 인수를 생략할 수 있습니다.

옵션

uic 호출에 추가해야 할 OPTIONS 을 추가로 설정할 수 있습니다. 가능한 옵션은 uic 문서에서 확인할 수 있습니다.

예제

INCLUDE_PREFIX 없이

다음 스니펫에서 mainwindow.cpp 파일에는 ui_mainwindow.hmainwindow.h 이 포함되어 있습니다.

#include "mainwindow.h"
#include "ui_mainwindow.h"

CMakeLists.txt 은 다음과 같이 구현되며 qt_add_ui 을 호출하여 myapp 대상에 ui_mainwindow.h 을 추가합니다.

qt_add_executable(myapp mainwindow.cpp main.cpp)
qt_add_ui(myapp SOURCES mainwindow.ui)

위 예제에서는 접두사 없이 ui_mainwindow.h 가 포함되어 있습니다. 따라서 INCLUDE_PREFIX 인수는 지정되지 않습니다.

INCLUDE_PREFIX 사용

#include "mainwindow.h"
#include "src/files/ui_mainwindow.h"

위의 스니펫에서 mainwindow.cpp 은 접두사와 함께 ui_mainwindow.h 을 포함합니다.

qt_add_executable(myapp mainwindow.cpp main.cpp)
qt_add_ui(myapp INCLUDE_PREFIX "src/files" SOURCES mainwindow.ui)

ui_mainwindow.h 은 접두사와 함께 포함되므로 위의 예에서 INCLUDE_PREFIX 인수는 src/files 로 지정됩니다.

여러 .ui 파일

다음 코드 조각에서는 widget1.cppwidget2.cpp 모두 각각 ui_widget1.hui_widget2.h 을 포함합니다.

widget1.cpp:

#include "src/files/ui_widget1.h"

widget2.cpp:

#include "src/files/ui_widget2.h"

ui_widget1.hui_widget2.h 모두 동일한 접두사가 포함됩니다.

qt_add_executable(myapp widget1.cpp widget2.cpp main.cpp)
qt_add_ui(myapp INCLUDE_PREFIX "src/files" SOURCES widget1.ui widget2.ui)

이 경우 INCLUDE_PREFIX 인수는 위 코드조각의 두 파일 모두에 대해 src/files 으로 지정할 수 있습니다.

AUTOUIC 보다 qt_add_ui 를 선호하는 경우 ?

qt_add_uiAUTOUIC에 비해 몇 가지 장점이 있습니다:

  • qt_add_ui NinjaNinja Multi-Config 생성기에 대해 첫 번째 빌드 중에 .ui 파일이 올바르게 생성되도록 보장합니다.
  • qt_add_ui 생성된 .h 파일이 빌드 디렉터리 외부로 유출되지 않도록 보장합니다.
  • qt_add_ui 은 소스 파일을 검사하지 않으므로 AUTOUIC 보다 빠른 빌드를 제공합니다.

qt_wrap_ui 보다 qt_add_ui 를 선호하는 경우 ?

qt_add_ui 에는 INCLUDE_PREFIX 인수가 있으며, 이 인수는 생성된 헤더 파일의 include 접두사를 지정하는 데 사용할 수 있습니다.

참고: 동일한 대상에 qt_add_uiAUTOUIC을 모두 사용하는 것은 권장하지 않습니다.

qt_wrap_ui도참조하십시오 .

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.