이 페이지에서

QGuiApplication Class

QGuiApplication 클래스는 GUI 애플리케이션의 제어 흐름과 주요 설정을 관리합니다. 더 보기...

헤더: #include <QGuiApplication>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
상속: QCoreApplication
상속받는 클래스:

QApplication

속성

공개 함수

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 객체는 instance() 함수를 통해 접근할 수 있으며, 이 함수는 전역 qApp 포인터와 동등한 포인터를 반환합니다.

QGuiApplication의 주요 역할은 다음과 같습니다.

  • palette(), font() 및 styleHints()과 같은 사용자의 바탕 화면 설정을 사용하여 애플리케이션을 초기화합니다. 또한 사용자가 제어판 등을 통해 바탕 화면을 전역적으로 변경하는 경우를 대비하여 이러한 속성을 추적합니다.
  • 이 함수는 이벤트 처리를 수행합니다. 즉, 기본 윈도우 시스템으로부터 이벤트를 수신하여 관련 위젯으로 전달합니다. sendEvent() 및 postEvent()를 사용하여 윈도우에 사용자 정의 이벤트를 전송할 수 있습니다.
  • 일반적인 명령줄 인수를 파싱하고 그에 따라 내부 상태를 설정합니다. 자세한 내용은 아래의 constructor documentation 를 참조하십시오.
  • translate()를 통해 사용자에게 표시되는 문자열의 현지화 기능을 제공합니다.
  • clipboard()와 같은 몇 가지 마법 같은 객체를 제공합니다.
  • 이 함수는 애플리케이션의 창에 대한 정보를 알고 있습니다. topLevelAt()를 사용하여 특정 위치에 있는 창이 무엇인지 확인하거나, topLevelWindows()를 통해 창 목록을 가져오는 등의 작업을 수행할 수 있습니다.
  • 이 라이브러리는 애플리케이션의 마우스 커서 처리를 관리합니다. setOverrideCursor()을 참조하십시오.
  • 정교한 세션 관리 기능을 지원합니다. 이를 통해 사용자가 로그아웃할 때 애플리케이션이 정상적으로 종료되고, 종료가 불가능한 경우 종료 프로세스를 취소하며, 향후 세션을 위해 애플리케이션의 전체 상태를 보존할 수도 있습니다. 자세한 내용은 isSessionRestored(), sessionId(), commitDataRequest() 및 saveStateRequest()을 참조하십시오.

QGuiApplication 객체는 많은 초기화 작업을 수행하므로, 사용자 인터페이스와 관련된 다른 객체들이 생성되기 전에 반드시 생성되어야 합니다. 또한 QGuiApplication은 일반적인 명령줄 인수를 처리합니다. 따라서 애플리케이션 내에서 argv 에 대한 해석이나 수정이 이루어지기 전에 이 객체를 생성하는 것이 일반적으로 좋습니다.

QCoreApplication, QAbstractEventDispatcher 및 QEventLoop도 참조하십시오 .

속성 문서

applicationDisplayName : QString

이 속성은 이 애플리케이션의 사용자에게 표시되는 이름을 저장합니다.

이 이름은 예를 들어 창 제목 등에서 사용자에게 표시됩니다. 필요한 경우 번역할 수 있습니다.

설정되지 않은 경우, 애플리케이션 표시 이름은 기본적으로 애플리케이션 이름으로 설정됩니다.

액세스 함수:

QString applicationDisplayName()
void setApplicationDisplayName(const QString &name)

알림 신호:

void applicationDisplayNameChanged()

applicationName도 참조하십시오 .

desktopFileName : QString

이 속성은 해당 애플리케이션의 데스크톱 항목의 기본 이름을 저장합니다.

이는 freedesktop 데스크톱 항목 사양에 따라 이 애플리케이션을 나타내는 데스크톱 항목의 파일 이름으로, 전체 경로나 끝에 붙는 ".desktop" 확장자는 제외된 것입니다.

이 속성은 어떤 데스크톱 엔트리가 해당 애플리케이션을 나타내는지 정확하게 나타내며, 윈도우 시스템이 부정확한 휴리스틱에 의존하지 않고도 이러한 정보를 검색하는 데 필요합니다.

freedesktop 데스크톱 항목 사양의 최신 버전은 여기에서 확인할 수 있습니다.

액세스 함수:

QString desktopFileName()
void setDesktopFileName(const QString &name)

layoutDirection : Qt::LayoutDirection

