QApplication Class
QApplication 클래스는 GUI 애플리케이션의 제어 흐름과 주요 설정을 관리합니다. 더 보기...
Header: | #include <QApplication> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
상속합니다: | QGuiApplication |
속성
|
|
공용 함수
QApplication(int &argc, char **argv) | |
virtual | ~QApplication() |
bool | autoSipEnabled() const |
QString | styleSheet() const |
재구현된 공용 함수
virtual bool | notify(QObject *receiver, QEvent *e) override |
공용 슬롯
void | aboutQt() |
void | closeAllWindows() |
void | setAutoSipEnabled(const bool enabled) |
void | setStyleSheet(const QString &sheet) |
시그널
void | focusChanged(QWidget *old, QWidget *now) |
정적 공용 멤버
QWidget * | activeModalWidget() |
QWidget * | activePopupWidget() |
QWidget * | activeWindow() |
void | alert(QWidget *widget, int msec = 0) |
QWidgetList | allWidgets() |
void | beep() |
int | cursorFlashTime() |
int | doubleClickInterval() |
int | exec() |
QWidget * | focusWidget() |
QFont | font() |
QFont | font(const QWidget *widget) |
QFont | font(const char *className) |
bool | isEffectEnabled(Qt::UIEffect effect) |
int | keyboardInputInterval() |
Qt::NavigationMode | navigationMode() |
QPalette | palette(const QWidget *widget) |
QPalette | palette(const char *className) |
void | setCursorFlashTime(int) |
void | setDoubleClickInterval(int) |
void | setEffectEnabled(Qt::UIEffect effect, bool enable = true) |
void | setFont(const QFont &font, const char *className = nullptr) |
void | setKeyboardInputInterval(int) |
void | setNavigationMode(Qt::NavigationMode mode) |
void | setPalette(const QPalette &palette, const char *className = nullptr) |
void | setStartDragDistance(int l) |
void | setStartDragTime(int ms) |
void | setStyle(QStyle *style) |
QStyle * | setStyle(const QString &style) |
void | setWheelScrollLines(int) |
int | startDragDistance() |
int | startDragTime() |
QStyle * | style() |
QWidget * | topLevelAt(const QPoint &point) |
QWidget * | topLevelAt(int x, int y) |
QWidgetList | topLevelWidgets() |
int | wheelScrollLines() |
QWidget * | widgetAt(const QPoint &point) |
QWidget * | widgetAt(int x, int y) |
재구현된 보호 함수
virtual bool | event(QEvent *e) override |
매크로
상세 설명
QApplication은 QWidget 기반 애플리케이션에 필요한 일부 기능으로 QGuiApplication 을 전문화합니다. 위젯 특정 초기화, 최종화를 처리합니다.
Qt를 사용하는 모든 GUI 애플리케이션에는 주어진 시간에 0, 1, 2 또는 그 이상의 창이 있든 상관없이 정확히 하나의 QApplication 객체가 존재합니다. QWidget 기반이 아닌 Qt 애플리케이션의 경우 QtWidgets 라이브러리에 의존하지 않으므로 QGuiApplication 을 대신 사용합니다.
일부 GUI 애플리케이션은 특수 배치 모드, 즉 수동 개입 없이 작업을 실행할 수 있는 명령줄 인수를 제공합니다. 이러한 비 GUI 모드에서는 그래픽 사용자 인터페이스에 필요한 리소스를 불필요하게 초기화하는 것을 피하기 위해 일반 QCoreApplication 인스턴스화만으로도 충분할 때가 많습니다. 다음 예는 적절한 유형의 애플리케이션 인스턴스를 동적으로 생성하는 방법을 보여줍니다:
QCoreApplication* createApplication(int &argc, char *argv[]) { for (int i = 1; i < argc; ++i) { if (!qstrcmp(argv[i], "-no-gui")) return new QCoreApplication(argc, argv); } return new QApplication(argc, argv); } int main(int argc, char* argv[]) { QScopedPointer<QCoreApplication> app(createApplication(argc, argv)); if (qobject_cast<QApplication *>(app.data())) { // start GUI version... } else { // start non-GUI version... } return app->exec(); }
글로벌 qApp 포인터에 해당하는 포인터를 반환하는 instance() 함수를 통해 QApplication 개체에 액세스할 수 있습니다.
QApplication의 주요 책임 영역은 다음과 같습니다:
- palette(), font() 및 doubleClickInterval()와 같은 사용자의 데스크톱 설정으로 애플리케이션을 초기화합니다. 사용자가 제어판 등을 통해 데스크톱을 전역적으로 변경할 경우를 대비하여 이러한 속성을 추적합니다.
- 이벤트 처리, 즉 기본 창 시스템에서 이벤트를 수신하여 관련 위젯으로 전송하는 작업을 수행합니다. sendEvent () 및 postEvent()을 사용하여 자체 이벤트를 위젯으로 보낼 수 있습니다.
- 일반적인 명령줄 인수를 구문 분석하고 그에 따라 내부 상태를 설정합니다. 자세한 내용은 아래 constructor documentation 를 참조하세요.
- 애플리케이션의 모양과 느낌을 정의하며 QStyle 객체에 캡슐화됩니다. 이는 런타임에 setStyle()를 사용하여 변경할 수 있습니다.
- translate()를 통해 사용자에게 표시되는 문자열의 지역화를 제공합니다.
- clipboard()와 같은 마법의 객체를 제공합니다.
- 애플리케이션의 창에 대해 알고 있습니다. widgetAt ()를 사용하여 특정 위치에 어떤 위젯이 있는지 묻고 topLevelWidgets() 및 closeAllWindows() 등의 목록을 가져올 수 있습니다.
- 애플리케이션의 마우스 커서 처리를 관리합니다( setOverrideCursor() 참조).
QApplication 객체는 많은 초기화 작업을 수행하므로 사용자 인터페이스와 관련된 다른 객체가 생성되기 전에 생성되어야 합니다. QApplication은 또한 일반적인 명령줄 인수를 처리합니다. 따라서 일반적으로 애플리케이션 자체에서 argv
의 해석이나 수정이 수행되기 전에 생성하는 것이 좋습니다.
기능 그룹 | |
---|---|
시스템 설정 | desktopSettingsAware(), setDesktopSettingsAware(), cursorFlashTime(), setCursorFlashTime(), doubleClickInterval(), setDoubleClickInterval(), setKeyboardInputInterval(), wheelScrollLines(), setWheelScrollLines(), palette(), setPalette(), font(), setFont(), fontMetrics(). |
이벤트 처리 | exec(), processEvents(), exit(), quit(). sendEvent(), postEvent(), sendPostedEvents(), removePostedEvents(), notify(). |
GUI 스타일 | style(), setStyle(). |
텍스트 처리 | installTranslator(), removeTranslator() translate(). |
위젯 | allWidgets(), topLevelWidgets(), activePopupWidget(), activeModalWidget(), clipboard(), focusWidget(), activeWindow(), widgetAt(). |
고급 커서 처리 | overrideCursor(), setOverrideCursor(), restoreOverrideCursor(). |
기타 | closeAllWindows(), startingUp(), closingDown(). |
QCoreApplication, QAbstractEventDispatcher, QEventLoop, 및 QSettings 를참조하세요 .
속성 문서
autoSipEnabled : bool
자동 SIP(소프트웨어 입력 패널) 표시 여부를 토글합니다.
키보드 입력을 허용하는 위젯을 입력할 때 SIP를 자동으로 표시하려면 이 속성을 true
로 설정합니다. 이 속성은 WA_InputMethodEnabled 속성이 설정된 위젯에만 영향을 미치며, 일반적으로 키가 거의 없거나 전혀 없는 디바이스에서 가상 키보드를 실행하는 데 사용됩니다.
이 속성은 소프트웨어 입력 패널을 사용하는 플랫폼에만 영향을 미칩니다.
기본값은 플랫폼에 따라 다릅니다.
액세스 기능:
bool | autoSipEnabled() const |
void | setAutoSipEnabled(const bool enabled) |
cursorFlashTime : int
이 속성은 텍스트 커서의 깜박임(깜박임) 시간을 밀리초 단위로 저장합니다.
깜박임 시간은 캐럿 표시를 표시, 반전 및 복원하는 데 필요한 시간입니다. 일반적으로 텍스트 커서는 커서 깜박임 시간의 절반 동안 표시된 후 같은 시간 동안 숨겨지지만 이 시간은 다를 수 있습니다.
X11의 기본값은 1000밀리초입니다. Windows에서는 Control Panel 값이 사용되며 이 속성을 설정하면 모든 애플리케이션의 커서 깜박임 시간이 설정됩니다.
사용자가 전역 데스크톱 설정을 변경하면 언제든지 변경될 수 있으므로 위젯은 이 값을 캐시하지 않는 것이 좋습니다.
참고: 커서 깜박임이 비활성화되어 있는 경우 이 속성은 음수 값을 가질 수 있습니다.
액세스 기능:
int | cursorFlashTime() |
void | setCursorFlashTime(int) |
doubleClickInterval : int
이 속성은 더블 클릭과 두 번의 연속 마우스 클릭을 구분하는 시간 제한을 밀리초 단위로 지정합니다.
X11의 기본값은 400밀리초입니다. Windows 및 Mac OS에서는 운영 체제의 값이 사용됩니다.
액세스 기능:
int | doubleClickInterval() |
void | setDoubleClickInterval(int) |
keyboardInputInterval : int
이 속성은 한 번의 키 누름과 두 번의 연속 키 누름을 구분하는 시간 제한을 밀리초 단위로 지정합니다.
X11의 기본값은 400밀리초입니다. Windows 및 Mac OS에서는 운영 체제의 값이 사용됩니다.
액세스 기능:
int | keyboardInputInterval() |
void | setKeyboardInputInterval(int) |
startDragDistance : int
이 속성은 끌어서 놓기 작업을 시작하는 데 필요한 최소 거리를 보유합니다.
애플리케이션에서 드래그 앤 드롭을 지원하고 사용자가 버튼을 누른 상태에서 커서를 일정 거리 이동한 후 드래그 앤 드롭 작업을 시작하려는 경우 이 속성 값을 필요한 최소 거리로 사용해야 합니다.
예를 들어 클릭한 마우스 위치가 startPos
에 저장되어 있고 현재 위치(예: 마우스 이동 이벤트에서)가 currentPos
인 경우 다음과 같은 코드를 사용하여 드래그가 시작되어야 하는지 확인할 수 있습니다:
if ((startPos - currentPos).manhattanLength() >= QApplication::startDragDistance()) startTheDrag();
Qt XML은 내부적으로 이 값을 사용합니다 (예: QFileDialog).
기본값(플랫폼에서 다른 기본값을 제공하지 않는 경우)은 10픽셀입니다.
함수에 액세스합니다:
int | startDragDistance() |
void | setStartDragDistance(int l) |
startDragTime(), QPoint::manhattanLength() 및 드래그 앤 드롭도참조하세요 .
startDragTime : int
이 속성은 끌어서 놓기 작업이 시작되기 전에 마우스 버튼을 누르고 있어야 하는 시간(밀리초)을 보유합니다.
응용 프로그램에서 드래그 앤 드롭을 지원하고 사용자가 일정 시간 동안 마우스 버튼을 누른 후에 드래그 앤 드롭 작업을 시작하려는 경우 이 속성 값을 지연 시간으로 사용해야 합니다.
Qt는 내부적으로도 이 지연을 사용합니다(예: QTextEdit 및 QLineEdit 에서 드래그를 시작할 때).
기본값은 500ms입니다.
함수 액세스:
int | startDragTime() |
void | setStartDragTime(int ms) |
startDragDistance() 및 드래그 앤 드롭도참조하세요 .
styleSheet : QString
이 속성은 애플리케이션 스타일 시트를 보유합니다.
기본적으로 이 속성은 사용자가 애플리케이션을 실행할 때 명령줄에 -stylesheet
옵션을 지정하지 않는 한 빈 문자열을 반환합니다.
액세스 함수:
QString | styleSheet() const |
void | setStyleSheet(const QString &sheet) |
QWidget::setStyle() 및 Qt 스타일 시트를참조하십시오 .
wheelScrollLines : int
이 속성은 마우스 휠을 회전할 때 위젯을 스크롤할 줄 수를 보유합니다.
값이 위젯의 표시 줄 수를 초과하는 경우 위젯은 스크롤 작업을 한 페이지 위로 또는 한 페이지 아래로 해석해야 합니다. 위젯이 item view class 인 경우 한 줄 스크롤 결과는 위젯의 scroll mode 설정에 따라 달라집니다. 한 줄 스크롤은 scroll one item 또는 scroll one pixel 을 의미할 수 있습니다.
기본적으로 이 속성의 값은 3입니다.
액세스 기능:
int | wheelScrollLines() |
void | setWheelScrollLines(int) |
QStyleHints::wheelScrollLines()도 참조하세요 .
멤버 함수 문서
QApplication::QApplication(int &argc, char **argv)
창 시스템을 초기화하고 argv 에서 argc 명령줄 인수를 사용하여 애플리케이션 객체를 구성합니다.
경고: argc 및 argv 에서 참조하는 데이터는 QApplication 객체의 전체 수명 동안 유효하게 유지되어야 합니다. 또한 argc 은 0보다 커야 하고 argv 은 하나 이상의 유효한 문자열을 포함해야 합니다.
글로벌 qApp
포인터는 이 애플리케이션 개체를 참조합니다. 애플리케이션 개체는 하나만 생성해야 합니다.
이 애플리케이션 객체는 paint devices (위젯, 픽스맵, 비트맵 등 포함)보다 먼저 생성되어야 합니다.
참고: argc 및 argv 은 Qt가 인식하는 명령줄 인수를 제거하기 때문에 변경될 수 있습니다.
모든 Qt 프로그램은 다음 명령줄 옵션을 자동으로 지원합니다:
- -style= 스타일, 애플리케이션 GUI 스타일을 설정합니다. 사용 가능한 값은 시스템 구성에 따라 다릅니다. 추가 스타일로 Qt를 컴파일했거나 플러그인으로 추가 스타일이 있는 경우
-style
명령줄 옵션에서 사용할 수 있습니다.QT_STYLE_OVERRIDE
환경 변수를 설정하여 모든 Qt 애플리케이션의 스타일을 설정할 수도 있습니다. - -스타일 스타일은 위에 나열된 것과 동일합니다.
- -stylesheet= 스타일시트, 애플리케이션 스타일시트를 설정합니다. 값은 스타일 시트가 포함된 파일의 경로여야 합니다.
참고: 스타일시트 파일의 상대 URL은 스타일시트 파일의 경로에 상대적입니다.
- -스타일 시트 스타일 시트는 위 목록과 동일합니다.
- -widgetcount, 마지막에 파괴되지 않고 남은 위젯 수와 동시에 존재하는 최대 위젯 수에 대한 디버그 메시지를 출력합니다.
- -reverse, 애플리케이션의 레이아웃 방향을 다음과 같이 설정합니다. Qt::RightToLeft
- -qmljsdebugger=, 지정된 포트로 QML/JS 디버거를 활성화합니다. 값은 port:1234[,block] 형식이어야 하며, 여기서 block은 선택 사항이며 디버거가 연결될 때까지 애플리케이션이 대기합니다.
QCoreApplication::arguments()도 참조하세요 .
[virtual noexcept]
QApplication::~QApplication()
이 응용 프로그램에서 할당된 모든 창 시스템 리소스를 정리합니다. 전역 변수 qApp
를 nullptr
로 설정합니다.
[static slot]
void QApplication::aboutQt()
Qt에 대한 간단한 메시지 상자를 표시합니다. 이 메시지에는 애플리케이션에서 사용 중인 Qt의 버전 번호가 포함됩니다.
이 기능은 메뉴 예제와 같이 애플리케이션의 Help 메뉴에 포함할 때 유용합니다.
이 기능은 QMessageBox::aboutQt()를 위한 편의 슬롯입니다.
[static]
QWidget *QApplication::activeModalWidget()
활성 모달 위젯을 반환합니다.
모달 위젯은 생성자의 모달 매개변수를 true로 지정하는 QDialog 의 서브클래스인 특수 최상위 위젯입니다. 모달 위젯은 사용자가 프로그램의 다른 부분을 계속 진행하기 전에 닫아야 합니다.
모달 위젯은 스택으로 구성됩니다. 이 함수는 스택 맨 위에 있는 활성 모달 위젯을 반환합니다.
activePopupWidget() 및 topLevelWidgets()도 참조하세요 .
[static]
QWidget *QApplication::activePopupWidget()
활성 팝업 위젯을 반환합니다.
팝업 위젯은 Qt::WType_Popup
위젯 플래그를 설정하는 특수 최상위 위젯입니다(예: QMenu 위젯). 애플리케이션이 팝업 위젯을 열면 모든 이벤트가 팝업으로 전송됩니다. 팝업 위젯이 닫히기 전에는 일반 위젯과 모달 위젯에 액세스할 수 없습니다.
팝업 위젯이 표시되면 다른 팝업 위젯만 열 수 있습니다. 팝업 위젯은 스택으로 구성됩니다. 이 함수는 스택 맨 위에 있는 활성 팝업 위젯을 반환합니다.
activeModalWidget() 및 topLevelWidgets()도 참조하세요 .
[static]
QWidget *QApplication::activeWindow()
키보드 입력 포커스가 있는 애플리케이션 최상위 창을 반환하거나, 포커스가 있는 애플리케이션 창이 없는 경우 nullptr
을 반환합니다. 예를 들어 해당 창에 키 이벤트를 수락하는 위젯이 없는 경우 focusWidget()가 없는 경우에도 activeWindow ()가 있을 수 있습니다.
QWidget::setFocus(), QWidget::hasFocus() 및 focusWidget()도 참조하세요 .
[static]
void QApplication::alert(QWidget *widget, int msec = 0)
창이 활성 창이 아닌 경우 widget 에 대한 알림을 표시합니다. 알림은 msec 밀리초 동안 표시됩니다. msec (기본값)이 0이면 창이 다시 활성화될 때까지 경고가 무기한 표시됩니다.
현재 이 함수는 임베디드 Linux용 Qt에서는 아무 작업도 수행하지 않습니다.
macOS에서는 애플리케이션 수준에서 더 많이 작동하며 애플리케이션 아이콘이 도크에서 바운스됩니다.
Windows에서는 창의 작업 표시줄 항목이 잠시 동안 깜박입니다. msec 이 0이면 깜박임이 멈추고 작업 표시줄 항목이 다른 색(현재 주황색)으로 바뀝니다.
X11에서는 창이 "주의 필요"로 표시되며, 이 기능이 작동하려면 창이 숨겨져 있지 않아야 합니다(즉, hide()가 호출되지 않고 어떤 식으로든 표시되어 있어야 함).
[static]
QWidgetList QApplication::allWidgets()
애플리케이션의 모든 위젯 목록을 반환합니다.
위젯이 없는 경우 목록은 비어 있습니다(QList::isEmpty()).
참고: 일부 위젯은 숨겨져 있을 수 있습니다.
예시:
void updateAllWidgets() { const QWidgetList allWidgets = QApplication::allWidgets(); for (QWidget *widget : allWidgets) widget->update(); }
topLevelWidgets() 및 QWidget::isVisible()도 참조하세요 .
[static]
void QApplication::beep()
기본 볼륨과 사운드를 사용하여 벨을 울립니다. 이 기능은 임베디드 Linux용 Qt에서는 사용할 수 없습니다.
[static slot]
void QApplication::closeAllWindows()
모든 최상위 창을 닫습니다.
이 기능은 최상위 창이 많은 애플리케이션에 특히 유용합니다.
한 창이 닫기 이벤트를 수락하지 않을 때까지 창이 임의의 순서로 닫힙니다. quitOnLastWindowClosed 을 false로 설정하지 않는 한 마지막 창이 성공적으로 닫히면 애플리케이션이 종료됩니다. 메뉴 등에서 애플리케이션 종료를 트리거하려면 이 함수 대신 QCoreApplication::quit()를 사용합니다.
quitOnLastWindowClosed, lastWindowClosed(), QWidget::close(), QWidget::closeEvent(), lastWindowClosed(), QCoreApplication::quit(), topLevelWidgets(), QWidget::isWindow()도 참조하세요 .
[override virtual protected]
bool QApplication::event(QEvent *e)
다시 구현합니다: QGuiApplication::event(QEvent *e).
[static]
int QApplication::exec()
메인 이벤트 루프에 들어가 exit()가 호출될 때까지 기다린 다음 exit()로 설정된 값을 반환합니다( exit()가 quit()를 통해 호출되면 0이 됨).
이벤트 처리를 시작하려면 이 함수를 호출해야 합니다. 메인 이벤트 루프는 창 시스템에서 이벤트를 수신하여 애플리케이션 위젯으로 전송합니다.
일반적으로 exec()를 호출하기 전에는 사용자 상호작용이 일어나지 않습니다. 특별한 경우로, QMessageBox 같은 모달 위젯은 실행()을 호출하기 전에 사용할 수 있는데, 모달 위젯은 로컬 이벤트 루프를 시작하기 위해 실행()을 호출하기 때문입니다.
애플리케이션에서 대기 중인 이벤트가 없을 때마다 특수 함수를 실행하는 등 유휴 처리를 수행하려면 0ns 타임아웃이 있는 QChronoTimer 을 사용합니다. processEvents ()를 사용하여 보다 고급 유휴 처리 방식을 구현할 수 있습니다.
정리 코드는 애플리케이션의 main()
함수에 넣는 대신 aboutToQuit() 신호에 연결하는 것이 좋습니다. 일부 플랫폼에서는 QApplication::exec() 호출이 반환되지 않을 수 있기 때문입니다. 예를 들어, Windows 플랫폼에서는 사용자가 로그오프하면 Qt가 모든 최상위 창을 닫은 후 시스템이 프로세스를 종료합니다. 따라서 응용 프로그램이 이벤트 루프를 종료하고 main()
함수가 끝날 때 QApplication::exec() 호출 후 코드를 실행할 시간이 있다는 보장은 없습니다.
quitOnLastWindowClosed, QCoreApplication::quit(), QCoreApplication::exit(), QCoreApplication::processEvents() 및 QCoreApplication::exec()도 참조하세요 .
[signal]
void QApplication::focusChanged(QWidget *old, QWidget *now)
이 신호는 키보드 포커스가 있는 위젯이 old 에서 now 으로 변경된 경우, 즉 사용자가 탭 키를 누르거나 위젯을 클릭하거나 활성 창을 변경한 경우에 발생합니다. old 와 now 모두 nullptr
일 수 있습니다.
이 신호는 두 위젯 모두 QFocusEvent 을 통해 변경에 대한 알림을 받은 후에 발신됩니다.
QWidget::setFocus(), QWidget::clearFocus() 및 Qt::FocusReason도 참조하세요 .
[static]
QWidget *QApplication::focusWidget()
키보드 입력 포커스가 있는 애플리케이션 위젯을 반환하거나, 이 애플리케이션에 포커스가 있는 위젯이 없는 경우 nullptr
을 반환합니다.
QWidget::setFocus(), QWidget::hasFocus(), activeWindow() 및 focusChanged()도 참조하세요 .
[static]
QFont QApplication::font()
기본 애플리케이션 글꼴을 반환합니다.
setFont(), fontMetrics() 및 QWidget::font()도 참조하세요 .
[static]
QFont QApplication::font(const QWidget *widget)
이 함수는 오버로드된 함수입니다.
widget 의 기본 글꼴을 반환합니다. widget 의 클래스에 기본 글꼴이 등록되지 않은 경우 가장 가까운 등록 슈퍼클래스의 기본 글꼴을 반환합니다.
fontMetrics(), setFont() 및 QWidget::setFont()도 참조하세요 .
[static]
QFont QApplication::font(const char *className)
이 함수는 오버로드된 함수입니다.
주어진 className 의 위젯 글꼴을 반환합니다.
setFont() 및 QWidget::font()도 참조하세요 .
[static]
bool QApplication::isEffectEnabled(Qt::UIEffect effect)
effect 이 활성화된 경우 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
기본적으로 Qt는 데스크톱 설정을 사용하려고 시도합니다. 이를 방지하려면 setDesktopSettingsAware(false)를 호출하십시오.
참고: 16비트 미만의 색심도로 실행되는 화면에서는 모든 효과가 비활성화됩니다.
setEffectEnabled() 및 Qt::UIEffect 을참조하십시오 .
[static]
Qt::NavigationMode QApplication::navigationMode()
Qt가 어떤 종류의 포커스 탐색을 사용하고 있는지 반환합니다.
이 기능은 임베디드 리눅스용 Qt에서만 사용할 수 있습니다.
setNavigationMode()도 참조하십시오 .
[override virtual]
bool QApplication::notify(QObject *receiver, QEvent *e)
다시 구현합니다: QGuiApplication::notify(QObject *객체, QEvent *이벤트).
[static]
QPalette QApplication::palette(const QWidget *widget)
widget 을 전달하면 위젯 클래스의 기본 팔레트가 반환됩니다. 이 팔레트는 애플리케이션 팔레트일 수도 있고 아닐 수도 있습니다. 대부분의 경우 특정 유형의 위젯에 대한 특별한 팔레트는 없지만, 사용자가 디스플레이 설정에서 메뉴에 특별한 배경색을 정의한 경우 Windows의 팝업 메뉴는 예외입니다.
setPalette() 및 QWidget::palette()도 참조하세요 .
[static]
QPalette QApplication::palette(const char *className)
이 함수는 오버로드된 함수입니다.
주어진 className 의 위젯 팔레트를 반환합니다.
setPalette() 및 QWidget::palette()도 참조하세요 .
[static]
void QApplication::setEffectEnabled(Qt::UIEffect effect, bool enable = true)
enable 이 참이면 UI 효과 effect 를 활성화하고, 그렇지 않으면 효과가 사용되지 않습니다.
참고: 16비트 미만의 색심도로 실행되는 화면에서는 모든 효과가 비활성화됩니다.
isEffectEnabled(), Qt::UIEffect, setDesktopSettingsAware()도 참조하세요 .
[static]
void QApplication::setFont(const QFont &font, const char *className = nullptr)
기본 애플리케이션 글꼴을 font 로 변경합니다. className 을 전달하면 className ( QObject::inherits()에서 보고한 대로)을 상속하는 클래스에만 변경 사항이 적용됩니다.
애플리케이션 시작 시 기본 글꼴은 창 시스템에 따라 달라집니다. 윈도우 시스템 버전과 로캘에 따라 달라질 수 있습니다. 이 함수를 사용하면 기본 글꼴을 재정의할 수 있지만, 예를 들어 일부 로캘에서는 특수 문자를 지원하기 위해 매우 큰 글꼴이 필요하므로 재정의하는 것은 좋지 않을 수 있습니다.
경고: 이 함수를 Qt 스타일 시트와 함께 사용하지 마십시오. 애플리케이션의 글꼴은 "font" 스타일 시트 속성을 사용하여 사용자 지정할 수 있습니다. 모든 QPushButton에 굵은 글꼴을 설정하려면 styleSheet() 애플리케이션을 "QPushButton { 글꼴: 굵게 }"로 설정합니다.
font(), fontMetrics() 및 QWidget::setFont()도 참조하세요 .
[static]
void QApplication::setNavigationMode(Qt::NavigationMode mode)
Qt가 사용할 포커스 탐색의 종류를 mode 로 설정합니다.
이 기능은 임베디드 리눅스용 Qt에서만 사용할 수 있습니다.
navigationMode()도 참조하십시오 .
[static]
void QApplication::setPalette(const QPalette &palette, const char *className = nullptr)
애플리케이션 팔레트를 palette 로 변경합니다.
className 을 전달하면 className 을 상속하는 위젯에만 변경 사항이 적용됩니다( QObject::inherits() 에서 보고한 대로). className 을 0으로 남겨두면 변경 사항이 모든 위젯에 적용되므로 이전에 설정된 클래스별 팔레트를 재정의합니다.
팔레트는 QStyle::polish()에서 현재 GUI 스타일에 따라 변경할 수 있습니다.
경고: 이 함수를 Qt 스타일 시트와 함께 사용하지 마십시오. 스타일 시트를 사용할 때 위젯의 팔레트는 "색상", "배경색", "선택색", "선택-배경색" 및 "대체-배경색"을 사용하여 사용자 지정할 수 있습니다.
참고: 기본 테마 엔진을 사용하는 경우와 같이 일부 스타일은 모든 그림에 팔레트를 사용하지 않습니다. Windows Vista 및 macOS 스타일이 이에 해당합니다.
QWidget::setPalette(), palette() 및 QStyle::polish()도 참조하세요 .
[static]
void QApplication::setStyle(QStyle *style)
애플리케이션의 GUI 스타일을 style 로 설정합니다. 스타일 개체의 소유권은 QApplication 으로 이전되므로 QApplication 은 애플리케이션 종료 시 또는 새 스타일이 설정되고 이전 스타일이 여전히 애플리케이션 개체의 부모인 경우 스타일 개체를 삭제합니다.
사용 예시:
QApplication::setStyle(QStyleFactory::create("Fusion"));
애플리케이션 스타일을 전환할 때 색상표가 초기 색상 또는 시스템 기본값으로 다시 설정됩니다. 이는 특정 스타일이 스타일 가이드를 완벽하게 준수하기 위해 색상표를 조정해야 하기 때문에 필요합니다.
색상표가 설정되기 전에, 즉 QApplication 을 만들기 전에 스타일을 설정하면 애플리케이션에서 색상표에 QStyle::standardPalette()을 사용하게 됩니다.
경고: Qt 스타일 시트는 현재 사용자 정의 QStyle 서브클래스에 대해 지원되지 않습니다. 향후 릴리스에서 이 문제를 해결할 계획입니다.
style(), QStyle, setPalette() 및 desktopSettingsAware()도 참조하십시오 .
[static]
QStyle *QApplication::setStyle(const QString &style)
이 함수는 과부하된 함수입니다.
QStyleFactory 에서 style 에 대한 QStyle 객체를 요청합니다.
문자열은 QStyleFactory::keys() 중 하나이어야 하며, 일반적으로 "windows", "windowsvista", "fusion" 또는 "macos" 중 하나입니다. 스타일 이름은 대소문자를 구분하지 않습니다.
알 수 없는 style 이 전달되면 nullptr
을 반환하고, 그렇지 않으면 반환된 QStyle 객체가 애플리케이션의 GUI 스타일로 설정됩니다.
경고: 애플리케이션의 스타일이 올바르게 설정되었는지 확인하려면 가능하면 QApplication 생성자 전에 이 함수를 호출하는 것이 가장 좋습니다.
[static]
QStyle *QApplication::style()
애플리케이션의 스타일 객체를 반환합니다.
[static]
QWidget *QApplication::topLevelAt(const QPoint &point)
지정된 point 위치의 최상위 위젯을 반환하고, 해당 위젯이 없으면 nullptr
을 반환합니다.
[static]
QWidget *QApplication::topLevelAt(int x, int y)
이 함수는 오버로드된 함수입니다.
해당 지점(x, y)의 최상위 위젯을 반환하고, 해당 위젯이 없으면 0을 반환합니다.
[static]
QWidgetList QApplication::topLevelWidgets()
애플리케이션의 최상위 위젯(창) 목록을 반환합니다.
참고: 일부 최상위 위젯은 숨겨져 있을 수 있습니다(예: 현재 도구 설명이 표시되지 않은 경우 도구 설명).
예시:
void showAllHiddenTopLevelWidgets() { const QWidgetList topLevelWidgets = QApplication::topLevelWidgets(); for (QWidget *widget : topLevelWidgets) { if (widget->isHidden()) widget->show(); } }
allWidgets(), QWidget::isWindow() 및 QWidget::isHidden()도 참조하세요 .
[static]
QWidget *QApplication::widgetAt(const QPoint &point)
전역 화면 위치 point, 또는 Qt 위젯이 없는 경우 nullptr
에 위젯을 반환합니다.
이 함수는 느릴 수 있습니다.
QCursor::pos(), QWidget::grabMouse() 및 QWidget::grabKeyboard()도 참조하세요 .
[static]
QWidget *QApplication::widgetAt(int x, int y)
이 함수는 오버로드된 함수입니다.
전역 화면 위치(x, y)에 위젯을 반환하거나, Qt 위젯이 없는 경우 nullptr
를 반환합니다.
매크로 문서
qApp
고유한 애플리케이션 객체를 참조하는 전역 포인터입니다. QCoreApplication::instance ()와 동일하지만 QApplication 포인터로 캐스팅되므로 고유 애플리케이션 객체가 QApplication 인 경우에만 유효합니다.
QCoreApplication::instance() 및 qGuiApp도 참조하세요 .
© 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.