Auf dieser Seite

QGuiApplication Class

Die Klasse „QGuiApplication“ verwaltet den Ablauf und die wichtigsten Einstellungen der GUI-Anwendung. Mehr...

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

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

Neu implementierte ö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()

Neu implementierte geschützte Funktionen

virtual bool event(QEvent *e) override

Makros

Ausführliche Beschreibung

QGuiApplication enthält die Haupt-Ereignisschleife, in der alle Ereignisse aus dem Fenstersystem und anderen Quellen verarbeitet und weitergeleitet werden. Außerdem übernimmt es die Initialisierung und Beendigung der Anwendung und sorgt für die Sitzungsverwaltung. Darüber hinaus verwaltet QGuiApplication die meisten system- 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 ohne GUI sollten Sie stattdessen ` QCoreApplication ` verwenden, da diese nicht vom Modul ` Qt GUI ` abhängig ist. Für Qt-Anwendungen auf Basis von „ QWidget “ sollten Sie stattdessen ` QApplication ` verwenden, da diese einige Funktionen bereitstellt, die für die Erstellung von ` QWidget `-Instanzen benötigt werden.

Auf das `QGuiApplication`-Objekt kann über die Funktion ` instance()` zugegriffen werden, 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 z. B. ` palette()`, ` font()` und ` styleHints()`. Es behält den Überblick über diese Eigenschaften für den Fall, dass der Benutzer den Desktop global ändert, beispielsweise über eine Art Systemsteuerung.
  • Es übernimmt die Ereignisverarbeitung, d. h., es empfängt Ereignisse vom zugrunde liegenden Fenstersystem und leitet diese an die entsprechenden Widgets weiter. Mit den Funktionen „ sendEvent “ () und „ postEvent “ () können Sie eigene Ereignisse an Fenster senden.
  • Es analysiert gängige Befehlszeilenargumente und passt seinen internen Zustand entsprechend an. Weitere Details finden Sie unter „ constructor documentation “ weiter unten.
  • Es ermöglicht die Lokalisierung von Zeichenketten, die für den Benutzer sichtbar sind, über ` translate()`.
  • Es stellt einige „magische“ Objekte wie das „ clipboard “ () bereit.
  • Es kennt die Fenster der Anwendung. Mit „ topLevelAt()“ können Sie abfragen, welches Fenster sich an einer bestimmten Position befindet, mit „ topLevelWindows()“ eine Liste der Fenster abrufen usw.
  • Es verwaltet die Mauszeigerbehandlung der Anwendung, siehe setOverrideCursor()
  • Es bietet Unterstützung für ein ausgeklügeltes Sitzungsmanagement. Dies ermöglicht es Anwendungen, sich ordnungsgemäß zu beenden, wenn sich der Benutzer abmeldet, einen Beendigungsvorgang abzubrechen, falls eine Beendigung nicht möglich ist, und sogar den gesamten Zustand der Anwendung für eine zukünftige Sitzung zu bewahren. Siehe isSessionRestored(), sessionId() sowie commitDataRequest() und saveStateRequest() für weitere Details.

Da das QGuiApplication-Objekt so viele Initialisierungsaufgaben übernimmt, muss es erstellt werden, bevor andere Objekte im Zusammenhang mit der Benutzeroberfläche erstellt werden. QGuiApplication verarbeitet außerdem allgemeine Befehlszeilenargumente. Daher ist es in der Regel ratsam, es zu erstellen, bevor in der Anwendung selbst eine Interpretation oder Änderung von argv vorgenommen wird.

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

Siehe auch QCoreApplication, QAbstractEventDispatcher und QEventLoop.

Dokumentation zu den Eigenschaften

applicationDisplayName : QString

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

Dieser Name wird dem Benutzer angezeigt, beispielsweise in Fenstertiteln. Er kann bei Bedarf übersetzt werden.

Ist dieser Wert nicht festgelegt, wird standardmäßig der Name der Anwendung als Anzeigename verwendet.

