QGuiApplication Class

Die Klasse QGuiApplication verwaltet den Kontrollfluss und die wichtigsten Einstellungen der GUI-Anwendung. Mehr...

Kopfzeile: #include <QGuiApplication>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Vererbt: QCoreApplication
Vererbt von:

QApplication

Eigenschaften

Öffentliche Funktionen

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

Reimplementierte öffentliche Funktionen

virtual bool notify(QObject *object, QEvent *event) override

Öffentliche Slots

(since 6.5) void setBadgeNumber(qint64 number)

Signale

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)

Statische öffentliche Mitglieder

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

Reimplementierte geschützte Funktionen

virtual bool event(QEvent *e) override

Makros

Detaillierte Beschreibung

QGuiApplication enthält die Hauptereignisschleife, in der alle Ereignisse aus dem Fenstersystem und anderen Quellen verarbeitet und weitergeleitet werden. Es behandelt auch die Initialisierung und Beendigung der Anwendung und bietet Sitzungsverwaltung. Darüber hinaus verwaltet QGuiApplication die meisten systemweiten und anwendungsweiten Einstellungen.

Für jede GUI-Anwendung, die Qt verwendet, gibt es genau ein QGuiApplication-Objekt, unabhängig davon, ob die Anwendung zu einem bestimmten Zeitpunkt 0, 1, 2 oder mehr Fenster hat. Für Qt-Anwendungen, die nicht auf GUI basieren, verwenden Sie stattdessen QCoreApplication, da es nicht vom Qt GUI Modul abhängig ist. Für QWidget basierte Qt-Anwendungen verwenden Sie stattdessen QApplication, da es einige Funktionen bietet, die für die Erstellung von QWidget Instanzen benötigt werden.

Das QGuiApplication-Objekt ist über die Funktion instance() zugänglich, die einen Zeiger zurückgibt, der dem globalen Zeiger qApp entspricht.

Die Hauptaufgaben von QGuiApplication sind:

  • Es initialisiert die Anwendung mit den Desktop-Einstellungen des Benutzers, wie palette(), font() und styleHints(). Sie behält diese Eigenschaften im Auge, für den Fall, dass der Benutzer den Desktop global ändert, z. B. über eine Art Kontrollfeld.
  • Es führt eine Ereignisbehandlung durch, d. h., es empfängt Ereignisse vom zugrunde liegenden Fenstersystem und leitet sie an die entsprechenden Widgets weiter. Sie können eigene Ereignisse an Fenster senden, indem Sie sendEvent() und postEvent() verwenden.
  • Es analysiert gängige Befehlszeilenargumente und setzt seinen internen Status entsprechend. Siehe constructor documentation unten für weitere Details.
  • Es ermöglicht die Lokalisierung von Zeichenketten, die für den Benutzer über translate() sichtbar sind.
  • Es stellt einige magische Objekte wie clipboard() zur Verfügung.
  • Es weiß über die Fenster der Anwendung Bescheid. Sie können mit topLevelAt() abfragen, welches Fenster sich an einer bestimmten Position befindet, eine Liste von topLevelWindows() abrufen, usw.
  • Es verwaltet die Handhabung des Mauszeigers in der Anwendung, siehe setOverrideCursor()
  • Es bietet Unterstützung für eine ausgefeilte Sitzungsverwaltung. Dies ermöglicht es Anwendungen, sich elegant zu beenden, wenn sich der Benutzer abmeldet, einen Shutdown-Prozess abzubrechen, wenn eine Beendigung nicht möglich ist, und sogar den gesamten Zustand der Anwendung für eine zukünftige Sitzung zu bewahren. Siehe isSessionRestored(), sessionId() und commitDataRequest() und saveStateRequest() für Details.

Da das QGuiApplication-Objekt so viele Initialisierungen vornimmt, muss es erstellt werden, bevor andere Objekte, die mit der Benutzeroberfläche zu tun haben, erstellt werden. QGuiApplication arbeitet auch mit gängigen Kommandozeilenargumenten. Daher ist es normalerweise eine gute Idee, es zu erstellen , bevor irgendeine Interpretation oder Änderung von argv in der Anwendung selbst vorgenommen wird.

Gruppen von Funktionen
SystemeinstellungendesktopSettingsAware(), setDesktopSettingsAware(), styleHints(), palette(), setPalette(), font(), setFont().
Ereignisbehandlungexec(), processEvents(), exit(), quit(). sendEvent(), postEvent(), sendPostedEvents(), removePostedEvents(), notify().
WindowsallWindows(), topLevelWindows(), focusWindow(), clipboard(), topLevelAt().
Erweiterte Cursor-BehandlungoverrideCursor(), setOverrideCursor(), restoreOverrideCursor().
SitzungsverwaltungisSessionRestored(), sessionId(), commitDataRequest(), saveStateRequest().
VerschiedenesstartingUp(), closingDown().

Siehe auch QCoreApplication, QAbstractEventDispatcher, und QEventLoop.

Dokumentation der Eigenschaften

applicationDisplayName : QString

Diese Eigenschaft enthält den für den Benutzer sichtbaren Namen dieser Anwendung

Dieser Name wird dem Benutzer angezeigt, z. B. in Fenstertiteln. Er kann, falls erforderlich, übersetzt werden.

Wenn er nicht gesetzt ist, wird standardmäßig der Name der Anwendung angezeigt.

Zugriffsfunktionen:

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