이 속성은 이 애플리케이션의 기본 레이아웃 방향을 지정합니다.

시스템 시작 시 또는 방향이 명시적으로 ` Qt::LayoutDirectionAuto`로 설정될 때, 기본 레이아웃 방향은 애플리케이션의 언어에 따라 달라집니다.

notifier 신호는 Qt 5.4에서 도입되었습니다.

액세스 함수:

Qt::LayoutDirection layoutDirection()
void setLayoutDirection(Qt::LayoutDirection direction)

Notifier 신호:

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 일부 리눅스 데스크톱 및 임베디드 시스템에서 사용되는 Wayland 디스플레이 서버 프로토콜용 플랫폼 플러그인입니다.
  • xcb 는 일부 리눅스 데스크톱 플랫폼에서 사용되는 X11 윈도우 시스템용 플러그인입니다.

참고: ` QGuiApplication ` 없이 이 함수를호출하면 , 사용 가능한 경우 기본 플랫폼 이름이 반환됩니다. 기본 플랫폼 이름은 ` -platform ` 명령줄 옵션이나 ` QT_QPA_PLATFORM ` 환경 변수의 영향을 받지 않습니다.

임베디드 리눅스 장치용 플랫폼 플러그인에 대한 자세한 내용은 Qt for Embedded Linux를 참조하십시오.

액세스 함수:

QString platformName()

[read-only] primaryScreen : QScreen*

이 속성은 애플리케이션의 기본(또는 기본값) 화면을 지정합니다.

별도로 지정되지 않는 한, QWindows가 처음 표시되는 화면이 됩니다.

primaryScreenChanged 신호는 Qt 5.6에서 도입되었습니다.

액세스 함수:

QScreen *primaryScreen()

Notifier 시그널:

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 (픽스맵, 비트맵 등 포함)보다 먼저 생성되어야 합니다.

참고: Qt가 인식하는 명령줄 인수를 제거함에 따라` argc ` 및 ` argv `이 변경될 수 있습니다.

지원되는 명령줄 옵션

모든 Qt 프로그램은 Qt가 윈도우 시스템과 상호작용하는 방식을 수정할 수 있는 일련의 명령줄 옵션을 자동으로 지원합니다. 일부 옵션은 환경 변수를 통해서도 설정할 수 있으며, 애플리케이션이 GUI 하위 프로세스나 다른 애플리케이션을 실행할 수 있는 경우 환경 변수를 사용하는 것이 권장됩니다(환경 변수는 자식 프로세스에 상속됩니다). 확실하지 않은 경우에는 환경 변수를 사용하십시오.

현재 지원되는 옵션은 다음과 같습니다:

  • -platformplatformName[ :options], Qt 플랫폼 추상화 (QPA) 플러그인을 지정합니다.

    QT_QPA_PLATFORM 환경 변수를 재정의합니다.

  • -platformpluginpath path: 플랫폼 플러그인의 경로를 지정합니다.

    QT_QPA_PLATFORM_PLUGIN_PATH 환경 변수를 재정의합니다.

  • -platformtheme platformTheme: 플랫폼 테마를 지정합니다.

    QT_QPA_PLATFORMTHEME 환경 변수를 재정의합니다.

  • -plugin plugin은 로드할 추가 플러그인을 지정합니다. 이 인수는 여러 번 나타날 수 있습니다.

    QT_QPA_GENERIC_PLUGINS 환경 변수에 지정된 플러그인과 결합됩니다.

  • -qmljsdebugger=, 지정된 포트로 QML/JS 디버거를 활성화합니다. 값은 port:1234[,block] 형식이어야 하며, 여기서 block은 선택 사항이고, 이 옵션을 지정하면 디버거가 애플리케이션에 연결될 때까지 애플리케이션이 대기합니다.
  • -qwindowgeometry geometry는 X11 구문을 사용하여 메인 창의 창 크기를 지정합니다. 예: -qwindowgeometry 100x100+50+50
  • -qwindowicon, 기본 창 아이콘을 설정합니다.
  • -qwindowtitle, 첫 번째 창의 제목을 설정합니다
  • -reverse, 애플리케이션의 레이아웃 방향을 Qt::RightToLeft 로 설정합니다. 이 옵션은 디버깅을 돕기 위한 것으로, 실제 운영 환경에서는 사용해서는 안 됩니다. 기본값은 사용자의 로케일에서 자동으로 감지됩니다( QLocale::textDirection()도 참조하십시오).
  • -session session: 이전 세션의 애플리케이션 상태를 복원합니다.