Zugriffsfunktionen:

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

Notifier-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 und ohne die Endung „.desktop“ des Desktop-Eintrags, der diese Anwendung gemäß der Freedesktop-Spezifikation für Desktop-Einträge repräsentiert.

Diese Eigenschaft gibt genau an, welcher Desktop-Eintrag die Anwendung repräsentiert, und wird vom Fenstersystem benötigt, um diese Informationen abzurufen, ohne auf ungenaue Heuristiken zurückgreifen zu müssen.

Die aktuellste Version der Freedesktop-Spezifikation für Desktop-Einträge ist hier erhältlich.

Zugriffsfunktionen:

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

layoutDirection : Qt::LayoutDirection

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

Beim Systemstart oder wenn die Richtung explizit auf „ Qt::LayoutDirectionAuto “ gesetzt wird, hängt die Standard-Layout-Richtung 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 Dokuments werden die folgenden Plattform-Plugin-Namen unterstützt:

  • android
  • cocoa ist ein Plattform-Plugin für macOS.
  • directfb
  • eglfs ist ein Plattform-Plugin zum Ausführen von Qt5-Anwendungen auf Basis von EGL und OpenGL ES 2.0 ohne ein eigentliches Fenstersystem (wie X11 oder Wayland). Weitere Informationen finden Sie unter EGLFS.
  • ios (wird auch für tvOS verwendet)
  • linuxfb schreibt direkt in den Framebuffer. Weitere Informationen finden Sie unter LinuxFB.
  • minimal wird als Beispiel für Entwickler bereitgestellt, die ihre eigenen Plattform-Plugins schreiben möchten. Sie können das Plugin jedoch auch verwenden, um GUI-Anwendungen in Umgebungen ohne GUI auszuführen, beispielsweise 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 Linux-Desktop-Plattformen verwendet wird.

Hinweis: Wird diese Funktion ohne einen „ QGuiApplication “aufgerufen , wird der Standard-Plattformname zurückgegeben, sofern verfügbar. Der Standard-Plattformname wird weder von der Befehlszeilenoption „ -platform “ noch von der Umgebungsvariable „ QT_QPA_PLATFORM “ beeinflusst.

Weitere Informationen zu den Plattform-Plugins für Embedded-Linux-Geräte finden Sie unter „Qt für Embedded Linux“.

Zugriffsfunktionen:

QString platformName()

[read-only] primaryScreen : QScreen*

Diese Eigenschaft legt den primären (bzw. Standard-)Bildschirm der Anwendung fest.

Dies ist der Bildschirm, auf dem QWindows zunächst angezeigt werden, 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 gibt an, ob die Anwendung implizit beendet wird, wenn das letzte Fenster geschlossen wird.

Der Standardwert ist „ true “.

Wenn diese Eigenschaft auf „ true “ gesetzt ist, versucht die Anwendung, sich zu beenden, sobald das letzte sichtbare Primärfenster (d. h. ein Fenster der obersten Ebene ohne vorübergehendes übergeordnetes Fenster) geschlossen wird.

Beachten Sie, dass der Versuch, die Anwendung zu beenden, nicht zwangsläufig dazu führt, dass die Anwendung tatsächlich beendet wird – beispielsweise, 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 Standard-Fenstersymbol

Zugriffsfunktionen:

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

Siehe auch „ QWindow::setIcon()“ und „Festlegen des Anwendungssymbols“.

Dokumentation zu den Member-Funktionen

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

Initialisiert das Fenstersystem und erstellt ein Anwendungsobjekt mit den Befehlszeilenargumenten aus argc in argv.

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

Der globale Zeiger ` qApp ` verweist auf dieses Anwendungsobjekt. Es sollte nur ein Anwendungsobjekt erstellt werden.

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

Hinweis: „ argc “ und „ argv “ können sich ändern, da Qt die von ihm erkannten Befehlszeilenargumente entfernt.

Unterstützte Befehlszeilenoptionen