Melder-Signal:

void applicationDisplayNameChanged()

Siehe auch applicationName.

desktopFileName : QString

Diese Eigenschaft enthält den Basisnamen des Desktop-Eintrags für diese Anwendung

Dies ist der Dateiname ohne den vollständigen Pfad oder die nachgestellte ".desktop"-Erweiterung des Desktop-Eintrags, der diese Anwendung gemäß der freedesktop-Desktop-Eintragsspezifikation darstellt.

Diese Eigenschaft gibt einen genauen Hinweis darauf, welcher Desktop-Eintrag die Anwendung repräsentiert und wird vom Windowing-System benötigt, um solche Informationen ohne Rückgriff auf ungenaue Heuristiken abzurufen.

Die neueste Version der freedesktop desktop entry Spezifikation kann hier bezogen werden.

Zugriffsfunktionen:

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

layoutDirection : Qt::LayoutDirection

Diese Eigenschaft enthält die Standard-Layoutrichtung für diese Anwendung

Beim Systemstart oder wenn die Richtung explizit auf Qt::LayoutDirectionAuto gesetzt wird, hängt die Standard-Layoutrichtung von der Sprache der Anwendung ab.

Das Notifier-Signal wurde in Qt 5.4 eingeführt.

Zugriffsfunktionen:

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

Notifier-Signal:

void layoutDirectionChanged(Qt::LayoutDirection direction)

Siehe auch QWidget::layoutDirection, isLeftToRight(), und isRightToLeft().

[read-only] platformName : const QString

Diese Eigenschaft enthält den Namen des zugrunde liegenden Plattform-Plugins.

Die QPA-Plattform-Plugins befinden sich unter qtbase\src\plugins\platforms. Zum Zeitpunkt der Erstellung dieses Artikels werden die folgenden Plattform-Plugin-Namen unterstützt:

  • android
  • cocoa ist ein Plattform-Plugin für macOS.
  • directfb
  • eglfs ist ein Plattform-Plugin für die Ausführung von Qt5-Anwendungen auf EGL und OpenGL ES 2.0 ohne ein tatsächliches Windowing-System (wie X11 oder Wayland). Für weitere Informationen, siehe EGLFS.
  • ios (auch für tvOS verwendet)
  • linuxfb schreibt direkt in den Framebuffer. Für weitere Informationen, siehe LinuxFB.
  • minimal wird als Beispiel für Entwickler bereitgestellt, die ihre eigenen Plattform-Plugins schreiben wollen. Sie können das Plugin jedoch auch verwenden, um GUI-Anwendungen in Umgebungen ohne GUI auszuführen, z. B. auf Servern.
  • minimalegl ist ein Beispiel-Plugin.
  • offscreen
  • qnx
  • windows
  • wayland ist ein Plattform-Plugin für das Wayland-Display-Server-Protokoll, das auf einigen Linux-Desktops und eingebetteten Systemen verwendet wird.
  • xcb ist ein Plugin für das X11-Fenstersystem, das auf einigen Desktop-Linux-Plattformen verwendet wird.

Hinweis: Der Aufruf dieser Funktion ohne QGuiApplication gibt den Standard-Plattformnamen zurück, falls vorhanden. Der Standard-Plattformname wird nicht durch die Befehlszeilenoption -platform oder die Umgebungsvariable QT_QPA_PLATFORM beeinflusst.

Weitere Informationen über die Plattform-Plugins für Embedded Linux-Geräte finden Sie unter Qt für Embedded Linux.

Zugriffsfunktionen:

QString platformName()

[read-only] primaryScreen : QScreen* const

Diese Eigenschaft enthält den primären (oder Standard-) Bildschirm der Anwendung.

Dies ist der Bildschirm, auf dem QWindows anfänglich angezeigt wird, sofern nicht anders angegeben.

Das Signal primaryScreenChanged wurde in Qt 5.6 eingeführt.

Zugriffsfunktionen:

QScreen *primaryScreen()

Notifier-Signal:

void primaryScreenChanged(QScreen *screen)

Siehe auch screens().

quitOnLastWindowClosed : bool

Diese Eigenschaft legt fest, ob die Anwendung implizit beendet wird, wenn das letzte Fenster geschlossen wird.

Die Voreinstellung ist true.

Wenn diese Eigenschaft true lautet, versucht die Anwendung zu beenden, wenn das letzte sichtbare primäre Fenster (d. h. das Fenster der obersten Ebene ohne übergeordnetes Element) geschlossen wird.

Beachten Sie, dass der Beendigungsversuch nicht unbedingt zum Beenden der Anwendung führt, z. B. wenn noch aktive QEventLoopLocker Instanzen vorhanden sind oder das Ereignis QEvent::Quit ignoriert wird.

Zugriffsfunktionen:

bool quitOnLastWindowClosed()
void setQuitOnLastWindowClosed(bool quit)

Siehe auch quit() und QWindow::close().

windowIcon : QIcon

Diese Eigenschaft enthält das Standardsymbol des Fensters

Zugriffsfunktionen:

QIcon windowIcon()
void setWindowIcon(const QIcon &icon)

Siehe auch QWindow::setIcon() und Einstellen des Anwendungssymbols.

Dokumentation der Mitgliedsfunktionen

QGuiApplication::QGuiApplication(int &argc, char **argv)

Initialisiert das Fenstersystem und konstruiert ein Anwendungsobjekt mit argc Befehlszeilenargumenten in argv.

