이 페이지에서

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 지시어와 동일한 인클루드 접두사를 사용하십시오. ui_<basename>.h 가 접두사 없이 포함되는 경우, 이 인수는 생략할 수 있습니다.

옵션

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

예시

INCLUDE_PREFIX 미사용 시

다음 코드 조각에서, mainwindow.cpp 파일은 ui_mainwindow.h 와 mainwindow.h 를 포함합니다.

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

CMakeLists.txt 는 다음과 같이 구현되어 있으며, qt_add_ui 를 호출하여 ui_mainwindow.h 를 myapp 타깃에 추가합니다.

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.cpp 과 widget2.cpp 은 각각 ui_widget1.h 과 ui_widget2.h 을 포함합니다.

widget1.cpp:

#include "src/files/ui_widget1.h"

widget2.cpp:

#include "src/files/ui_widget2.h"

ui_widget1.h 과 ui_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 으로 지정할 수 있습니다.

어떤 경우에 qt_add_ui 을 AUTOUIC 보다 우선적으로 사용해야 할까요?

qt_add_ui AUTOUIC에 비해 다음과 같은 장점이 있습니다:

  • qt_add_ui Ninja 및 생성기의 경우, 첫 번째 빌드 시 파일이 올바르게 생성되도록 보장합니다. Ninja Multi-Config .ui
  • qt_add_ui 생성된 .h 파일이 빌드 디렉터리 외부로 유출되지 않도록 보장합니다.
  • qt_add_ui 는 소스 파일을 스캔하지 않으므로, AUTOUIC 보다 더 빠른 빌드 속도를 제공합니다.

qt_wrap_ui 대신 qt_add_ui 를 언제 사용해야 할까요?

qt_add_ui INCLUDE_PREFIX 인수가 있으며, 이를 사용하여 생성된 헤더 파일의 인클루드 접두사를 지정할 수 있습니다.

참고: 동일한 타깃에 대해 qt_add_ui 와 AUTOUIC을 함께 사용하는것은 권장되지 않습니다.

qt_wrap_ui()도 참조하십시오 .

© 2026 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.