Alle Qt-Programme unterstützen automatisch eine Reihe von Befehlszeilenoptionen, mit denen sich die Art und Weise anpassen lässt, wie Qt mit dem Fenstersystem interagiert. Einige der Optionen sind auch über Umgebungsvariablen zugänglich; diese Form wird bevorzugt, wenn die Anwendung GUI-Unterprozesse oder andere Anwendungen starten kann (Umgebungsvariablen werden von untergeordneten Prozessen übernommen). Im Zweifelsfall sollten Sie die Umgebungsvariablen verwenden.

Derzeit werden folgende Optionen unterstützt:

  • -platformplatformName[ :options], gibt das Qt Platform Abstraction (QPA)-Plugin an.

    Überschreibt die Umgebungsvariable „ QT_QPA_PLATFORM “.

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

    Überschreibt die Umgebungsvariable ` QT_QPA_PLATFORM_PLUGIN_PATH `.

  • -platformtheme platformTheme gibt das Plattform-Theme an.

    Überschreibt die Umgebungsvariable „ QT_QPA_PLATFORMTHEME “.

  • -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 angegebenen Port. Der Wert muss das Format „ port:1234[,block]“ haben, wobei „block“ optional ist und bewirkt, dass die Anwendung wartet, bis eine Verbindung zum Debugger hergestellt wird.
  • -qwindowgeometry geometry, legt die Fenstergeometrie für das Hauptfenster unter Verwendung der X11-Syntax fest. Zum Beispiel: -qwindowgeometry 100x100+50+50
  • -qwindowicon, legt das Standard-Fenstersymbol fest
  • -qwindowtitle, legt den Titel des ersten Fensters fest
  • -reverse, legt die Ausrichtungsrichtung der Anwendung auf „ Qt::RightToLeft “ fest. Diese Option dient der Erleichterung der Fehlersuche und sollte nicht in der Produktion verwendet werden. Der Standardwert wird automatisch anhand der Ländereinstellung des Benutzers ermittelt (siehe auch QLocale::textDirection()).
  • -session session, stellt die Anwendung aus einer früheren Sitzung wieder her.

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

  • -display hostname:screen_number, wechselt zwischen den Bildschirmen unter X11.

    Überschreibt die Umgebungsvariable ` DISPLAY `.

  • -geometry geometry, entspricht „ -qwindowgeometry “.

Plattformspezifische Argumente

Sie können plattformspezifische Argumente für die Option „ -platform “ angeben. Geben Sie diese nach dem Namen des Plattform-Plugins im Anschluss an einen Doppelpunkt als durch Kommas getrennte Liste an. Beispiel: „ -platform windows:dialogs=xp,fontengine=freetype “.