Warnung: Die Daten, auf die argc und argv verweisen, müssen während der gesamten Lebensdauer des QGuiApplication-Objekts gültig bleiben. Darüber hinaus muss argc größer als Null sein und argv muss mindestens eine gültige Zeichenkette enthalten.

Der globale Zeiger qApp bezieht sich auf dieses Anwendungsobjekt. Es sollte nur ein Anwendungsobjekt erstellt werden.

Dieses Anwendungsobjekt muss vor allen paint devices (einschließlich Pixmaps, Bitmaps usw.) erstellt werden.

Hinweis: argc und argv können sich ändern, wenn Qt erkannte Kommandozeilenargumente entfernt.

Unterstützte Kommandozeilenoptionen

Alle Qt-Programme unterstützen automatisch eine Reihe von Kommandozeilenoptionen, die es erlauben, die Art und Weise, wie Qt mit dem Fenstersystem interagiert, zu modifizieren. Einige der Optionen sind auch über Umgebungsvariablen zugänglich, was die bevorzugte Form ist, wenn die Anwendung GUI-Unterprozesse oder andere Anwendungen starten kann (Umgebungsvariablen werden an Kindprozesse vererbt). Im Zweifelsfall sollten Sie die Umgebungsvariablen verwenden.

Die derzeit unterstützten Optionen sind die folgenden:

  • -platform platformName[:options], spezifiziert das Qt Platform Abstraction (QPA) Plugin.

    Setzt die Umgebungsvariable QT_QPA_PLATFORM außer Kraft.

  • -platformpluginpath path, gibt den Pfad zu den Plattform-Plugins an.

    Setzt die Umgebungsvariable QT_QPA_PLATFORM_PLUGIN_PATH außer Kraft.

  • -platformtheme platformTheme, legt das Plattformthema fest.

    Setzt die Umgebungsvariable QT_QPA_PLATFORMTHEME außer Kraft.

  • -plugin plugin, gibt zusätzliche Plugins an, die geladen werden sollen. Das Argument kann mehrfach vorkommen.

    Wird mit den Plugins in der Umgebungsvariablen QT_QPA_GENERIC_PLUGINS verkettet.

  • -qmljsdebugger=Aktiviert den QML/JS-Debugger mit einem bestimmten Port. Der Wert muss das Format port:1234 [,block] haben, wobei block optional ist und die Anwendung warten lässt, bis sich ein Debugger mit ihr verbindet.
  • -qwindowgeometry geometry, gibt die Fenstergeometrie für das Hauptfenster in der X11-Syntax an. Zum Beispiel: -qwindowgeometry 100x100+50+50
  • -qwindowicon, setzt das Standard-Fenstersymbol
  • -qwindowtitle, legt den Titel des ersten Fensters fest
  • -reverse, setzt die Layout-Richtung der Anwendung auf Qt::RightToLeft. Diese Option ist zur Unterstützung der Fehlersuche gedacht und sollte nicht in der Produktion verwendet werden. Der Standardwert wird automatisch aus dem Gebietsschema des Benutzers ermittelt (siehe auch QLocale::textDirection()).
  • -session Sitzung, stellt die Anwendung von einer früheren Sitzung wieder her.

Die folgenden Standard-Befehlszeilenoptionen sind für X11 verfügbar:

  • -display hostname:screen_number, schaltet die Anzeige auf X11 um.

    Setzt die Umgebungsvariable DISPLAY außer Kraft.

  • -geometry geometry, wie -qwindowgeometry.

Plattformspezifische Argumente

Sie können plattformspezifische Argumente für die Option -platform angeben. Geben Sie diese nach dem Namen des Plattform-Plugins und nach einem Doppelpunkt als kommagetrennte Liste an. Zum Beispiel: -platform windows:dialogs=xp,fontengine=freetype.