X11에서는 다음과 같은 표준 명령줄 옵션을 사용할 수 있습니다:

  • -display hostname:screen_number: X11에서 디스플레이를 전환합니다.

    DISPLAY 환경 변수를 재정의합니다.

  • -geometry 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가 어떻게 반응할지 제어합니다(Qt 5.15부터).

    값을 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 오른쪽에서 왼쪽으로(RTL) 모드를 활성화합니다(실험적). RTL 로캘에서 Windows 제목 표시줄이 그에 따라 표시됩니다(Qt 5.13부터).
  • tabletabsoluterange=<value> WinTab 태블릿의 마우스 모드 감지 값을 설정합니다(레거시, Qt 5.3부터).

-platform cocoa (macOS)에서는 다음 매개변수를 사용할 수 있습니다:

  • fontengine=freetype, FreeType 글꼴 엔진을 사용합니다.

임베디드 리눅스 플랫폼에서 사용할 수 있는 플랫폼별 인자에 대한 자세한 내용은 Qt for Embedded Linux를 참조하십시오.

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가 시스템의 표준 색상, 글꼴 등을 사용하도록 설정되어 있으면 ` 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()에 설정된 값을 반환합니다( quit()을 통해 exit()이 호출된 경우 이 값은 0입니다).

이 함수를 호출해야 이벤트 처리가 시작됩니다. 메인 이벤트 루프는 윈도우 시스템으로부터 이벤트를 수신하여 이를 애플리케이션 위젯에 전달합니다.

일반적으로 exec()를 호출하기 전에는 사용자 상호작용이 발생할 수 없습니다.

응용 프로그램이 유휴 처리를 수행하도록 하려면(예: 보류 중인 이벤트가 없을 때마다 특수 함수를 실행하는 경우), 타임아웃을 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()

고해상도(high-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()도 참조하십시오 .

가장 최근에 표시된 모달 창을 반환합니다. 표시된 모달 창이 없는 경우, 이 함수는 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 의 플랫폼별 기능에 대한 액세스를 제공합니다:

QNativeInterface::QWaylandApplication

Wayland 애플리케이션에 대한 네이티브 인터페이스

QNativeInterface::QX11Application

X11 애플리케이션에 대한 네이티브 인터페이스

요청된 인터페이스를 사용할 수 없는 경우 ` nullptr `가 반환됩니다.

[override virtual] bool QGuiApplication::notify(QObject *object, QEvent *event)

QCoreApplication::notify(QObject *receiver, QEvent *event)를 재구현합니다.

[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)

애플리케이션의 고해상도(High-DPI) 배율 반올림 정책을 설정합니다. 배율 반올림 정책( policy )은 정수가 아닌 배율(예: Windows 150%)을 어떻게 처리할지 결정합니다.

두 가지 주요 옵션은 소수점 이하 스케일 계수를 정수로 반올림할지 여부입니다. 스케일 계수를 있는 그대로 유지하면 사용자 인터페이스 크기가 OS 설정과 정확히 일치하지만, 예를 들어 Windows 스타일에서 렌더링 오류가 발생할 수 있습니다.

반올림을 원할 경우, 다음으로 어떤 유형의 반올림을 적용할지 결정해야 합니다. 수학적으로 정확한 반올림이 지원되지만, 시각적으로 최상의 결과를 제공하지 않을 수도 있습니다. 1.5x를 1x("작은 UI")로 렌더링할지, 아니면 2x("큰 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()`를 호출하여 Qt 이벤트를 모두 비운 다음, 플랫폼 플러그인이 윈도우 시스템과 동기화를 수행하고, 마지막으로 ` QCoreApplication::processEvents()`를 다시 호출하여 Qt 이벤트를 전달합니다.

이 함수는 처리 시간이 오래 걸리므로 사용을 권장하지 않습니다.

[static] QWindow *QGuiApplication::topLevelAt(const QPoint &pos)

지정된 위치 pos 에 최상위 창이 존재할 경우, 해당 창을 반환합니다.

[static] QWindowList QGuiApplication::topLevelWindows()

애플리케이션의 최상위 창 목록을 반환합니다.

allWindows()도 참조하십시오 .

매크로 설명서

qGuiApp

고유한 애플리케이션 객체를 가리키는 전역 포인터입니다. 해당 객체가 QGuiApplication 일 때만 사용할 수 있습니다.

QCoreApplication::instance() 및 qApp도 참조하십시오 .

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