Für „ -platform windows “ stehen die folgenden Parameter zur Verfügung:

  • 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 in Windows 10 1903 eingeführten Dunkelmodus für Anwendungen reagiert (seit Qt 5.15).

    Der Wert 0 deaktiviert die Unterstützung des Dunkelmodus.

    Der Wert 1 bewirkt, dass Qt die Fensterrahmen auf schwarz umstellt, wenn der Dunkelmodus für Anwendungen aktiviert ist und kein Hochkontrast-Design verwendet wird. Dies ist für Anwendungen vorgesehen, die ein eigenes Design implementieren.

    Ein Wert von 2 bewirkt darüber hinaus, dass der Windows-Vista-Stil deaktiviert wird und im Dunkelmodus auf den Windows-Stil mit einer vereinfachten Farbpalette umgeschaltet wird. Dies ist derzeit experimentell, bis ein neuer Stil eingeführt wird, der sich ordnungsgemäß an den Dunkelmodus anpasst.

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

  • dialogs=[xp|none], „ xp “ verwendet native Dialoge im XP-Stil, und „ none “ deaktiviert diese.
  • fontengine=freetype, verwendet die FreeType-Schriftart-Engine.
  • fontengine=gdi, verwendet die veraltete GDI-basierte Schriftartendatenbank und nutzt standardmäßig die GDI-Schriftart-Engine (die ansonsten nur für bestimmte Schriftarttypen oder Schriftarteneigenschaften verwendet wird.) (Seit Qt 6.8).
  • menus=[native|none], steuert die Verwendung nativer Menüs.

    Native Menüs werden mithilfe der Win32-API implementiert und sind einfacher als Menüs auf Basis von „ QMenu “, da sie beispielsweise das Platzieren von Widgets auf ihnen oder das Ändern von Eigenschaften wie Schriftarten nicht zulassen und keine Hover-Signale bereitstellen. Sie sind hauptsächlich für „ Qt Quick “ vorgesehen. Standardmäßig werden sie verwendet, wenn die Anwendung keine Instanz von „ QApplication “ ist oder bei „ Qt Quick Controls 2“-Anwendungen (seit Qt 5.10).

  • nocolorfonts DirectWrite-Farbschriften deaktivieren (seit Qt 5.8).
  • nodirectwrite DirectWrite-Schriftarten deaktivieren (ab Qt 5.8). Dadurch wird implizit auch die GDI-Schriftart-Engine ausgewählt.
  • nomousefromtouch Ignoriert Mausereignisse, die vom Betriebssystem aus Touch-Ereignissen synthetisiert wurden.
  • nowmpointer Wechselt von der Verarbeitung von Zeiger-Eingabemeldungen zur herkömmlichen Mausverarbeitung (seit Qt 5.12).
  • reverse Aktiviert den Rechts-nach-links-Modus (experimentell). Windows-Titelleisten werden in Rechts-nach-links-Sprachumgebungen entsprechend angezeigt (ab Qt 5.13).
  • tabletabsoluterange=<value> Legt einen Wert für die Mausmodus-Erkennung von WinTab-Tablets fest (Legacy, seit Qt 5.3).

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

  • fontengine=freetype, verwendet die FreeType-Schriftart-Engine.

Weitere Informationen zu den plattformspezifischen Argumenten, die für Embedded-Linux-Plattformen verfügbar sind, finden Sie unter „Qt für Embedded Linux“.

Siehe auch „ arguments “ () und „ QGuiApplication::platformName “.

[virtual noexcept] QGuiApplication::~QGuiApplication()

Beendet die Anwendung.

[static] QWindowList QGuiApplication::allWindows()

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

Die Liste ist leer, wenn keine Fenster vorhanden sind.

Siehe auch ` topLevelWindows()`.

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

Gibt den aktuellen Status der Anwendung zurück.

Sie können auf Änderungen des Anwendungsstatus reagieren, um Aktionen wie das Anhalten/Fortsetzen 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 ausgelöst, wenn sich die „ state “ der Anwendung ändert.

Siehe auch ` applicationState()`.

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

Ändert den Cursor der derzeit aktiven Anwendung auf „ cursor “.

Diese Funktion hat keine Auswirkung, 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 dient der Sitzungsverwaltung. Es wird ausgelöst, wenn der „ QSessionManager “ möchte, dass die Anwendung alle ihre Daten speichert.

In der Regel bedeutet dies, alle geöffneten Dateien zu speichern, nachdem der Benutzer seine Zustimmung erteilt hat. Darüber hinaus sollten Sie dem Benutzer die Möglichkeit bieten, den Beendigungsvorgang abzubrechen.

Sie sollten die Anwendung innerhalb dieses Signals nicht beenden. Stattdessen kann der Sitzungsmanager dies anschließend tun oder auch nicht, je nach Kontext.

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

Hinweis: Sie sollten ` Qt::DirectConnection ` verwenden, wenn Sie eine Verbindung zu diesem Signal herstellen.

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

[static] bool QGuiApplication::desktopSettingsAware()

Gibt „ true “ zurück, wenn Qt so eingestellt ist, dass es die Standardfarben, -schriftarten usw. des Systems verwendet; andernfalls wird „ false “ zurückgegeben. Der Standardwert ist „ true “.

Siehe auch setDesktopSettingsAware().