Die folgenden Parameter sind für -platform windows verfügbar:

  • altgr, erkennt die Taste AltGr, die auf einigen Tastaturen als Qt::GroupSwitchModifier zu finden ist (seit Qt 5.12).
  • darkmode=[0|1|2] steuert, wie Qt auf die Aktivierung des Dark Mode für Anwendungen reagiert, der in Windows 10 1903 eingeführt wurde (seit Qt 5.15).

    Ein Wert von 0 deaktiviert die Unterstützung des dunklen Modus.

    Ein Wert von 1 veranlasst Qt, die Fensterränder auf schwarz zu schalten, wenn der Dunkle Modus für Anwendungen aktiviert ist und kein High Contrast Theme verwendet wird. Dies ist für Anwendungen gedacht, die ihr eigenes Theming implementieren.

    Ein Wert von 2 bewirkt zusätzlich, dass der Windows Vista-Stil deaktiviert wird und zum Windows-Stil unter Verwendung einer vereinfachten Palette im dunklen Modus gewechselt wird. Dies ist derzeit experimentell, bis ein neuer Stil eingeführt wird, der sich an den dunklen Modus anpasst.

    Ab Qt 6.5 ist der Standardwert 2; um die Unterstützung des dunklen Modus zu deaktivieren, setzen Sie den Wert auf 0 oder 1.

  • dialogs=[xp|none] xp verwendet native Dialoge im XP-Stil und deaktiviert sie. none
  • fontengine=freetype, verwendet die FreeType-Schriftart-Engine.
  • fontengine=gdi, verwendet die alte GDI-basierte Schriftdatenbank und verwendet standardmäßig die GDI-Schriftart-Engine (die ansonsten nur für einige Schriftarten oder Schrifteigenschaften verwendet wird) (seit Qt 6.8).
  • menus=[native|none]steuert die Verwendung von nativen Menüs.

    Native Menüs werden unter Verwendung der Win32-API implementiert und sind einfacher als QMenu-basierte Menüs, da sie beispielsweise das Platzieren von Widgets oder das Ändern von Eigenschaften wie Schriftarten erlauben und keine Hover-Signale bieten. Sie sind hauptsächlich für Qt Quick gedacht. Standardmäßig werden sie verwendet, wenn die Anwendung keine Instanz von QApplication ist oder für Qt Quick Controls 2 Anwendungen (seit Qt 5.10).

  • nocolorfonts Deaktivieren Sie DirectWrite Color-Schriften (seit Qt 5.8).
  • nodirectwrite Schalten Sie DirectWrite-Schriften aus (seit Qt 5.8). Damit wird implizit auch die GDI-Font-Engine ausgewählt.
  • nomousefromtouch Ignoriert Mausereignisse, die vom Betriebssystem aus Touch-Ereignissen synthetisiert werden.
  • nowmpointer Schaltet von der Behandlung von Pointer Input Messages auf Legacy-Mausbehandlung um (seit Qt 5.12).
  • reverse Aktiviert den Rechts-nach-Links-Modus (experimentell). Windows-Titelleisten werden in Rechts-nach-Links-Sprachumgebungen entsprechend angezeigt (seit Qt 5.13).
  • tabletabsoluterange=<value> Setzt einen Wert für die Mausmoduserkennung von WinTab-Tabletts (Legacy, seit Qt 5.3).

Der folgende Parameter ist für -platform cocoa (unter macOS) verfügbar:

  • fontengine=freetypeVerwendet die FreeType-Schriftart-Engine.

Weitere Informationen über die plattformspezifischen Argumente, die für eingebettete Linux-Plattformen verfügbar sind, finden Sie unter Qt für Embedded Linux.

Siehe auch arguments() und QGuiApplication::platformName.

[virtual noexcept] QGuiApplication::~QGuiApplication()

Zerstört die Anwendung.

[static] QWindowList QGuiApplication::allWindows()

Gibt eine Liste aller Fenster in der Anwendung zurück.

Die Liste ist leer, wenn es keine Fenster gibt.

Siehe auch topLevelWindows().

[static] Qt::ApplicationState QGuiApplication::applicationState()

Gibt den aktuellen Zustand der Anwendung zurück.

Sie können auf Änderungen des Anwendungsstatus reagieren, um Aktionen wie das Anhalten/Wiederaufnehmen von CPU-intensiven Aufgaben, das Freigeben/Laden von Ressourcen oder das Speichern/Wiederherstellen von Anwendungsdaten durchzuführen.

[signal] void QGuiApplication::applicationStateChanged(Qt::ApplicationState state)

Dieses Signal wird ausgegeben, wenn sich die state der Anwendung ändert.

Siehe auch applicationState().

[static] void QGuiApplication::changeOverrideCursor(const QCursor &cursor)

Ändert den derzeit aktiven Anwendungsüberschreibungscursor in cursor.

Diese Funktion hat keine Wirkung, wenn setOverrideCursor() nicht aufgerufen wurde.

Siehe auch setOverrideCursor(), overrideCursor(), restoreOverrideCursor(), und QWidget::setCursor().

[static] QClipboard *QGuiApplication::clipboard()

Gibt das Objekt für die Interaktion mit der Zwischenablage zurück.

[signal] void QGuiApplication::commitDataRequest(QSessionManager &manager)

Dieses Signal betrifft die Sitzungsverwaltung. Es wird ausgegeben, wenn QSessionManager möchte, dass die Anwendung alle ihre Daten festschreibt.

Normalerweise bedeutet dies, dass alle geöffneten Dateien gespeichert werden, nachdem der Benutzer seine Zustimmung gegeben hat. Außerdem möchten Sie vielleicht eine Möglichkeit vorsehen, mit der der Benutzer das Herunterfahren abbrechen kann.

Sie sollten die Anwendung nicht innerhalb dieses Signals beenden. Stattdessen kann der Sitzungsmanager dies je nach Kontext nachträglich tun oder auch nicht.

Warnung: Innerhalb dieses Signals ist keine Benutzerinteraktion möglich, es sei denn, Sie bitten die manager um ausdrückliche Erlaubnis. Siehe QSessionManager::allowsInteraction() und QSessionManager::allowsErrorInteraction() für Details und Anwendungsbeispiele.

Hinweis: Sie sollten Qt::DirectConnection verwenden, wenn Sie sich mit diesem Signal verbinden.

Siehe auch isSessionRestored(), sessionId(), saveStateRequest(), und Sitzungsverwaltung.

[static] bool QGuiApplication::desktopSettingsAware()

Gibt true zurück, wenn Qt so eingestellt ist, dass es die Standardfarben, -schriften usw. des Systems verwendet; andernfalls wird false zurückgegeben. Die Vorgabe ist true.

Siehe auch setDesktopSettingsAware().

qreal QGuiApplication::devicePixelRatio() const

Gibt das höchste im System gefundene Pixelverhältnis des Bildschirmgeräts zurück. Dies ist das Verhältnis zwischen physischen Pixeln und geräteunabhängigen Pixeln.

