QGuiApplication Class
QGuiApplication 클래스는 GUI 애플리케이션의 제어 흐름과 주요 설정을 관리합니다. 더 보기...
헤더: | #include <QGuiApplication> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
상속합니다: | QCoreApplication |
상속 대상: |
속성
|
|
공용 함수
QGuiApplication(int &argc, char **argv) | |
virtual | ~QGuiApplication() |
qreal | devicePixelRatio() const |
bool | isSavingSession() const |
bool | isSessionRestored() const |
QNativeInterface * | nativeInterface() const |
QString | sessionId() const |
QString | sessionKey() const |
재구현된 공용 함수
virtual bool | notify(QObject *object, QEvent *event) override |
공용 슬롯
(since 6.5) void | setBadgeNumber(qint64 number) |
시그널
void | applicationDisplayNameChanged() |
void | applicationStateChanged(Qt::ApplicationState state) |
void | commitDataRequest(QSessionManager &manager) |
void | focusObjectChanged(QObject *focusObject) |
void | focusWindowChanged(QWindow *focusWindow) |
void | fontDatabaseChanged() |
void | lastWindowClosed() |
void | layoutDirectionChanged(Qt::LayoutDirection direction) |
void | primaryScreenChanged(QScreen *screen) |
void | saveStateRequest(QSessionManager &manager) |
void | screenAdded(QScreen *screen) |
void | screenRemoved(QScreen *screen) |
정적 공용 멤버
QWindowList | allWindows() |
QString | applicationDisplayName() |
Qt::ApplicationState | applicationState() |
void | changeOverrideCursor(const QCursor &cursor) |
QClipboard * | clipboard() |
QString | desktopFileName() |
bool | desktopSettingsAware() |
int | exec() |
QObject * | focusObject() |
QWindow * | focusWindow() |
QFont | font() |
Qt::HighDpiScaleFactorRoundingPolicy | highDpiScaleFactorRoundingPolicy() |
QInputMethod * | inputMethod() |
bool | isLeftToRight() |
bool | isRightToLeft() |
Qt::KeyboardModifiers | keyboardModifiers() |
Qt::LayoutDirection | layoutDirection() |
QWindow * | modalWindow() |
Qt::MouseButtons | mouseButtons() |
QCursor * | overrideCursor() |
QPalette | palette() |
QString | platformName() |
QScreen * | primaryScreen() |
Qt::KeyboardModifiers | queryKeyboardModifiers() |
bool | quitOnLastWindowClosed() |
void | restoreOverrideCursor() |
QScreen * | screenAt(const QPoint &point) |
QList<QScreen *> | screens() |
void | setApplicationDisplayName(const QString &name) |
void | setDesktopFileName(const QString &name) |
void | setDesktopSettingsAware(bool on) |
void | setFont(const QFont &font) |
void | setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy policy) |
void | setLayoutDirection(Qt::LayoutDirection direction) |
void | setOverrideCursor(const QCursor &cursor) |
void | setPalette(const QPalette &pal) |
void | setQuitOnLastWindowClosed(bool quit) |
void | setWindowIcon(const QIcon &icon) |
QStyleHints * | styleHints() |
void | sync() |
QWindow * | topLevelAt(const QPoint &pos) |
QWindowList | topLevelWindows() |
QIcon | windowIcon() |
재구현된 보호 함수
virtual bool | event(QEvent *e) override |
매크로
상세 설명
QGuiApplication에는 창 시스템 및 기타 소스의 모든 이벤트가 처리되고 발송되는 메인 이벤트 루프가 포함되어 있습니다. 또한 애플리케이션의 초기화 및 최종화를 처리하고 세션 관리 기능도 제공합니다. 또한 QGuiApplication은 시스템 전체 및 애플리케이션 전체 설정의 대부분을 처리합니다.
Qt를 사용하는 모든 GUI 애플리케이션의 경우, 애플리케이션에 주어진 시간에 0, 1, 2개 또는 그 이상의 창이 있든 상관없이 정확히 하나의 QGuiApplication 객체가 존재합니다. 비 GUI Qt 애플리케이션의 경우 Qt GUI 모듈에 의존하지 않으므로 대신 QCoreApplication 을 사용하십시오. QWidget 기반 Qt 애플리케이션의 경우 QWidget 인스턴스 생성에 필요한 일부 기능을 제공하므로 QApplication 대신 사용하십시오.
QGuiApplication 객체는 글로벌 qApp 포인터에 해당하는 포인터를 반환하는 instance() 함수를 통해 액세스할 수 있습니다.
QGuiApplication의 주요 책임 영역은 다음과 같습니다:
- palette(), font() 및 styleHints()와 같은 사용자의 데스크톱 설정으로 애플리케이션을 초기화합니다. 사용자가 제어판 등을 통해 데스크톱을 전역적으로 변경할 경우를 대비하여 이러한 속성을 추적합니다.
- 이벤트 처리, 즉 기본 창 시스템에서 이벤트를 수신하여 관련 위젯으로 전송하는 작업을 수행합니다. sendEvent () 및 postEvent()를 사용하여 자체 이벤트를 창으로 보낼 수 있습니다.
- 일반적인 명령줄 인수를 구문 분석하고 그에 따라 내부 상태를 설정합니다. 자세한 내용은 아래 constructor documentation 을 참조하세요.
- translate()를 통해 사용자에게 표시되는 문자열의 지역화를 제공합니다.
- clipboard()와 같은 마법의 객체를 제공합니다.
- 애플리케이션의 창에 대해 알고 있습니다. topLevelAt ()를 사용하여 특정 위치에 있는 창을 묻고 topLevelWindows() 등의 목록을 가져올 수 있습니다.
- 애플리케이션의 마우스 커서 처리를 관리합니다( setOverrideCursor() 참조).
- 정교한 세션 관리를 지원합니다. 이를 통해 사용자가 로그아웃할 때 애플리케이션을 정상적으로 종료하고, 종료할 수 없는 경우 종료 프로세스를 취소하며, 향후 세션을 위해 전체 애플리케이션의 상태를 보존할 수도 있습니다. 자세한 내용은 isSessionRestored(), sessionId() 및 commitDataRequest() 및 saveStateRequest()를 참조하세요.
QGuiApplication 객체는 많은 초기화 작업을 수행하므로 사용자 인터페이스와 관련된 다른 객체가 생성되기 전에 생성되어야 합니다. QGuiApplication은 일반적인 명령줄 인수도 처리합니다. 따라서 일반적으로 응용 프로그램 자체에서 argv
을 해석하거나 수정하기 전에 생성하는 것이 좋습니다.
함수 그룹 | |
---|---|
시스템 설정 | desktopSettingsAware(), setDesktopSettingsAware(), styleHints(), palette(), setPalette(), font(), setFont(). |
이벤트 처리 | exec(), processEvents(), exit(), quit(). sendEvent(), postEvent(), sendPostedEvents(), removePostedEvents(), notify(). |
Windows | allWindows(), topLevelWindows(), focusWindow(), clipboard(), topLevelAt(). |
고급 커서 처리 | overrideCursor(), setOverrideCursor(), restoreOverrideCursor(). |
세션 관리 | isSessionRestored(), sessionId(), commitDataRequest(), saveStateRequest(). |
기타 | startingUp(), closingDown(). |
QCoreApplication, QAbstractEventDispatcher, QEventLoop 를참조하세요 .
속성 문서
applicationDisplayName : QString
이 속성은 이 애플리케이션의 사용자에게 표시되는 이름을 보유합니다.
이 이름은 예를 들어 창 제목 등에 사용자에게 표시됩니다. 필요한 경우 번역할 수 있습니다.
설정하지 않으면 기본적으로 애플리케이션 표시 이름이 애플리케이션 이름으로 사용됩니다.
액세스 기능:
QString | applicationDisplayName() |
void | setApplicationDisplayName(const QString &name) |
알림 신호:
void | applicationDisplayNameChanged() |
applicationName 를참조하세요 .
desktopFileName : QString
이 속성은 이 애플리케이션의 데스크톱 항목의 기본 이름을 보유합니다.
이 파일 이름은 프리데스크톱 데스크톱 항목 사양에 따라 이 애플리케이션을 나타내는 데스크톱 항목의 전체 경로 또는 뒤에 오는 ".desktop" 확장자가 없는 파일 이름입니다.
이 속성은 애플리케이션을 나타내는 데스크톱 항목을 정확하게 나타내며, 윈도우 시스템에서 부정확한 휴리스틱에 의존하지 않고 이러한 정보를 검색하는 데 필요합니다.
프리데스크톱 데스크톱 항목 사양의 최신 버전은 여기에서 확인할 수 있습니다.
액세스 기능:
QString | desktopFileName() |
void | setDesktopFileName(const QString &name) |
layoutDirection : Qt::LayoutDirection
이 속성은 이 애플리케이션의 기본 레이아웃 방향을 유지합니다.
시스템 시작 시 또는 방향이 Qt::LayoutDirectionAuto 로 명시적으로 설정된 경우 기본 레이아웃 방향은 애플리케이션의 언어에 따라 달라집니다.
알림 신호는 Qt 5.4에 도입되었습니다.
액세스 기능:
Qt::LayoutDirection | layoutDirection() |
void | setLayoutDirection(Qt::LayoutDirection direction) |
알림 신호:
void | layoutDirectionChanged(Qt::LayoutDirection direction) |
QWidget::layoutDirection, isLeftToRight() 및 isRightToLeft()도 참조하세요 .
[read-only]
platformName : const QString
이 속성은 기본 플랫폼 플러그인의 이름을 보유합니다.
QPA 플랫폼 플러그인은 qtbase\src\plugins\platforms
에 있습니다. 이 글을 쓰는 시점에서 지원되는 플랫폼 플러그인 이름은 다음과 같습니다:
android
cocoa
macOS용 플랫폼 플러그인입니다.directfb
eglfs
는 실제 윈도우 시스템(예: X11 또는 Wayland) 없이 EGL 및 OpenGL ES 2.0 위에서 Qt5 애플리케이션을 실행하기 위한 플랫폼 플러그인입니다. 자세한 내용은 EGLFS를 참조하십시오.ios
(tvOS에서도 사용됨)linuxfb
는 프레임버퍼에 직접 씁니다. 자세한 내용은 LinuxFB를 참조하십시오.minimal
는 자체 플랫폼 플러그인을 작성하려는 개발자를 위한 예제로 제공됩니다. 그러나 이 플러그인을 사용하여 서버와 같이 GUI가 없는 환경에서도 GUI 애플리케이션을 실행할 수 있습니다.minimalegl
는 예제 플러그인입니다.offscreen
qnx
windows
wayland
는 일부 Linux 데스크톱 및 임베디드 시스템에서 사용되는 Wayland 디스플레이 서버 프로토콜용 플랫폼 플러그인입니다.xcb
는 일부 데스크톱 Linux 플랫폼에서 사용되는 X11 창 시스템용 플러그인입니다.
참고: QGuiApplication 없이 이 함수를 호출하면 기본 플랫폼 이름(사용 가능한 경우)이 반환됩니다. 기본 플랫폼 이름은 -platform
명령줄 옵션이나 QT_QPA_PLATFORM
환경 변수의 영향을 받지 않습니다.
임베디드 Linux 장치용 플랫폼 플러그인에 대한 자세한 내용은 임베디드 Linux용 Qt를 참조하세요.
함수 액세스:
QString | platformName() |
[read-only]
primaryScreen : QScreen* const
이 속성은 애플리케이션의 기본(또는 기본) 화면을 저장합니다.
이 화면은 별도로 지정하지 않는 한 QWindows가 처음에 표시되는 화면이 됩니다.
primaryScreenChanged 시그널은 Qt 5.6에 도입되었습니다.
액세스 함수:
QScreen * | primaryScreen() |
알림 신호:
void | primaryScreenChanged(QScreen *screen) |
screens()도 참조하십시오 .
quitOnLastWindowClosed : bool
이 속성은 마지막 창이 닫힐 때 애플리케이션이 암시적으로 종료되는지 여부를 보유합니다.
기본값은 true
입니다.
이 속성이 true
인 경우 애플리케이션은 마지막으로 보이는 기본 창 (즉, 일시적인 부모가 없는 최상위 창)이 닫힐 때 종료를 시도합니다.
예를 들어 활성 QEventLoopLocker 인스턴스가 아직 있거나 QEvent::Quit 이벤트가 무시되는 경우와 같이 종료를 시도해도 애플리케이션이 반드시 종료되지 않을 수 있습니다.
함수 액세스:
bool | quitOnLastWindowClosed() |
void | setQuitOnLastWindowClosed(bool quit) |
quit() 및 QWindow::close()도 참조하세요 .
windowIcon : QIcon
이 속성에는 기본 창 아이콘이 있습니다.
기능에 접근합니다:
QIcon | windowIcon() |
void | setWindowIcon(const QIcon &icon) |
QWindow::setIcon() 및 애플리케이션 아이콘 설정도참조하세요 .
멤버 함수 문서
QGuiApplication::QGuiApplication(int &argc, char **argv)
창 시스템을 초기화하고 argv 에서 argc 명령줄 인수를 사용하여 애플리케이션 객체를 구성합니다.
경고: argc 및 argv 에서 참조하는 데이터는 QGuiApplication 객체의 전체 수명 동안 유효하게 유지되어야 합니다. 또한 argc 은 0보다 커야 하고 argv 은 하나 이상의 유효한 문자열을 포함해야 합니다.
글로벌 qApp
포인터는 이 애플리케이션 객체를 참조합니다. 애플리케이션 객체는 하나만 생성해야 합니다.
이 애플리케이션 객체는 paint devices (픽셀맵, 비트맵 등 포함)보다 먼저 생성되어야 합니다.
참고: argc 및 argv 은 Qt가 인식하는 명령줄 인수를 제거하기 때문에 변경될 수 있습니다.
지원되는 명령줄 옵션
모든 Qt 프로그램은 Qt가 창 시스템과 상호작용하는 방식을 수정할 수 있는 일련의 명령줄 옵션을 자동으로 지원합니다. 일부 옵션은 환경 변수를 통해서도 액세스할 수 있는데, 이는 응용 프로그램이 GUI 하위 프로세스나 다른 응용 프로그램을 시작할 수 있는 경우 선호되는 형식입니다(환경 변수는 자식 프로세스에서 상속됩니다). 확실하지 않은 경우 환경 변수를 사용하세요.
현재 지원되는 옵션은 다음과 같습니다:
-platform
platformName[:옵션], Qt 플랫폼 추상화 (QPA) 플러그인을 지정합니다.QT_QPA_PLATFORM
환경 변수를 재정의합니다.-platformpluginpath
경로, 플랫폼 플러그인의 경로를 지정합니다.QT_QPA_PLATFORM_PLUGIN_PATH
환경 변수를 재정의합니다.-platformtheme
platformTheme, 플랫폼 테마를 지정합니다.QT_QPA_PLATFORMTHEME
환경 변수를 재정의합니다.-plugin
플러그인, 로드할 추가 플러그인을 지정합니다. 인수는 여러 번 나타날 수 있습니다.QT_QPA_GENERIC_PLUGINS
환경 변수에 있는 플러그인과 연결됩니다.-qmljsdebugger=
는 지정된 포트로 QML/JS 디버거를 활성화합니다. 값은port:1234
[,block] 형식이어야 하며, 여기서 block은 선택 사항이며 디버거가 연결될 때까지 애플리케이션이 대기합니다.-qwindowgeometry
지오메트리는 X11 구문을 사용하여 기본 창에 대한 창 지오메트리를 지정합니다. 예를 들어-qwindowgeometry 100x100+50+50
-qwindowicon
는 기본 창 아이콘을 설정합니다.-qwindowtitle
은 첫 번째 창의 제목을 설정하고-reverse
은 애플리케이션의 레이아웃 방향을 Qt::RightToLeft 으로 설정합니다. 이 옵션은 디버깅을 돕기 위한 것으로 프로덕션 환경에서는 사용해서는 안 됩니다. 기본값은 사용자의 로캘에서 자동으로 감지됩니다( QLocale::textDirection() 참조).-session
세션에서 이전 세션으로 애플리케이션을 복원합니다.
X11에서 사용할 수 있는 표준 명령줄 옵션은 다음과 같습니다:
-display
hostname:screen_number, X11에서 표시를 전환합니다.DISPLAY
환경 변수를 재정의합니다.-geometry
지오메트리,-qwindowgeometry
와 동일합니다.
플랫폼별 인수
-platform
옵션에 플랫폼별 인수를 지정할 수 있습니다. 플랫폼 플러그인 이름 뒤에 콜론 뒤에 쉼표로 구분된 목록으로 배치합니다. 예: -platform windows:dialogs=xp,fontengine=freetype
.
다음 매개 변수는 -platform windows
에 사용할 수 있습니다:
altgr
, 일부 키보드에 있는AltGr
키를 Qt::GroupSwitchModifier 로 감지합니다(Qt 5.12 이후).darkmode=[0|1|2]
는 Windows 10 1903(Qt 5.15 이후)에 도입된 애플리케이션의 다크 모드 활성화에 대해 Qt가 어떻게 반응하는지를 제어합니다.값이 0이면 다크 모드 지원이 비활성화됩니다.
값이 1이면 응용 프로그램의 다크 모드가 활성화되어 있고 고대비 테마가 사용 중이 아닐 때 Qt가 창 테두리를 검정색으로 전환합니다. 이는 자체 테마를 구현하는 애플리케이션을 위한 것입니다.
또한 값이 2이면 Windows Vista 스타일이 비활성화되고 어두운 모드에서 단순화된 팔레트를 사용하는 Windows 스타일로 전환됩니다. 이 기능은 현재 다크 모드에 제대로 적응하는 새로운 스타일이 도입될 때까지 실험적으로 사용 중입니다.
Qt 6.5의 기본값은 2이며, 다크 모드 지원을 비활성화하려면 값을 0 또는 1로 설정합니다.
dialogs=[xp|none]
xp
은 XP 스타일의 기본 대화 상자를 사용하며 은 이를 비활성화합니다.none
fontengine=freetype
는 FreeType 글꼴 엔진을 사용합니다.fontengine=gdi
는 레거시 GDI 기반 글꼴 데이터베이스를 사용하며 기본값은 (일부 글꼴 유형이나 글꼴 속성에만 사용되는) GDI 글꼴 엔진을 사용합니다 (Qt 6.8 이후).menus=[native|none]
는 네이티브 메뉴의 사용을 제어합니다.네이티브 메뉴는 Win32 API를 사용하여 구현되며 위젯을 배치하거나 글꼴과 같은 속성을 변경할 수 있고 호버 신호를 제공하지 않는다는 점에서 QMenu 기반 메뉴보다 간단합니다. 주로 Qt Quick 를 위한 것입니다. 기본적으로 애플리케이션이 QApplication 의 인스턴스가 아닌 경우 또는 Qt Quick Controls 2 애플리케이션(Qt 5.10 이후)에 사용됩니다.
nocolorfonts
DirectWrite 컬러 글꼴 끄기(Qt 5.8부터).nodirectwrite
DirectWrite 글꼴 끄기 (Qt 5.8부터). 이것은 암시적으로 GDI 글꼴 엔진도 선택합니다.nomousefromtouch
운영 체제에서 터치 이벤트로부터 합성된 마우스 이벤트를 무시합니다.nowmpointer
포인터 입력 메시지 처리에서 레거시 마우스 처리로 전환합니다 (Qt 5.12부터).reverse
오른쪽에서 왼쪽 모드를 활성화합니다(실험적). 윈도우 제목 표시줄이 오른쪽에서 왼쪽 로케일에 따라 표시됩니다(Qt 5.13부터).tabletabsoluterange=<value>
WinTab 태블릿의 마우스 모드 감지 값을 설정합니다(레거시, Qt 5.3 이후).
다음 매개변수는 -platform cocoa
(macOS에서)에 사용할 수 있습니다:
fontengine=freetype
는 FreeType 글꼴 엔진을 사용합니다.
임베디드 Linux 플랫폼에 사용할 수 있는 플랫폼별 인자에 대한 자세한 내용은 임베디드 Linux용 Qt를 참조하십시오.
arguments() 및 QGuiApplication::platformName 을참조하십시오 .
[virtual noexcept]
QGuiApplication::~QGuiApplication()
애플리케이션을 파괴합니다.
[static]
QWindowList QGuiApplication::allWindows()
애플리케이션의 모든 창 목록을 반환합니다.
창이 없는 경우 목록은 비어 있습니다.
topLevelWindows()도 참조하세요 .
[static]
Qt::ApplicationState QGuiApplication::applicationState()
애플리케이션의 현재 상태를 반환합니다.
애플리케이션 상태 변경에 반응하여 CPU 집약적인 작업 중지/재개, 리소스 해제/로드, 애플리케이션 데이터 저장/복원 등의 작업을 수행할 수 있습니다.
[signal]
void QGuiApplication::applicationStateChanged(Qt::ApplicationState state)
이 신호는 애플리케이션의 state 이 변경될 때 발생합니다.
applicationState()도 참조하세요 .
[static]
void QGuiApplication::changeOverrideCursor(const QCursor &cursor)
현재 활성 애플리케이션 재정의 커서를 cursor 로 변경합니다.
setOverrideCursor()가 호출되지 않은 경우 이 함수는 효과가 없습니다.
setOverrideCursor(), overrideCursor(), restoreOverrideCursor() 및 QWidget::setCursor()도 참조하세요 .
[static]
QClipboard *QGuiApplication::clipboard()
클립보드와 상호 작용할 개체를 반환합니다.
[signal]
void QGuiApplication::commitDataRequest(QSessionManager &manager)
이 신호는 세션 관리를 처리합니다. QSessionManager 에서 애플리케이션이 모든 데이터를 커밋하기를 원할 때 발생합니다.
일반적으로 이는 사용자의 허가를 받은 후 열려 있는 모든 파일을 저장하는 것을 의미합니다. 또한 사용자가 종료를 취소할 수 있는 수단을 제공해야 할 수도 있습니다.
이 신호 내에서 애플리케이션을 종료해서는 안 됩니다. 대신 세션 관리자가 상황에 따라 나중에 이 작업을 수행할 수도 있고 수행하지 않을 수도 있습니다.
경고: 이 신호 내에서는 manager 에 명시적인 권한을 요청하지 않는 한 사용자 상호 작용이 불가능합니다. 자세한 내용과 사용 예는 QSessionManager::allowsInteraction() 및 QSessionManager::allowsErrorInteraction()를 참조하세요.
참고: 이 신호에 연결할 때는 Qt::DirectConnection 을 사용해야 합니다.
isSessionRestored(), sessionId(), saveStateRequest() 및 세션 관리도참조하세요 .
[static]
bool QGuiApplication::desktopSettingsAware()
시스템의 표준 색, 글꼴 등을 사용하도록 Qt XML이 설정되어 있으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다. 기본값은 true
입니다.
setDesktopSettingsAware()도 참조하십시오 .
qreal QGuiApplication::devicePixelRatio() const
시스템에서 찾은 가장 높은 화면 디바이스 픽셀 비율을 반환합니다. 이 비율은 물리적 픽셀과 디바이스 독립 픽셀 사이의 비율입니다.
이 함수는 타겟팅하는 창을 모르는 경우에만 사용하세요. 대상 창을 알고 있는 경우에는 QWindow::devicePixelRatio()를 대신 사용하세요.
QWindow::devicePixelRatio()도 참조하세요 .
[override virtual protected]
bool QGuiApplication::event(QEvent *e)
다시 구현합니다: QCoreApplication::event(QEvent *e).
[static]
int QGuiApplication::exec()
메인 이벤트 루프에 들어가 exit()가 호출될 때까지 기다린 다음 exit()로 설정된 값을 반환합니다( exit()가 quit()를 통해 호출되면 0이 됨).
이벤트 처리를 시작하려면 이 함수를 호출해야 합니다. 메인 이벤트 루프는 창 시스템에서 이벤트를 수신하여 애플리케이션 위젯으로 전송합니다.
일반적으로 실행()을 호출하기 전에는 사용자 상호작용이 이루어질 수 없습니다.
대기 중인 이벤트가 없을 때마다 특수 함수를 실행하는 등 애플리케이션이 유휴 처리를 수행하도록 하려면 시간 제한이 0ns인 QChronoTimer 을 사용하세요. processEvents ()를 사용하여 보다 고급 유휴 처리 체계를 구현할 수 있습니다.
정리 코드는 애플리케이션의 main()
함수에 넣는 대신 aboutToQuit() 신호에 연결하는 것이 좋습니다. 일부 플랫폼에서는 QApplication::exec() 호출이 반환되지 않을 수 있기 때문입니다.
quitOnLastWindowClosed, quit(), exit(), processEvents() 및 QCoreApplication::exec()도 참조하세요 .
[static]
QObject *QGuiApplication::focusObject()
키 이벤트와 같이 포커스에 연결된 이벤트의 최종 수신자가 될 현재 활성 창에서 QObject 을 반환합니다.
[signal]
void QGuiApplication::focusObjectChanged(QObject *focusObject)
이 신호는 포커스에 연결된 이벤트의 최종 수신자가 변경될 때 발생합니다. focusObject 이 새 수신자입니다.
focusObject()도 참조하세요 .
[static]
QWindow *QGuiApplication::focusWindow()
키 이벤트와 같이 포커스와 연결된 이벤트를 수신하는 QWindow 을 반환합니다.
QWindow::requestActivate()도 참조하세요 .
[signal]
void QGuiApplication::focusWindowChanged(QWindow *focusWindow)
이 신호는 초점이 맞춰진 창이 변경될 때 발생합니다. focusWindow 새 초점이 맞춰진 창입니다.
focusWindow()도 참조하세요 .
[static]
QFont QGuiApplication::font()
기본 애플리케이션 글꼴을 반환합니다.
setFont()도 참조하세요 .
[signal]
void QGuiApplication::fontDatabaseChanged()
이 신호는 사용 가능한 글꼴이 변경되었을 때 발생합니다.
애플리케이션 글꼴이 추가 또는 제거되거나 시스템 글꼴이 변경될 때 발생할 수 있습니다.
QFontDatabase::addApplicationFont(), QFontDatabase::addApplicationFontFromData(), QFontDatabase::removeAllApplicationFonts() 및 QFontDatabase::removeApplicationFont()도 참조하세요 .
[static]
Qt::HighDpiScaleFactorRoundingPolicy QGuiApplication::highDpiScaleFactorRoundingPolicy()
높은 DPI 배율 반올림 정책을 반환합니다.
setHighDpiScaleFactorRoundingPolicy()도 참조하세요 .
[static]
QInputMethod *QGuiApplication::inputMethod()
는 입력 메서드를 반환합니다.
입력 메서드는 가상 키보드의 상태 및 위치에 대한 속성을 반환합니다. 또한 현재 초점이 맞춰진 입력 요소의 위치에 대한 정보도 제공합니다.
QInputMethod 를참조하세요 .
[static]
bool QGuiApplication::isLeftToRight()
애플리케이션의 레이아웃 방향이 Qt::LeftToRight 인 경우 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
layoutDirection() 및 isRightToLeft()도 참조하세요 .
[static]
bool QGuiApplication::isRightToLeft()
애플리케이션의 레이아웃 방향이 Qt::RightToLeft 인 경우 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
layoutDirection() 및 isLeftToRight()도 참조하세요 .
bool QGuiApplication::isSavingSession() const
애플리케이션이 현재 세션을 저장 중이면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
commitDataRequest() 및 saveStateRequest()가 전송될 때 true
이며, 세션 관리에 의해 창이 닫힐 때도 마찬가지입니다.
sessionId(), commitDataRequest() 및 saveStateRequest()도 참조하세요 .
bool QGuiApplication::isSessionRestored() const
이전 세션에서 애플리케이션이 복원된 경우 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
sessionId(), commitDataRequest() 및 saveStateRequest()도 참조하세요 .
[static]
Qt::KeyboardModifiers QGuiApplication::keyboardModifiers()
키보드의 수정자 키의 현재 상태를 반환합니다. 현재 상태는 이벤트 큐가 키보드 상태를 자발적으로 변경하는 이벤트(QEvent::KeyPress 및 QEvent::KeyRelease 이벤트)로 비워질 때 동기식으로 업데이트됩니다.
이는 호출 당시 입력 장치에서 누르고 있는 실제 키가 아니라 위 이벤트 중 하나에서 마지막으로 보고된 수정자가 반영될 수 있다는 점에 유의하세요. 누르고 있는 키가 없는 경우 Qt::NoModifier 이 반환됩니다.
mouseButtons() 및 queryKeyboardModifiers()도 참조하세요 .
[signal]
void QGuiApplication::lastWindowClosed()
이 신호는 마지막으로 표시된 기본 창 (즉, 일시적인 부모가 없는 최상위 창)이 닫힐 때 exec()에서 전송됩니다.
기본적으로 QGuiApplication 은 이 신호가 전송된 후 종료됩니다. quitOnLastWindowClosed 을 false
으로 설정하여 이 기능을 끌 수 있습니다.
QWindow::close(), QWindow::isTopLevel() 및 QWindow::transientParent()도 참조하세요 .
[static]
QWindow *QGuiApplication::modalWindow()
가장 최근에 표시된 모달 창을 반환합니다. 모달 창이 표시되지 않으면 이 함수는 0을 반환합니다.
모달 창은 modality 속성이 Qt::WindowModal 또는 Qt::ApplicationModal 로 설정된 창입니다. 사용자가 프로그램의 다른 부분을 계속 진행하려면 모달 창을 닫아야 합니다.
모달 창은 스택으로 구성됩니다. 이 함수는 스택 맨 위에 있는 모달 창을 반환합니다.
Qt::WindowModality 및 QWindow::setModality()도 참조하세요 .
[static]
Qt::MouseButtons QGuiApplication::mouseButtons()
마우스 버튼의 현재 상태를 반환합니다. 현재 상태는 이벤트 대기열이 마우스 상태를 자발적으로 변경하는 이벤트(QEvent::MouseButtonPress 및 QEvent::MouseButtonRelease 이벤트)로 비워질 때 동기식으로 업데이트됩니다.
이는 호출 당시 입력 장치에서 누르고 있는 실제 버튼이 아니라 위 이벤트 중 하나에서 마지막으로 보고된 마우스 버튼을 반영할 수 있다는 점에 유의하세요. 마우스 버튼이 누르고 있지 않은 경우 Qt::NoButton 이 반환됩니다.
keyboardModifiers()도 참조하세요 .
template <typename QNativeInterface> QNativeInterface *QGuiApplication::nativeInterface() const
애플리케이션에 대해 지정된 유형의 네이티브 인터페이스를 반환합니다.
이 함수는 QNativeInterface 네임스페이스에 정의된 QGuiApplication 의 플랫폼별 기능에 대한 액세스를 제공합니다:
Wayland 애플리케이션에 대한 네이티브 인터페이스 | |
X11 애플리케이션에 대한 네이티브 인터페이스 |
요청된 인터페이스를 사용할 수 없는 경우 nullptr
이 반환됩니다.
[override virtual]
bool QGuiApplication::notify(QObject *object, QEvent *event)
다시 구현합니다: QCoreApplication::notify(QObject * 수신기, QEvent * 이벤트).
[static]
QCursor *QGuiApplication::overrideCursor()
활성 애플리케이션 재정의 커서를 반환합니다.
이 함수는 애플리케이션 커서가 정의되지 않은 경우(즉, 내부 커서 스택이 비어 있는 경우) nullptr
을 반환합니다.
setOverrideCursor() 및 restoreOverrideCursor()도 참조하세요 .
[static]
QPalette QGuiApplication::palette()
현재 애플리케이션 팔레트를 반환합니다.
명시적으로 설정되지 않은 역할은 시스템의 플랫폼 테마를 반영합니다.
setPalette()도 참조하세요 .
[static]
Qt::KeyboardModifiers QGuiApplication::queryKeyboardModifiers()
키보드의 수정자 키 상태를 쿼리하고 반환합니다. keyboardModifiers 과 달리 이 메서드는 메서드를 호출할 당시 입력 장치에 있는 실제 키를 반환합니다.
이 메서드는 이 프로세스에서 수신한 키 누름 이벤트에 의존하지 않으므로 예를 들어 창을 이동하는 동안 수정자를 확인할 수 있습니다. 대부분의 경우 keyboardModifiers()를 사용해야 하는데, 이는 현재 처리된 이벤트가 수신되었을 때의 수정자 상태를 그대로 포함하므로 더 빠르고 정확합니다.
keyboardModifiers()도 참조하세요 .
[static]
void QGuiApplication::restoreOverrideCursor()
마지막 setOverrideCursor()을 실행 취소합니다.
setOverrideCursor()가 두 번 호출된 경우 restoreOverrideCursor()를 호출하면 첫 번째 커서 세트가 활성화됩니다. 이 함수를 두 번 호출하면 원래 위젯의 커서가 복원됩니다.
setOverrideCursor() 및 overrideCursor()도 참조하세요 .
[signal]
void QGuiApplication::saveStateRequest(QSessionManager &manager)
이 신호는 세션 관리를 처리합니다. session manager 에서 애플리케이션이 향후 세션을 위해 상태를 보존하기를 원할 때 호출됩니다.
예를 들어 텍스트 편집기는 편집 버퍼의 현재 내용, 커서 위치 및 현재 편집 세션의 다른 측면을 포함하는 임시 파일을 생성합니다.
이 신호 내에서 애플리케이션을 종료해서는 안 됩니다. 대신 세션 관리자가 상황에 따라 나중에 이 작업을 수행할 수도 있고 수행하지 않을 수도 있습니다. 또한 대부분의 세션 관리자는 애플리케이션이 시작된 직후에 저장된 상태를 요청할 가능성이 높습니다. 이를 통해 세션 관리자는 애플리케이션의 재시작 정책에 대해 알 수 있습니다.
경고: 이 신호 내에서는 manager 에 명시적인 권한을 요청하지 않는 한 사용자 상호 작용이 불가능합니다. 자세한 내용은 QSessionManager::allowsInteraction() 및 QSessionManager::allowsErrorInteraction()를 참조하세요.
참고: 이 신호에 연결할 때는 Qt::DirectConnection 을 사용해야 합니다.
isSessionRestored(), sessionId(), commitDataRequest() 및 세션 관리도참조하세요 .
[signal]
void QGuiApplication::screenAdded(QScreen *screen)
이 신호는 시스템에 새 화면 screen 이 추가될 때마다 발생합니다.
screens(), primaryScreen, screenRemoved()도 참조하세요 .
[static]
QScreen *QGuiApplication::screenAt(const QPoint &point)
point 또는 화면 외부의 경우 nullptr
에서 화면을 반환합니다.
point 은 각 가상 형제자매 집합의 virtualGeometry()와 관련되어 있습니다. 포인트가 두 개 이상의 가상 형제자매 세트에 매핑되는 경우 첫 번째 일치 항목이 반환됩니다. 알려진 화면의 가상 데스크톱 형제(예: 애플리케이션 창 화면의 형제 QWidget::windowHandle()->screen()
)만 검색하려면 QScreen::virtualSiblingAt()를 사용하세요.
[signal]
void QGuiApplication::screenRemoved(QScreen *screen)
이 신호는 시스템에서 screen 가 제거될 때마다 발생합니다. 이 신호는 Qt가 창을 기본 화면으로 이동하기 전에 화면의 창을 관리할 수 있는 기회를 제공합니다.
screens(), screenAdded(), QObject::destroyed() 및 QWindow::setScreen()도 참조하세요 .
[static]
QList<QScreen *> QGuiApplication::screens()
애플리케이션이 연결된 창 시스템과 관련된 모든 화면의 목록을 반환합니다.
QString QGuiApplication::sessionId() const
현재 세션의 식별자를 반환합니다.
애플리케이션이 이전 세션에서 복원된 경우 이 식별자는 이전 세션에서와 동일합니다. 세션 식별자는 다른 애플리케이션과 동일한 애플리케이션의 다른 인스턴스 모두에 대해 고유하도록 보장됩니다.
isSessionRestored(), sessionKey(), commitDataRequest() 및 saveStateRequest()도 참조하세요 .
QString QGuiApplication::sessionKey() const
현재 세션의 세션 키를 반환합니다.
애플리케이션이 이전 세션에서 복원된 경우 이 키는 이전 세션이 종료되었을 때와 동일합니다.
세션 키는 세션이 저장될 때마다 변경됩니다. 종료 프로세스가 취소되면 다시 종료할 때 다른 세션 키가 사용됩니다.
isSessionRestored(), sessionId(), commitDataRequest() 및 saveStateRequest()도 참조하세요 .
[slot, since 6.5]
void QGuiApplication::setBadgeNumber(qint64 number)
애플리케이션의 배지를 number 로 설정합니다.
읽지 않은 쪽지 수 등에 대한 피드백을 사용자에게 제공하는 데 유용합니다.
배지는 macOS에서는 Dock의 애플리케이션 아이콘, iOS에서는 홈 화면 아이콘, Windows 및 Linux에서는 작업 표시줄에 겹쳐 표시됩니다.
번호가 플랫폼에서 지원하는 범위를 벗어나는 경우 번호가 지원되는 범위로 고정됩니다. 번호가 배지 내에 맞지 않으면 번호가 시각적으로 가려질 수 있습니다.
번호를 0으로 설정하면 배지가 지워집니다.
이 기능은 Qt 6.5에 도입되었습니다.
applicationName 를참조하세요 .
[static]
void QGuiApplication::setDesktopSettingsAware(bool on)
Qt가 시스템의 표준 색상, 글꼴 등을 사용할지 여부를 on 로 설정합니다. 기본값은 true
입니다.
이 함수는 다음과 같이 QGuiApplication 객체를 생성하기 전에 호출해야 합니다:
int main(int argc, char *argv[]) { QApplication::setDesktopSettingsAware(false); QApplication app(argc, argv); // ... return app.exec(); }
desktopSettingsAware()도 참조하십시오 .
[static]
void QGuiApplication::setFont(const QFont &font)
기본 애플리케이션 글꼴을 font 로 변경합니다.
font()도 참조하세요 .
[static]
void QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy policy)
애플리케이션에 대한 높은 DPI 배율 반올림 정책을 설정합니다. policy 은 정수가 아닌 배율(예: Windows 150%)을 처리하는 방법을 결정합니다.
두 가지 주요 옵션은 분수 배율을 정수로 반올림할지 여부입니다. 배율을 그대로 유지하면 사용자 인터페이스 크기가 OS 설정과 정확히 일치하지만, 예를 들어 Windows 스타일에서 페인팅 오류가 발생할 수 있습니다.
반올림이 필요한 경우 다음에는 어떤 유형의 반올림을 적용할지 결정해야 합니다. 수학적으로 정확한 반올림이 지원되지만 최상의 시각적 결과를 제공하지 못할 수 있습니다: 1.5배를 1배('작은 UI')로 렌더링할지, 2배('큰 UI')로 렌더링할지 고려하세요. 모든 옵션의 전체 목록은 Qt::HighDpiScaleFactorRoundingPolicy 열거형을 참조하세요.
이 함수는 애플리케이션 객체를 생성하기 전에 호출해야 합니다. QGuiApplication::highDpiScaleFactorRoundingPolicy () 접근자가 설정되어 있으면 환경을 반영합니다.
기본값은 Qt::HighDpiScaleFactorRoundingPolicy::PassThrough 입니다.
highDpiScaleFactorRoundingPolicy()도 참조하세요 .
[static]
void QGuiApplication::setOverrideCursor(const QCursor &cursor)
애플리케이션 오버라이드 커서를 cursor 로 설정합니다.
애플리케이션 오버라이드 커서는 애플리케이션이 특수한 상태(예: 시간이 걸릴 수 있는 작업 중)에 있음을 사용자에게 표시하기 위한 것입니다.
이 커서는 restoreOverrideCursor() 또는 다른 setOverrideCursor()가 호출될 때까지 애플리케이션의 모든 위젯에 표시됩니다.
애플리케이션 커서는 내부 스택에 저장됩니다. setOverrideCursor()는 커서를 스택에 밀어넣고 restoreOverrideCursor()는 활성 커서를 스택에서 꺼냅니다. changeOverrideCursor()는 현재 활성 상태인 애플리케이션 오버라이드 커서를 변경합니다.
모든 setOverrideCursor() 뒤에는 반드시 해당 restoreOverrideCursor()가 와야 하며, 그렇지 않으면 스택이 절대 비워지지 않습니다.
예시:
QGuiApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); calculateHugeMandelbrot(); // lunch time... QGuiApplication::restoreOverrideCursor();
overrideCursor(), restoreOverrideCursor(), changeOverrideCursor() 및 QWidget::setCursor()도 참조하세요 .
[static]
void QGuiApplication::setPalette(const QPalette &pal)
애플리케이션 팔레트를 pal 로 변경합니다.
이 팔레트의 색상 역할이 시스템의 플랫폼 테마와 결합되어 애플리케이션의 최종 팔레트를 구성합니다.
palette()도 참조하세요 .
[static]
QStyleHints *QGuiApplication::styleHints()
애플리케이션의 스타일 힌트를 반환합니다.
스타일 힌트는 더블 클릭 간격, 전체 너비 선택 등과 같은 플랫폼에 따라 달라지는 일련의 속성을 캡슐화합니다.
힌트는 기본 플랫폼과 더 긴밀하게 통합하는 데 사용할 수 있습니다.
QStyleHints 을참조하세요 .
[static]
void QGuiApplication::sync()
Qt 상태를 윈도우 시스템 상태와 동기화하는 데 사용할 수 있는 함수입니다.
이 함수는 먼저 QCoreApplication::processEvents()를 호출하여 Qts 이벤트를 비운 다음 플랫폼 플러그인을 윈도우 시스템과 동기화하고, 마지막으로 QCoreApplication::processEvents()를 다시 호출하여 Qts 이벤트를 전달합니다;
이 함수는 시간이 많이 걸리므로 사용을 권장하지 않습니다.
[static]
QWindow *QGuiApplication::topLevelAt(const QPoint &pos)
지정된 위치의 최상위 창 pos, 있는 경우 반환합니다.
[static]
QWindowList QGuiApplication::topLevelWindows()
애플리케이션의 최상위 창 목록을 반환합니다.
allWindows()도 참조하세요 .
매크로 문서
qGuiApp
고유한 애플리케이션 객체를 참조하는 전역 포인터입니다. 해당 객체가 QGuiApplication 인 경우에만 사용할 수 있습니다.
QCoreApplication::instance() 및 qApp도 참조하세요 .
© 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.