qreal QGuiApplication::devicePixelRatio() const

Gibt das höchste auf dem System gefundene Bildschirm-Gerätepixelverhältnis zurück. Dabei handelt es sich um das Verhältnis zwischen physischen Pixeln und geräteunabhängigen Pixeln.

Verwenden Sie diese Funktion nur, wenn Sie nicht wissen, welches Fenster Sie ansprechen möchten. Wenn Sie das Zielfenster kennen, verwenden Sie stattdessen ` QWindow::devicePixelRatio()`.

Siehe auch ` QWindow::devicePixelRatio()`.

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

Implementiert neu: ` QCoreApplication::event(QEvent *e)`.

[static] int QGuiApplication::exec()

Tritt in die Haupt-Ereignisschleife ein und wartet, bis „ exit()“ aufgerufen wird; anschließend gibt sie den Wert zurück, der in „ exit()“ festgelegt wurde (dieser ist 0, wenn „ exit()“ über „ quit()“ aufgerufen wird).

Der Aufruf dieser Funktion ist erforderlich, um die Ereignisbehandlung zu starten. Die Hauptereignisschleife empfängt Ereignisse vom Fenstersystem und leitet diese an die Anwendungs-Widgets weiter.

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

Damit Ihre Anwendung eine Leerlaufverarbeitung durchführt, z. B. die Ausführung einer speziellen Funktion, wenn keine ausstehenden Ereignisse vorhanden sind, verwenden Sie ein „ QChronoTimer “ mit einem Timeout von 0 ns. Fortgeschrittenere Leerlaufverarbeitungsschemata lassen sich mit „ processEvents()“ realisieren.

Wir empfehlen, Aufräumcode an das Signal ` aboutToQuit()` anzuschließen, anstatt ihn in die Funktion ` main() ` Ihrer Anwendung einzufügen. Der Grund dafür ist, dass der Aufruf von ` QApplication::exec()` auf einigen Plattformen möglicherweise nicht zurückkehrt.

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

[static] QObject *QGuiApplication::focusObject()

Gibt das „ QObject “ im aktuell aktiven Fenster zurück, das als endgültiger Empfänger von Ereignissen dient, die mit dem Fokus verbunden sind, wie z. B. Tastaturereignisse.

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

Dieses Signal wird ausgelöst, wenn der endgültige Empfänger von Ereignissen, die mit dem Fokus verknüpft sind, geändert wird. „ focusObject “ ist der neue Empfänger.

Siehe auch focusObject().

[static] QWindow *QGuiApplication::focusWindow()

Gibt den „ QWindow “ zurück, der Ereignisse empfängt, die mit dem Fokus verknüpft sind, wie z. B. Tastenereignisse.

Siehe auch QWindow::requestActivate().

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

Dieses Signal wird ausgelöst, wenn sich das aktive Fenster ändert. ` focusWindow ` ist das neue aktive 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 passieren, 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 Rundungsrichtlinie für den High-DPI-Skalierungsfaktor zurück.

Siehe auch „ setHighDpiScaleFactorRoundingPolicy“ ().

[static] QInputMethod *QGuiApplication::inputMethod()

Gibt die Eingabemethode zurück.

Die Eingabemethode gibt Eigenschaften zum Status und zur Position der virtuellen Tastatur zurück. Außerdem liefert sie Informationen zur Position des aktuell fokussierten Eingabeelements.

Siehe auch QInputMethod.

[static] bool QGuiApplication::isLeftToRight()

Gibt „ true “ zurück, wenn die Layoutrichtung der Anwendung „ Qt::LeftToRight “ lautet; andernfalls wird „ false “ zurückgegeben.

Siehe auch layoutDirection() und isRightToLeft().

[static] bool QGuiApplication::isRightToLeft()

Gibt „ true “ zurück, wenn die Layoutrichtung der Anwendung „ Qt::RightToLeft “ lautet; andernfalls wird „ false “ zurückgegeben.