Verwenden Sie diese Funktion nur, wenn Sie nicht wissen, welches Fenster Sie anvisieren. Wenn Sie das Zielfenster kennen, verwenden Sie stattdessen QWindow::devicePixelRatio().

Siehe auch QWindow::devicePixelRatio().

[override virtual protected] bool QGuiApplication::event(QEvent *e)

Reimplements: QCoreApplication::event(QEvent *e).

[static] int QGuiApplication::exec()

Tritt in die Hauptereignisschleife ein und wartet, bis exit() aufgerufen wird, und gibt dann den Wert zurück, der auf exit() gesetzt wurde (der 0 ist, wenn exit() über quit() aufgerufen wird).

Es ist notwendig, diese Funktion aufzurufen, um die Ereignisbehandlung zu starten. Die Hauptereignisschleife empfängt Ereignisse vom Fenstersystem und gibt diese an die Anwendungs-Widgets weiter.

Im Allgemeinen kann vor dem Aufruf von exec() keine Benutzerinteraktion stattfinden.

Um Ihre Anwendung eine Leerlaufverarbeitung durchführen zu lassen, z. B. die Ausführung einer speziellen Funktion, wenn keine Ereignisse anstehen, verwenden Sie QChronoTimer mit 0ns Timeout. Fortschrittlichere Idle-Processing-Schemata können mit processEvents() erreicht werden.

Wir empfehlen Ihnen, den Aufräumcode mit dem Signal aboutToQuit() zu verbinden, anstatt ihn in die Funktion main() Ihrer Anwendung zu integrieren. Der Grund dafür ist, dass auf einigen Plattformen der Aufruf QApplication::exec() möglicherweise nicht zurückkehrt.

Siehe auch quitOnLastWindowClosed, quit(), exit(), processEvents(), und QCoreApplication::exec().

[static] QObject *QGuiApplication::focusObject()

Gibt die Adresse QObject im derzeit aktiven Fenster zurück, die der endgültige Empfänger von Ereignissen ist, die mit dem Fokus verbunden sind, wie z. B. Tastenereignisse.

[signal] void QGuiApplication::focusObjectChanged(QObject *focusObject)

Dieses Signal wird ausgegeben, wenn der letzte Empfänger von Ereignissen, die an den Fokus gebunden sind, geändert wird. focusObject ist der neue Empfänger.

Siehe auch focusObject().

[static] QWindow *QGuiApplication::focusWindow()

Gibt die QWindow zurück, die Ereignisse empfängt, die mit dem Fokus verbunden sind, wie z. B. Tastenereignisse.

Siehe auch QWindow::requestActivate().

[signal] void QGuiApplication::focusWindowChanged(QWindow *focusWindow)

Dieses Signal wird ausgegeben, wenn sich das fokussierte Fenster ändert. focusWindow ist das neue fokussierte Fenster.

Siehe auch focusWindow().

[static] QFont QGuiApplication::font()

Gibt die Standardschriftart der Anwendung zurück.

Siehe auch setFont().

[signal] void QGuiApplication::fontDatabaseChanged()

Dieses Signal wird ausgegeben, wenn sich die verfügbaren Schriftarten geändert haben.

Dies kann geschehen, wenn Anwendungsschriftarten hinzugefügt oder entfernt werden oder wenn sich die Systemschriftarten ändern.

Siehe auch QFontDatabase::addApplicationFont(), QFontDatabase::addApplicationFontFromData(), QFontDatabase::removeAllApplicationFonts(), und QFontDatabase::removeApplicationFont().

[static] Qt::HighDpiScaleFactorRoundingPolicy QGuiApplication::highDpiScaleFactorRoundingPolicy()

Gibt die Rundungsregel für den Skalierungsfaktor für hohe DPIs zurück.

Siehe auch setHighDpiScaleFactorRoundingPolicy().

[static] QInputMethod *QGuiApplication::inputMethod()

gibt die Eingabemethode zurück.

Die input-Methode gibt Eigenschaften über den Zustand und die Position der virtuellen Tastatur zurück. Sie liefert auch Informationen über die Position des aktuell fokussierten Eingabeelements.

Siehe auch QInputMethod.

[static] bool QGuiApplication::isLeftToRight()

Gibt true zurück, wenn die Layout-Richtung der Anwendung Qt::LeftToRight ist; andernfalls wird false zurückgegeben.

Siehe auch layoutDirection() und isRightToLeft().

[static] bool QGuiApplication::isRightToLeft()

Gibt true zurück, wenn die Layout-Richtung der Anwendung Qt::RightToLeft ist; andernfalls wird false zurückgegeben.

Siehe auch layoutDirection() und isLeftToRight().

bool QGuiApplication::isSavingSession() const

Gibt true zurück, wenn die Anwendung gerade die Sitzung speichert; andernfalls wird false zurückgegeben.

Dies ist true, wenn commitDataRequest() und saveStateRequest() ausgegeben werden, aber auch, wenn die Fenster danach von der Sitzungsverwaltung geschlossen werden.

Siehe auch sessionId(), commitDataRequest(), und saveStateRequest().

bool QGuiApplication::isSessionRestored() const

Gibt true zurück, wenn die Anwendung aus einer früheren Sitzung wiederhergestellt wurde; andernfalls wird false zurückgegeben.

Siehe auch sessionId(), commitDataRequest(), und saveStateRequest().