Siehe auch layoutDirection() und isLeftToRight().

bool QGuiApplication::isSavingSession() const

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

Dies ist „ true “, wenn „ commitDataRequest()“ und „ saveStateRequest()“ ausgegeben werden, aber auch, wenn die Fenster anschließend 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 Status der Modifikatortasten auf der Tastatur zurück. Der aktuelle Status wird synchron aktualisiert, sobald die Ereigniswarteschlange von Ereignissen geleert wird, die den Tastaturstatus spontan ändern (Ereignisse vom Typ „QEvent::KeyPress “ und „ QEvent::KeyRelease “).

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

Siehe auch mouseButtons() und queryKeyboardModifiers().

[signal] void QGuiApplication::lastWindowClosed()

Dieses Signal wird von ` exec()` ausgesendet, wenn das letzte sichtbare Hauptfenster (d. h. ein Fenster der obersten Ebene ohne vorübergehendes übergeordnetes Fenster) geschlossen wird.

Standardmäßig wird „ QGuiApplication “ beendet, nachdem dieses Signal ausgesendet wurde. Diese Funktion kann deaktiviert werden, indem „ quitOnLastWindowClosed “ auf „ false “ gesetzt wird.

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

Gibt das zuletzt angezeigte modale Fenster zurück. Sind keine modalen Fenster sichtbar, gibt diese Funktion den Wert Null zurück.

Ein modales Fenster ist ein Fenster, dessen Eigenschaft „ modality “ 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 an der Spitze des Stapels zurück.

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

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

Gibt den aktuellen Status der Maustasten zurück. Der aktuelle Status wird synchron aktualisiert, sobald die Ereigniswarteschlange von Ereignissen geleert wird, die den Mausstatus spontan ändern (Ereignisse vom Typ „QEvent::MouseButtonPress “ und „ QEvent::MouseButtonRelease “).

Es ist zu beachten, dass dies möglicherweise nicht den tatsächlichen Zustand der Tasten des Eingabegeräts zum Zeitpunkt des Aufrufs widerspiegelt, sondern vielmehr den zuletzt in einem der oben genannten Ereignisse gemeldeten Zustand der Maustasten. Wenn keine Maustasten gedrückt sind, 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 plattformspezifische Funktionen von „ QGuiApplication “, wie sie im Namensraum „ QNativeInterface “ definiert sind:

QNativeInterface::QWaylandApplication

Native Schnittstelle zu einer Wayland-Anwendung

QNativeInterface::QX11Application

Native Schnittstelle zu einer X11-Anwendung

Ist die angeforderte Schnittstelle nicht verfügbar, wird ein ` nullptr ` zurückgegeben.

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

Implementiert: ` QCoreApplication::notify` (`QObject *receiver, QEvent *event`).

[static] QCursor *QGuiApplication::overrideCursor()

Gibt den aktiven Anwendungs-Override-Cursor zurück.

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

Siehe auch „ setOverrideCursor()“ und „ restoreOverrideCursor()“.

[static] QPalette QGuiApplication::palette()

Gibt die aktuelle Anwendungspalette zurück.

Rollen, die nicht explizit festgelegt wurden, übernehmen das Plattform-Design des Systems.

Siehe auch setPalette().

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

Fragt den Status der Modifikatortasten auf der Tastatur ab und gibt ihn zurück. Im Gegensatz zu ` keyboardModifiers` gibt diese Methode die Tasten zurück, die zum Zeitpunkt des Aufrufs der Methode tatsächlich auf dem Eingabegerät gedrückt sind.

Sie ist nicht davon abhängig, dass die Tastendruckereignisse von diesem Prozess empfangen wurden, wodurch es beispielsweise möglich ist, die Modifikatortasten während des Verschiebens eines Fensters zu überprüfen. Beachten Sie, dass Sie in den meisten Fällen keyboardModifiers() verwenden sollten, da diese Methode schneller und genauer ist, da sie den Zustand der Modifikatortasten zum Zeitpunkt des Empfangs des aktuell verarbeiteten Ereignisses enthält.