[static] Qt::KeyboardModifiers QGuiApplication::keyboardModifiers()

Gibt den aktuellen Zustand der Modifier-Tasten auf der Tastatur zurück. Der aktuelle Zustand wird synchron aktualisiert, wenn die Ereigniswarteschlange von Ereignissen geleert wird, die den Zustand der Tastatur spontan ändern (QEvent::KeyPress und QEvent::KeyRelease ).

Es ist zu beachten, dass dies möglicherweise nicht die tatsächlichen Tasten widerspiegelt, die zum Zeitpunkt des Aufrufs auf dem Eingabegerät gehalten werden, sondern die Modifikatoren, wie sie zuletzt in einem der oben genannten Ereignisse gemeldet wurden. Wenn keine Tasten gehalten werden, wird Qt::NoModifier zurückgegeben.

Siehe auch mouseButtons() und queryKeyboardModifiers().

[signal] void QGuiApplication::lastWindowClosed()

Dieses Signal wird von exec() ausgegeben, wenn das letzte sichtbare primäre Fenster (d. h. das Fenster der obersten Ebene ohne übergeordnetes Element) geschlossen wird.

Standardmäßig wird QGuiApplication beendet, nachdem dieses Signal ausgegeben wurde. Diese Funktion kann ausgeschaltet werden, indem quitOnLastWindowClosed auf false gesetzt wird.

Siehe auch QWindow::close(), QWindow::isTopLevel(), und QWindow::transientParent().

Gibt das zuletzt angezeigte modale Fenster zurück. Wenn keine modalen Fenster sichtbar sind, gibt diese Funktion Null zurück.

Ein modales Fenster ist ein Fenster, dessen modality Eigenschaft auf Qt::WindowModal oder Qt::ApplicationModal gesetzt ist. Ein modales Fenster muss geschlossen werden, bevor der Benutzer mit anderen Teilen des Programms fortfahren kann.

Modale Fenster sind in einem Stapel organisiert. Diese Funktion gibt das modale Fenster zurück, das sich oben auf dem Stapel befindet.

Siehe auch Qt::WindowModality und QWindow::setModality().

[static] Qt::MouseButtons QGuiApplication::mouseButtons()

Gibt den aktuellen Zustand der Maustasten zurück. Der aktuelle Zustand wird synchron aktualisiert, wenn die Ereigniswarteschlange von Ereignissen geleert wird, die den Mauszustand spontan ändern (QEvent::MouseButtonPress und QEvent::MouseButtonRelease ).

Es ist zu beachten, dass dies möglicherweise nicht die tatsächlichen Tasten widerspiegelt, die zum Zeitpunkt des Aufrufs auf dem Eingabegerät gehalten werden, sondern vielmehr die Maustasten, wie sie zuletzt in einem der oben genannten Ereignisse gemeldet wurden. Wenn keine Maustasten gedrückt werden, wird Qt::NoButton zurückgegeben.

Siehe auch keyboardModifiers().

template <typename QNativeInterface> QNativeInterface *QGuiApplication::nativeInterface() const

Gibt eine native Schnittstelle des angegebenen Typs für die Anwendung zurück.

Diese Funktion bietet Zugriff auf die plattformspezifische Funktionalität von QGuiApplication, wie sie im QNativeInterface Namespace definiert ist:

QNativeInterface::QWaylandApplication

Native Schnittstelle zu einer Wayland-Anwendung

QNativeInterface::QX11Application

Native Schnittstelle zu einer X11-Anwendung

Wenn die angeforderte Schnittstelle nicht verfügbar ist, wird nullptr zurückgegeben.

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

Reimplements: QCoreApplication::notify(QObject *Empfänger, QEvent *Event).

[static] QCursor *QGuiApplication::overrideCursor()

Gibt den aktiven Anwendungsüberschreibungscursor zurück.

Diese Funktion gibt nullptr zurück, wenn kein Anwendungscursor definiert wurde (d. h. der interne Cursor-Stapel ist leer).

Siehe auch setOverrideCursor() und restoreOverrideCursor().

[static] QPalette QGuiApplication::palette()

Gibt die aktuelle Anwendungspalette zurück.

Rollen, die nicht explizit festgelegt wurden, spiegeln das Plattformthema des Systems wider.

Siehe auch setPalette().

[static] Qt::KeyboardModifiers QGuiApplication::queryKeyboardModifiers()

Fragt den Zustand der Modifier-Tasten auf der Tastatur ab und gibt ihn zurück. Im Gegensatz zu keyboardModifiers gibt diese Methode die tatsächlichen Tasten zurück, die zum Zeitpunkt des Methodenaufrufs auf dem Eingabegerät gehalten werden.

Sie ist nicht davon abhängig, dass die Tastendruck-Ereignisse von diesem Prozess empfangen wurden, wodurch es möglich ist, die Modifikatoren zu überprüfen, während man z. B. ein Fenster bewegt. Beachten Sie, dass Sie in den meisten Fällen keyboardModifiers() verwenden sollten, das schneller und genauer ist, da es den Zustand der Modifikatoren enthält, wie er war, als das aktuell verarbeitete Ereignis empfangen wurde.

Siehe auch keyboardModifiers().

[static] void QGuiApplication::restoreOverrideCursor()

Macht den letzten setOverrideCursor() rückgängig.

Wenn setOverrideCursor() zweimal aufgerufen wurde, wird durch den Aufruf von restoreOverrideCursor() der erste gesetzte Cursor aktiviert. Ein zweiter Aufruf dieser Funktion stellt die ursprünglichen Cursor der Widgets wieder her.

Siehe auch setOverrideCursor() und overrideCursor().

[signal] void QGuiApplication::saveStateRequest(QSessionManager &manager)

Dieses Signal befasst sich mit der Sitzungsverwaltung. Es wird aufgerufen, wenn session manager möchte, dass die Anwendung ihren Zustand für eine zukünftige Sitzung beibehält.

Ein Texteditor würde zum Beispiel eine temporäre Datei erstellen, die den aktuellen Inhalt der Bearbeitungspuffer, die Position des Cursors und andere Aspekte der aktuellen Bearbeitungssitzung enthält.

Sie sollten die Anwendung niemals innerhalb dieses Signals beenden. Stattdessen kann der Sitzungsmanager dies je nach Kontext nachträglich tun oder auch nicht. Darüber hinaus werden die meisten Sitzungsmanager höchstwahrscheinlich unmittelbar nach dem Start der Anwendung einen gespeicherten Zustand anfordern. Dies ermöglicht es dem Sitzungsmanager, sich über die Neustartpolitik der Anwendung zu informieren.

Warnung: Innerhalb dieses Signals ist keine Benutzerinteraktion möglich, es sei denn, Sie bitten die manager um ausdrückliche Erlaubnis. Siehe QSessionManager::allowsInteraction() und QSessionManager::allowsErrorInteraction() für Details.

Hinweis: Sie sollten Qt::DirectConnection verwenden, wenn Sie sich mit diesem Signal verbinden.

Siehe auch isSessionRestored(), sessionId(), commitDataRequest(), und Sitzungsmanagement.

[signal] void QGuiApplication::screenAdded(QScreen *screen)

Dieses Signal wird ausgegeben, wenn dem System ein neuer Bildschirm screen hinzugefügt wurde.

Siehe auch screens(), primaryScreen, und screenRemoved().

[static] QScreen *QGuiApplication::screenAt(const QPoint &point)

Gibt den Bildschirm unter point zurück, oder nullptr, wenn er sich außerhalb eines Bildschirms befindet.

point bezieht sich auf die virtualGeometry() jedes Satzes von virtuellen Geschwistern. Wenn der Punkt mehr als einem Satz virtueller Geschwister zugeordnet ist, wird die erste Übereinstimmung zurückgegeben. Wenn Sie nur die virtuellen Desktop-Geschwister eines bekannten Bildschirms suchen möchten (z. B. Geschwister des Bildschirms Ihres Anwendungsfensters QWidget::windowHandle()->screen()), verwenden Sie QScreen::virtualSiblingAt().

[signal] void QGuiApplication::screenRemoved(QScreen *screen)

Dieses Signal wird immer dann ausgegeben, wenn ein screen aus dem System entfernt wird. Es bietet die Möglichkeit, die Fenster auf dem Bildschirm zu verwalten, bevor Qt sie wieder auf den primären Bildschirm verschiebt.

Siehe auch screens(), screenAdded(), QObject::destroyed(), und QWindow::setScreen().

[static] QList<QScreen *> QGuiApplication::screens()

Gibt eine Liste aller Bildschirme zurück, die mit dem Windowing-System verbunden sind, mit dem die Anwendung verbunden ist.

QString QGuiApplication::sessionId() const

Gibt den Bezeichner der aktuellen Sitzung zurück.

Wurde die Anwendung aus einer früheren Sitzung wiederhergestellt, ist dieser Bezeichner derselbe wie in der vorherigen Sitzung. Der Sitzungsbezeichner ist garantiert eindeutig, sowohl für verschiedene Anwendungen als auch für verschiedene Instanzen derselben Anwendung.

Siehe auch isSessionRestored(), sessionKey(), commitDataRequest(), und saveStateRequest().

QString QGuiApplication::sessionKey() const

Gibt den Sitzungsschlüssel der aktuellen Sitzung zurück.

Wenn die Anwendung aus einer früheren Sitzung wiederhergestellt wurde, ist dieser Schlüssel derselbe wie beim Beenden der vorherigen Sitzung.

Der Sitzungsschlüssel ändert sich jedes Mal, wenn die Sitzung gespeichert wird. Wenn das Herunterfahren abgebrochen wird, wird beim erneuten Herunterfahren ein anderer Sitzungsschlüssel verwendet.

Siehe auch isSessionRestored(), sessionId(), commitDataRequest(), und saveStateRequest().

[slot, since 6.5] void QGuiApplication::setBadgeNumber(qint64 number)

Setzt das Abzeichen der Anwendung auf number.

Nützlich, um dem Benutzer eine Rückmeldung über die Anzahl der ungelesenen Nachrichten oder Ähnliches zu geben.

Das Abzeichen wird dem Symbol der Anwendung im Dock unter macOS, dem Startbildschirmsymbol unter iOS oder der Taskleiste unter Windows und Linux überlagert.

Wenn die Zahl außerhalb des von der Plattform unterstützten Bereichs liegt, wird die Zahl auf den unterstützten Bereich geklemmt. Wenn die Zahl nicht in den Ausweis passt, wird die Zahl möglicherweise visuell ausgeblendet.

Setzt man die Zahl auf 0, wird das Badge gelöscht.

Diese Funktion wurde in Qt 6.5 eingeführt.