Siehe auch ` keyboardModifiers()`.

[static] void QGuiApplication::restoreOverrideCursor()

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

Wurde ` setOverrideCursor()` zweimal aufgerufen, wird durch den Aufruf von `restoreOverrideCursor()` der erste Cursor-Satz 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 dient der Sitzungsverwaltung. Es wird ausgelöst, wenn der „ session manager “ möchte, dass die Anwendung ihren Zustand für eine zukünftige Sitzung beibehält.

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

Sie sollten die Anwendung innerhalb dieses Signals niemals beenden. Stattdessen kann der Sitzungsmanager dies anschließend tun oder auch nicht, je nach Kontext. 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, die Neustartrichtlinien der Anwendung zu ermitteln.

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

Hinweis: Sie sollten ` Qt::DirectConnection ` verwenden, wenn Sie eine Verbindung zu diesem Signal herstellen.

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

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

Dieses Signal wird immer dann ausgelöst, wenn ein neuer Bildschirm screen zum System 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, falls sich der Punkt außerhalb eines Bildschirms befindet.

Die Koordinaten „ point “ beziehen sich auf die „virtualGeometry()“ der jeweiligen Gruppe virtueller Geschwisterelemente. Wenn der Punkt mehr als einer Gruppe virtueller Geschwisterelemente zugeordnet ist, wird die erste Übereinstimmung zurückgegeben. Wenn Sie ausschließlich die virtuellen Desktop-Geschwisterelemente eines bekannten Bildschirms durchsuchen möchten (beispielsweise die Geschwisterelemente des Bildschirms Ihres Anwendungsfensters „ QWidget::windowHandle()->screen() “), verwenden Sie die Funktion „ QScreen::virtualSiblingAt()“.

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

Dieses Signal wird immer dann ausgelöst, wenn ein „ screen “ aus dem System entfernt wird. Es bietet die Möglichkeit, die Fenster auf dem Bildschirm zu verwalten, bevor Qt auf den Primärbildschirm ausweicht.

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

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

Gibt eine Liste aller Bildschirme zurück, die mit dem Fenstersystem verknüpft sind, mit dem die Anwendung verbunden ist.

QString QGuiApplication::sessionId() const

Gibt die Kennung der aktuellen Sitzung zurück.

Wurde die Anwendung aus einer früheren Sitzung wiederhergestellt, entspricht diese Kennung derjenigen aus der vorherigen Sitzung. Die Sitzungskennung ist sowohl für verschiedene Anwendungen als auch für verschiedene Instanzen derselben Anwendung garantiert eindeutig.

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

QString QGuiApplication::sessionKey() const

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

Wurde die Anwendung aus einer früheren Sitzung wiederhergestellt, entspricht dieser Schlüssel demjenigen, der zum Zeitpunkt des Beendens der vorherigen Sitzung gültig war.

Der Sitzungsschlüssel ändert sich bei jedem Speichern der Sitzung. Wird der Beendigungsvorgang abgebrochen, wird beim erneuten Beenden ein anderer Sitzungsschlüssel verwendet.

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

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

Setzt das Badge der Anwendung auf „ number “.

Dies ist nützlich, um dem Benutzer Feedback zur Anzahl ungelesener Nachrichten oder Ähnlichem zu geben.

Das Badge wird über das Symbol der Anwendung im Dock unter macOS, auf dem Startbildschirm unter iOS oder in der Taskleiste unter Windows und Linux gelegt.

Liegt die Zahl außerhalb des von der Plattform unterstützten Bereichs, wird sie auf den unterstützten Bereich begrenzt. Passt die Zahl nicht in das Badge, kann sie visuell gekürzt werden.

Wird der Wert auf 0 gesetzt, wird das Abzeichen 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 Standardfarben, -schriftarten usw. des Systems für „ on “ verwenden soll. Standardmäßig ist dies „ true “.