Siehe auch applicationName.

[static] void QGuiApplication::setDesktopSettingsAware(bool on)

Legt fest, ob Qt die Standard-Farben, -Schriften usw. des Systems für on verwenden soll. Standardmäßig ist dies true.

Diese Funktion muss vor der Erstellung des QGuiApplication Objekts aufgerufen werden, etwa so:

int main(int argc, char *argv[])
{
    QApplication::setDesktopSettingsAware(false);
    QApplication app(argc, argv);
    // ...
    return app.exec();
}

Siehe auch desktopSettingsAware().

[static] void QGuiApplication::setFont(const QFont &font)

Ändert die Standardschriftart der Anwendung in font.

Siehe auch font().

[static] void QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy policy)

Legt die Rundungsrichtlinie für den Skalierungsfaktor mit hohem DPI für die Anwendung fest. Die policy entscheidet, wie nicht-ganzzahlige Skalierungsfaktoren (z. B. Windows 150%) behandelt werden.

Die beiden wichtigsten Optionen sind, ob gebrochene Skalenfaktoren auf eine ganze Zahl gerundet werden sollen oder nicht. Wenn Sie den Skalierungsfaktor unverändert lassen, entspricht die Größe der Benutzeroberfläche genau der Einstellung des Betriebssystems, aber es kann zu Zeichenfehlern kommen, zum Beispiel beim Windows-Stil.

Wenn eine Rundung erwünscht ist, sollte als Nächstes die Art der Rundung festgelegt werden. Mathematisch korrektes Runden wird unterstützt, führt aber möglicherweise nicht zu den besten visuellen Ergebnissen: Überlegen Sie, ob Sie 1,5x als 1x ("small UI") oder als 2x ("large UI") darstellen wollen. Siehe Qt::HighDpiScaleFactorRoundingPolicy enum für eine vollständige Liste aller Optionen.

Diese Funktion muss vor der Erstellung des Anwendungsobjekts aufgerufen werden. Der Zugriffswert QGuiApplication::highDpiScaleFactorRoundingPolicy() spiegelt die Umgebung wider, wenn er gesetzt ist.

Der Standardwert ist Qt::HighDpiScaleFactorRoundingPolicy::PassThrough.

Siehe auch highDpiScaleFactorRoundingPolicy().

[static] void QGuiApplication::setOverrideCursor(const QCursor &cursor)

Setzt den Anwendungs-Override-Cursor auf cursor.

Anwendungsüberschreibungscursor sind dafür gedacht, dem Benutzer zu zeigen, dass sich die Anwendung in einem besonderen Zustand befindet, z. B. während eines Vorgangs, der einige Zeit dauern kann.

Dieser Cursor wird in allen Widgets der Anwendung angezeigt, bis restoreOverrideCursor() oder ein anderer setOverrideCursor() aufgerufen wird.

Anwendungscursor werden auf einem internen Stack gespeichert. setOverrideCursor() schiebt den Cursor auf den Stack, und restoreOverrideCursor() holt den aktiven Cursor vom Stack. changeOverrideCursor Die Funktion setOverrideCursor() ändert den derzeit aktiven Override-Cursor der Anwendung.

Auf jede setOverrideCursor() muss schließlich eine entsprechende restoreOverrideCursor() folgen, sonst wird der Stapel nie geleert.

Beispiel:

QGuiApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
calculateHugeMandelbrot();              // lunch time...
QGuiApplication::restoreOverrideCursor();

Siehe auch overrideCursor(), restoreOverrideCursor(), changeOverrideCursor(), und QWidget::setCursor().

[static] void QGuiApplication::setPalette(const QPalette &pal)

Ändert die Palette der Anwendung in pal.

Die Farbrollen aus dieser Palette werden mit dem Plattformthema des Systems kombiniert, um die endgültige Palette für die Anwendung zu bilden.

Siehe auch palette().

[static] QStyleHints *QGuiApplication::styleHints()

Gibt die Style Hints der Anwendung zurück.

Die Style Hints kapseln eine Reihe von plattformabhängigen Eigenschaften wie Doppelklick-Intervalle, Auswahl in voller Breite und andere.

Die Hinweise können verwendet werden, um eine engere Integration mit der zugrunde liegenden Plattform zu erreichen.

Siehe auch QStyleHints.

[static] void QGuiApplication::sync()

Funktion, die verwendet werden kann, um den Qt-Status mit dem Status des Fenstersystems zu synchronisieren.

Diese Funktion leert zunächst Qts-Ereignisse durch den Aufruf von QCoreApplication::processEvents(), dann synchronisiert sich das Plattform-Plugin mit dem Fenstersystem, und schließlich werden Qts-Ereignisse durch einen weiteren Aufruf von QCoreApplication::processEvents() abgeholt;

Diese Funktion ist zeitaufwändig und ihre Verwendung wird nicht empfohlen.

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

Gibt das Fenster der obersten Ebene an der angegebenen Position pos zurück.

[static] QWindowList QGuiApplication::topLevelWindows()

Gibt eine Liste der Fenster der obersten Ebene in der Anwendung zurück.

Siehe auch allWindows().

Makro-Dokumentation

qGuiApp

Ein globaler Zeiger, der auf das eindeutige Anwendungsobjekt verweist. Nur gültig für die Verwendung, wenn dieses Objekt ein QGuiApplication ist.

Siehe auch QCoreApplication::instance() und 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.