Diese Funktion muss vor dem Erstellen des Objekts ` QGuiApplication ` wie folgt aufgerufen werden:

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 auf „ font “.

Siehe auch font().

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

Legt die Rundungsrichtlinie für den Skalierungsfaktor bei hoher DPI-Auflösung für die Anwendung fest. Die „ policy “ bestimmt, wie nicht ganzzahlige Skalierungsfaktoren (wie beispielsweise 150 % unter Windows) behandelt werden.

Die beiden wichtigsten Optionen betreffen die Frage, ob gebrochene Skalierungsfaktoren auf eine ganze Zahl gerundet werden sollen oder nicht. Wird der Skalierungsfaktor unverändert beibehalten, entspricht die Größe der Benutzeroberfläche exakt der Betriebssystemeinstellung, was jedoch zu Darstellungsfehlern führen kann, beispielsweise beim Windows-Stil.

Wenn eine Rundung gewünscht ist, muss als Nächstes entschieden werden, welche Art der Rundung verwendet werden soll. Eine mathematisch korrekte Rundung wird unterstützt, liefert jedoch möglicherweise nicht die besten visuellen Ergebnisse: Überlegen Sie, ob Sie 1,5x als 1x („kleine Benutzeroberfläche“) oder als 2x („große Benutzeroberfläche“) darstellen möchten. Eine vollständige Liste aller Optionen finden Sie in der Enumeration ` Qt::HighDpiScaleFactorRoundingPolicy `.

Diese Funktion muss vor dem Erstellen des Anwendungsobjekts aufgerufen werden. Der Accessor „ QGuiApplication::highDpiScaleFactorRoundingPolicy()“ spiegelt die Umgebung wider, sofern diese festgelegt ist.

Der Standardwert ist „ Qt::HighDpiScaleFactorRoundingPolicy::PassThrough “.

Siehe auch „ highDpiScaleFactorRoundingPolicy()“.

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

Setzt den Anwendungs-Überschreibungscursor auf „ cursor “.

Anwendungs-Cursor-Überschreibungen dienen dazu, dem Benutzer anzuzeigen, dass sich die Anwendung in einem besonderen Zustand befindet, beispielsweise während eines Vorgangs, der einige Zeit in Anspruch nehmen könnte.

Dieser Cursor wird in allen Widgets der Anwendung angezeigt, bis „ restoreOverrideCursor()“ oder ein weiterer Aufruf von „setOverrideCursor()“ erfolgt.

Anwendungscursor werden auf einem internen Stack gespeichert. setOverrideCursor() schiebt den Cursor auf den Stack, und restoreOverrideCursor() entfernt den aktiven Cursor vom Stack. changeOverrideCursor() ändert den aktuell aktiven Anwendungs-Override-Cursor.

Auf jeden Aufruf von `setOverrideCursor()` muss letztendlich ein entsprechender Aufruf von ` restoreOverrideCursor()` folgen, da der Stapel sonst niemals geleert wird.

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 Anwendungspalette in „ pal “.

Die Farbrollen aus dieser Palette werden mit dem Plattform-Design des Systems kombiniert, um die endgültige Palette der Anwendung zu bilden.

Siehe auch „ palette“ ().

[static] QStyleHints *QGuiApplication::styleHints()

Gibt die Stilhinweise der Anwendung zurück.

Die Stilhinweise umfassen eine Reihe plattformabhängiger 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, mit der der Qt-Zustand mit dem Zustand des Fenstersystems synchronisiert werden kann.

Diese Funktion leert zunächst die Qt-Ereignisse durch Aufruf von ` QCoreApplication::processEvents()`, anschließend synchronisiert sich das Plattform-Plugin mit dem Fenstersystem, und schließlich werden die Qt-Ereignisse durch einen weiteren Aufruf von ` QCoreApplication::processEvents()` übermittelt;

Diese Funktion ist zeitaufwendig, und von ihrer Verwendung wird abgeraten.

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

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

[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, wenn es sich bei diesem Objekt um ein „ QGuiApplication “ handelt.

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