QApplication Class

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

Kopfzeile: #include <QApplication>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Vererbungen: QGuiApplication

Eigenschaften

Öffentliche Funktionen

QApplication(int &argc, char **argv)
virtual ~QApplication()
bool autoSipEnabled() const
QString styleSheet() const

Reimplementierte öffentliche Funktionen

virtual bool notify(QObject *receiver, QEvent *e) override

Öffentliche Slots

void aboutQt()
void closeAllWindows()
void setAutoSipEnabled(const bool enabled)
void setStyleSheet(const QString &sheet)

Signale

void focusChanged(QWidget *old, QWidget *now)

Statische öffentliche Mitglieder

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)

Reimplementierte geschützte Funktionen

virtual bool event(QEvent *e) override

Makros

Detaillierte Beschreibung

QApplication spezifiziert QGuiApplication mit einigen Funktionen, die für QWidget-basierte Anwendungen benötigt werden. Es handhabt Widget-spezifische Initialisierung und Finalisierung.

Für jede GUI-Anwendung, die Qt verwendet, gibt es genau ein QApplication-Objekt, unabhängig davon, ob die Anwendung zu einem bestimmten Zeitpunkt 0, 1, 2 oder mehr Fenster hat. Für Qt-Anwendungen, die nicht aufQWidget basieren, verwenden Sie stattdessen QGuiApplication, da es nicht von der Bibliothek QtWidgets abhängig ist.

Einige GUI-Anwendungen bieten einen speziellen Batch-Modus, d.h. sie stellen Kommandozeilenargumente zur Verfügung, um Aufgaben ohne manuellen Eingriff auszuführen. In einem solchen Nicht-GUI-Modus reicht es oft aus, ein einfaches QCoreApplication zu instanziieren, um eine unnötige Initialisierung von Ressourcen zu vermeiden, die für eine grafische Benutzeroberfläche benötigt werden. Das folgende Beispiel zeigt, wie eine geeignete Anwendungsinstanz dynamisch erstellt werden kann:

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

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

Die Hauptaufgaben von QApplication sind:

  • Es initialisiert die Anwendung mit den Desktop-Einstellungen des Benutzers wie palette(), font() und doubleClickInterval(). Sie behält diese Eigenschaften im Auge, für den Fall, dass der Benutzer den Desktop global ändert, z.B. durch 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. Durch die Verwendung von sendEvent() und postEvent() können Sie Ihre eigenen Ereignisse an Widgets senden.
  • Es analysiert gängige Kommandozeilenargumente und setzt seinen internen Status entsprechend. Siehe constructor documentation unten für weitere Details.
  • Es definiert das Erscheinungsbild der Anwendung, das in einem QStyle Objekt gekapselt ist. Dieses kann zur Laufzeit mit setStyle() geändert werden.
  • Es ermöglicht die Lokalisierung von Zeichenketten, die für den Benutzer über translate() sichtbar sind.
  • Es stellt einige magische Objekte wie das clipboard() zur Verfügung.
  • Es weiß über die Fenster der Anwendung Bescheid. Sie können mit widgetAt() abfragen, welches Widget sich an einer bestimmten Position befindet, eine Liste von topLevelWidgets() und closeAllWindows() erhalten, usw.
  • Es verwaltet die Handhabung des Mauszeigers in der Anwendung, siehe setOverrideCursor()

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

Siehe auch QCoreApplication, QAbstractEventDispatcher, QEventLoop, und QSettings.

Dokumentation der Eigenschaften

autoSipEnabled : bool

schaltet die automatische Sichtbarkeit des SIP (Software-Eingabefeld) ein

Setzen Sie diese Eigenschaft auf true, um das SIP bei der Eingabe von Widgets, die Tastatureingaben akzeptieren, automatisch anzuzeigen. Diese Eigenschaft wirkt sich nur auf Widgets aus, bei denen das WA_InputMethodEnabled-Attribut gesetzt ist, und wird typischerweise verwendet, um eine virtuelle Tastatur auf Geräten zu starten, die nur sehr wenige oder gar keine Tasten haben.

Die Eigenschaft hat nur Auswirkungen auf Plattformen, die Software-Eingabefelder verwenden.

Der Standardwert ist plattformabhängig.

Zugriffsfunktionen:

bool autoSipEnabled() const
void setAutoSipEnabled(const bool enabled)

cursorFlashTime : int

Diese Eigenschaft enthält die Blinkzeit des Textcursors in Millisekunden

Die Blinkzeit ist die Zeit, die benötigt wird, um die Cursoranzeige anzuzeigen, zu invertieren und wiederherzustellen. Normalerweise wird der Textcursor für die Hälfte der Blinkzeit des Cursors angezeigt und dann für die gleiche Zeitspanne ausgeblendet.

Der Standardwert unter X11 ist 1000 Millisekunden. Unter Windows wird der Wert Control Panel verwendet und die Einstellung dieser Eigenschaft legt die Cursor-Blitzzeit für alle Anwendungen fest.

Wir empfehlen, dass Widgets diesen Wert nicht zwischenspeichern, da er sich jederzeit ändern kann, wenn der Benutzer die globalen Desktop-Einstellungen ändert.

Hinweis: Diese Eigenschaft kann einen negativen Wert enthalten, z. B. wenn das Blinken des Cursors deaktiviert ist.

Zugriffsfunktionen:

int cursorFlashTime()
void setCursorFlashTime(int)

doubleClickInterval : int

Diese Eigenschaft enthält die Zeitgrenze in Millisekunden, die einen Doppelklick von zwei aufeinanderfolgenden Mausklicks unterscheidet

Der Standardwert unter X11 ist 400 Millisekunden. Unter Windows und Mac OS wird der Wert des Betriebssystems verwendet.

Zugriffsfunktionen:

int doubleClickInterval()
void setDoubleClickInterval(int)

keyboardInputInterval : int

Diese Eigenschaft enthält die Zeitgrenze in Millisekunden, die einen Tastendruck von zwei aufeinanderfolgenden Tastendrücken unterscheidet

Der Standardwert unter X11 ist 400 Millisekunden. Unter Windows und Mac OS wird der Wert des Betriebssystems verwendet.

Zugriffsfunktionen:

int keyboardInputInterval()
void setKeyboardInputInterval(int)

startDragDistance : int

Diese Eigenschaft gibt den Mindestabstand an, der erforderlich ist, um einen Drag&Drop-Vorgang zu starten.

Wenn Sie in Ihrer Anwendung Drag&Drop unterstützen und einen Drag&Drop-Vorgang starten möchten, nachdem der Benutzer den Cursor bei gedrückter Taste über eine bestimmte Distanz bewegt hat, sollten Sie den Wert dieser Eigenschaft als Mindestabstand verwenden.

Wenn zum Beispiel die Mausposition des Klicks in startPos gespeichert ist und die aktuelle Position (z.B. im Mausbewegungsereignis) currentPos ist, können Sie mit Code wie diesem herausfinden, ob ein Ziehen gestartet werden soll:

if ((startPos - currentPos).manhattanLength() >=
        QApplication::startDragDistance())
    startTheDrag();

Qt verwendet diesen Wert intern, z.B. in QFileDialog.

Der Standardwert (wenn die Plattform keinen anderen Standard vorgibt) ist 10 Pixel.

Zugriffsfunktionen:

int startDragDistance()
void setStartDragDistance(int l)

Siehe auch startDragTime(), QPoint::manhattanLength(), und Drag and Drop.

startDragTime : int

Diese Eigenschaft gibt die Zeit in Millisekunden an, die eine Maustaste gedrückt gehalten werden muss, bevor ein Drag&Drop-Vorgang beginnt

Wenn Sie Drag&Drop in Ihrer Anwendung unterstützen und einen Drag&Drop-Vorgang starten wollen, nachdem der Benutzer eine Maustaste eine bestimmte Zeit lang gedrückt gehalten hat, sollten Sie den Wert dieser Eigenschaft als Verzögerung verwenden.

Qt verwendet diese Verzögerung auch intern, z.B. in QTextEdit und QLineEdit, um einen Ziehvorgang zu starten.

Der Standardwert ist 500 ms.

Zugriffsfunktionen:

int startDragTime()
void setStartDragTime(int ms)

Siehe auch startDragDistance() und Drag and Drop.

styleSheet : QString

Diese Eigenschaft enthält das Stylesheet der Anwendung

Standardmäßig gibt diese Eigenschaft eine leere Zeichenkette zurück, es sei denn, der Benutzer gibt beim Ausführen der Anwendung die Option -stylesheet in der Befehlszeile an.

Zugriffsfunktionen:

QString styleSheet() const
void setStyleSheet(const QString &sheet)

Siehe auch QWidget::setStyle() und Qt Style Sheets.

wheelScrollLines : int

Diese Eigenschaft enthält die Anzahl der Zeilen, um ein Widget zu scrollen, wenn das Mausrad gedreht wird.

Wenn der Wert die Anzahl der sichtbaren Zeilen des Widgets übersteigt, sollte das Widget den Bildlauf als eine einzelne Seite nach oben oder unten interpretieren. Wenn das Widget ein item view class ist, dann hängt das Ergebnis des Scrollens um eine Zeile von der Einstellung der scroll mode des Widgets ab. Scrollen um eine Zeile kann scroll one item oder scroll one pixel bedeuten.

Standardmäßig hat diese Eigenschaft einen Wert von 3.

Zugriffsfunktionen:

int wheelScrollLines()
void setWheelScrollLines(int)

Siehe auch QStyleHints::wheelScrollLines().

Dokumentation der Mitgliedsfunktionen

QApplication::QApplication(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 QApplication-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 erstellt werden (einschließlich Widgets, Pixmaps, Bitmaps usw.).

Hinweis: argc und argv können geändert werden, wenn Qt erkannte Kommandozeilenargumente entfernt.

Alle Qt-Programme unterstützen automatisch die folgenden Kommandozeilenoptionen:

  • -style= style, legt den GUI-Stil der Anwendung fest. Die möglichen Werte hängen von Ihrer Systemkonfiguration ab. Wenn Sie Qt mit zusätzlichen Stilen kompiliert haben oder zusätzliche Stile als Plugins haben, sind diese für die Kommandozeilenoption -style verfügbar. Sie können auch den Stil für alle Qt-Anwendungen festlegen, indem Sie die Umgebungsvariable QT_STYLE_OVERRIDE setzen.
  • -style= Stil, ist derselbe wie oben aufgeführt.
  • -stylesheet= stylesheet, setzt das AnwendungsstyleSheet. Der Wert muss ein Pfad zu einer Datei sein, die das Style Sheet enthält.

    Hinweis: Relative URLs in der Stylesheet-Datei sind relativ zum Pfad der Stylesheet-Datei.

  • -stylesheet stylesheet, ist das gleiche wie oben aufgeführt.
  • -widgetcount, gibt am Ende eine Debug-Meldung über die Anzahl der unzerstörten Widgets und die maximale Anzahl der gleichzeitig vorhandenen Widgets aus
  • -reverse, setzt die Layout-Richtung der Anwendung auf Qt::RightToLeft
  • -qmljsdebugger=, aktiviert den QML/JS-Debugger mit einem angegebenen 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.

Siehe auch QCoreApplication::arguments().

[virtual noexcept] QApplication::~QApplication()

Räumt alle Fenstersystemressourcen auf, die von dieser Anwendung zugewiesen wurden. Setzt die globale Variable qApp auf nullptr.

[static slot] void QApplication::aboutQt()

Zeigt ein einfaches Meldungsfenster über Qt an. Die Meldung enthält die Versionsnummer von Qt, die von der Anwendung verwendet wird.

Dies ist nützlich für die Aufnahme in das Help Menü einer Anwendung, wie im Beispiel Menüs gezeigt.

Diese Funktion ist ein einfacher Slot für QMessageBox::aboutQt().

[static] QWidget *QApplication::activeModalWidget()

Gibt das aktive modale Widget zurück.

Ein modales Widget ist ein spezielles Top-Level-Widget, das eine Unterklasse von QDialog ist, die den modalen Parameter des Konstruktors als true angibt. Ein modales Widget muss geschlossen werden, bevor der Benutzer mit anderen Teilen des Programms fortfahren kann.

Modale Widgets sind in einem Stapel organisiert. Diese Funktion gibt das aktive modale Widget an der Spitze des Stapels zurück.

Siehe auch activePopupWidget() und topLevelWidgets().

[static] QWidget *QApplication::activePopupWidget()

Gibt das aktive Popup-Widget zurück.

Ein Popup-Widget ist ein spezielles Top-Level-Widget, das das Qt::WType_Popup Widget-Flag setzt, z. B. das QMenu Widget. Wenn die Anwendung ein Popup-Widget öffnet, werden alle Ereignisse an das Popup gesendet. Auf normale Widgets und modale Widgets kann nicht zugegriffen werden, bevor das Popup-Widget geschlossen ist.

Nur andere Popup-Widgets können geöffnet werden, wenn ein Popup-Widget angezeigt wird. Die Popup-Widgets sind in einem Stapel organisiert. Diese Funktion gibt das aktive Popup-Widget an der Spitze des Stapels zurück.

Siehe auch activeModalWidget() und topLevelWidgets().

[static] QWidget *QApplication::activeWindow()

Gibt das Fenster der obersten Anwendungsebene zurück, das den Fokus der Tastatureingabe hat, oder nullptr, wenn kein Anwendungsfenster den Fokus hat. Es kann ein activeWindow() geben, auch wenn es kein focusWidget() gibt, zum Beispiel wenn kein Widget in diesem Fenster Tastenereignisse akzeptiert.

Siehe auch QWidget::setFocus(), QWidget::hasFocus(), und focusWidget().

[static] void QApplication::alert(QWidget *widget, int msec = 0)

Bewirkt, dass eine Warnung für widget angezeigt wird, wenn das Fenster nicht das aktive Fenster ist. Die Warnung wird für msec Millisekunden angezeigt. Wenn msec gleich Null ist (die Voreinstellung), dann wird die Warnung auf unbestimmte Zeit angezeigt, bis das Fenster wieder aktiv wird.

Momentan macht diese Funktion nichts unter Qt for Embedded Linux.

Unter macOS funktioniert sie eher auf der Anwendungsebene und bewirkt, dass das Anwendungssymbol im Dock hüpft.

Unter Windows bewirkt dies, dass der Taskleisteneintrag des Fensters eine Zeit lang blinkt. Wenn msec auf Null steht, hört das Blinken auf und der Eintrag in der Taskleiste nimmt eine andere Farbe an (derzeit orange).

Unter X11 führt dies dazu, dass das Fenster als "erfordert Aufmerksamkeit" markiert wird. Das Fenster darf nicht versteckt sein (d.h. es darf nicht mit hide() aufgerufen werden, sondern muss in irgendeiner Form sichtbar sein), damit dies funktioniert.

[static] QWidgetList QApplication::allWidgets()

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

Die Liste ist leer (QList::isEmpty()), wenn es keine Widgets gibt.

Hinweis: Einige der Widgets können ausgeblendet sein.

Beispiel:

void updateAllWidgets()
{
    const QWidgetList allWidgets = QApplication::allWidgets();
    for (QWidget *widget : allWidgets)
        widget->update();
}

Siehe auch topLevelWidgets() und QWidget::isVisible().

[static] void QApplication::beep()

Lässt die Glocke ertönen, wobei die Standardlautstärke und der Standardton verwendet werden. Die Funktion ist in Qt for Embedded Linux nicht verfügbar.

[static slot] void QApplication::closeAllWindows()

Schließt alle Fenster der obersten Ebene.

Diese Funktion ist besonders nützlich für Anwendungen mit vielen Fenstern der obersten Ebene.

Die Fenster werden in zufälliger Reihenfolge geschlossen, bis ein Fenster das Schließereignis nicht mehr annimmt. Die Anwendung wird beendet, wenn das letzte Fenster erfolgreich geschlossen wurde, es sei denn, quitOnLastWindowClosed ist auf false gesetzt. Um das Beenden der Anwendung z. B. über ein Menü auszulösen, verwenden Sie QCoreApplication::quit() anstelle dieser Funktion.

Siehe auch quitOnLastWindowClosed, lastWindowClosed(), QWidget::close(), QWidget::closeEvent(), lastWindowClosed(), QCoreApplication::quit(), topLevelWidgets(), und QWidget::isWindow().

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

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

[static] int QApplication::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. Als Sonderfall können modale Widgets wie QMessageBox vor dem Aufruf von exec() verwendet werden, da modale Widgets exec() aufrufen, um eine lokale Ereignisschleife zu starten.

Um Ihre Anwendung eine Leerlaufverarbeitung durchführen zu lassen, d.h. eine spezielle Funktion auszuführen, wenn keine Ereignisse anstehen, verwenden Sie QChronoTimer mit 0ns Timeout. Fortschrittlichere Leerlaufverarbeitungsschemata 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. Auf der Windows-Plattform zum Beispiel beendet das System den Prozess, wenn sich der Benutzer abmeldet, nachdem Qt alle Fenster der obersten Ebene geschlossen hat. Daher gibt es keine Garantie, dass die Anwendung am Ende der Funktion main() nach dem Aufruf von QApplication::exec() Zeit hat, ihre Ereignisschleife zu verlassen und Code auszuführen.

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

[signal] void QApplication::focusChanged(QWidget *old, QWidget *now)

Dieses Signal wird ausgegeben, wenn das Widget, das den Tastaturfokus hat, von old zu now wechselt, z.B. weil der Benutzer die Tabulatortaste drückt, in ein Widget klickt oder das aktive Fenster wechselt. Sowohl old als auch now können nullptr sein.

Das Signal wird ausgegeben, nachdem beide Widgets durch QFocusEvent über den Wechsel informiert wurden.

Siehe auch QWidget::setFocus(), QWidget::clearFocus(), und Qt::FocusReason.

[static] QWidget *QApplication::focusWidget()

Gibt das Anwendungs-Widget zurück, das den Fokus der Tastatureingabe hat, oder nullptr, wenn kein Widget in dieser Anwendung den Fokus hat.

Siehe auch QWidget::setFocus(), QWidget::hasFocus(), activeWindow(), und focusChanged().

[static] QFont QApplication::font()

Gibt die Standard-Anwendungsschriftart zurück.

Siehe auch setFont(), fontMetrics(), und QWidget::font().

[static] QFont QApplication::font(const QWidget *widget)

Dies ist eine überladene Funktion.

Gibt die Standardschriftart für die Klasse widget zurück. Wenn für die Klasse widget keine Standardschriftart registriert wurde, wird die Standardschriftart der nächstgelegenen registrierten Oberklasse zurückgegeben.

Siehe auch fontMetrics(), setFont(), und QWidget::setFont().

[static] QFont QApplication::font(const char *className)

Dies ist eine überladene Funktion.

Gibt die Schriftart für Widgets der angegebenen className zurück.

Siehe auch setFont() und QWidget::font().

[static] bool QApplication::isEffectEnabled(Qt::UIEffect effect)

Gibt true zurück, wenn effect aktiviert ist; andernfalls wird false zurückgegeben.

Standardmäßig wird Qt versuchen, die Desktop-Einstellungen zu verwenden. Um dies zu verhindern, rufen Sie setDesktopSettingsAware(false) auf.

Hinweis: Alle Effekte sind auf Bildschirmen mit einer Farbtiefe von weniger als 16 Bit deaktiviert.

Siehe auch setEffectEnabled() und Qt::UIEffect.

Gibt die Art der Fokusnavigation zurück, die Qt verwendet.

Diese Funktion ist nur in Qt for Embedded Linux verfügbar.

Siehe auch setNavigationMode().

[override virtual] bool QApplication::notify(QObject *receiver, QEvent *e)

Reimplements: QGuiApplication::notify(QObject *object, QEvent *event).

[static] QPalette QApplication::palette(const QWidget *widget)

Wenn ein widget übergeben wird, wird die Standardpalette für die Klasse des Widgets zurückgegeben. Dies kann, muss aber nicht die Anwendungspalette sein. In den meisten Fällen gibt es keine spezielle Palette für bestimmte Arten von Widgets, aber eine bemerkenswerte Ausnahme ist das Popup-Menü unter Windows, wenn der Benutzer in den Anzeigeeinstellungen eine spezielle Hintergrundfarbe für Menüs definiert hat.

Siehe auch setPalette() und QWidget::palette().

[static] QPalette QApplication::palette(const char *className)

Dies ist eine überladene Funktion.

Gibt die Palette für Widgets der angegebenen className zurück.

Siehe auch setPalette() und QWidget::palette().

[static] void QApplication::setEffectEnabled(Qt::UIEffect effect, bool enable = true)

Aktiviert den UI-Effekt effect, wenn enable wahr ist, andernfalls wird der Effekt nicht verwendet.

Hinweis: Alle Effekte sind auf Bildschirmen mit einer Farbtiefe von weniger als 16 Bit deaktiviert.

Siehe auch isEffectEnabled(), Qt::UIEffect, und setDesktopSettingsAware().

[static] void QApplication::setFont(const QFont &font, const char *className = nullptr)

Ändert die Standardschriftart der Anwendung auf font. Wenn className übergeben wird, gilt die Änderung nur für Klassen, die className erben (wie von QObject::inherits() gemeldet).

Beim Start der Anwendung hängt die Standardschriftart vom Fenstersystem ab. Sie kann sowohl von der Version des Fenstersystems als auch vom Gebietsschema abhängen. Mit dieser Funktion können Sie die Standardschriftart überschreiben; das Überschreiben kann jedoch eine schlechte Idee sein, da z. B. einige Gebietsschemata extra große Schriftarten benötigen, um ihre Sonderzeichen zu unterstützen.

Warnung: Verwenden Sie diese Funktion nicht in Verbindung mit Qt Style Sheets. Die Schriftart einer Anwendung kann mit der "font" Style Sheet Eigenschaft angepasst werden. Um eine fette Schriftart für alle QPushButtons einzustellen, setzen Sie die Anwendung styleSheet() als "QPushButton { font: bold }"

Siehe auch font(), fontMetrics(), und QWidget::setFont().

[static] void QApplication::setNavigationMode(Qt::NavigationMode mode)

Legt die Art der Fokusnavigation fest, die Qt für mode verwenden soll.

Diese Funktion ist nur in Qt for Embedded Linux verfügbar.

Siehe auch navigationMode().

[static] void QApplication::setPalette(const QPalette &palette, const char *className = nullptr)

Ändert die Anwendungspalette auf palette.

Wenn className übergeben wird, gilt die Änderung nur für Widgets, die className erben (wie von QObject::inherits() gemeldet). Wird className mit 0 angegeben, wirkt sich die Änderung auf alle Widgets aus und überschreibt somit alle zuvor festgelegten klassenspezifischen Paletten.

Die Palette kann entsprechend dem aktuellen GUI-Stil in QStyle::polish() geändert werden.

Warnung: Verwenden Sie diese Funktion nicht in Verbindung mit Qt Style Sheets. Bei der Verwendung von Stylesheets kann die Palette eines Widgets über die Parameter "color", "background-color", "selection-color", "selection-background-color" und "alternate-background-color" angepasst werden.

Hinweis: Einige Stile verwenden die Palette nicht für alle Zeichnungen, zum Beispiel, wenn sie native Theme-Engines verwenden. Dies ist der Fall bei den Stilen für Windows Vista und macOS.

Siehe auch QWidget::setPalette(), palette(), und QStyle::polish().

[static] void QApplication::setStyle(QStyle *style)

Setzt den GUI-Stil der Anwendung auf style. Der Besitz des Style-Objekts wird an QApplication übertragen, so dass QApplication das Style-Objekt beim Beenden der Anwendung löscht oder wenn ein neuer Style gesetzt wird und der alte Style noch der Parent des Anwendungsobjekts ist.

Beispiel für die Verwendung:

QApplication::setStyle(QStyleFactory::create("Fusion"));

Beim Wechsel der Anwendungsstile wird die Farbpalette auf die Ausgangsfarben oder die Systemvorgaben zurückgesetzt. Dies ist notwendig, da bestimmte Stile die Farbpalette anpassen müssen, um vollständig mit dem Styleguide übereinzustimmen.

Das Setzen des Stils, bevor eine Palette gesetzt wurde, d.h. bevor QApplication erstellt wurde, führt dazu, dass die Anwendung QStyle::standardPalette() für die Palette verwendet.

Warnung: Qt Style Sheets werden derzeit nicht für benutzerdefinierte QStyle Unterklassen unterstützt. Wir planen, dies in einer zukünftigen Version zu ändern.

Siehe auch style(), QStyle, setPalette(), und desktopSettingsAware().

[static] QStyle *QApplication::setStyle(const QString &style)

Dies ist eine überladene Funktion.

Fordert ein QStyle Objekt für style von QStyleFactory an.

Die Zeichenkette muss eine der QStyleFactory::keys() sein, typischerweise eine von "windows", "windowsvista", "fusion" oder "macos". Bei Stilnamen wird die Groß- und Kleinschreibung nicht berücksichtigt.

Gibt nullptr zurück, wenn ein unbekannter style übergeben wird, andernfalls wird das zurückgegebene QStyle Objekt als GUI-Stil der Anwendung festgelegt.

Warnung: Um sicherzustellen, dass der Stil der Anwendung korrekt gesetzt wird, ist es am besten, diese Funktion vor dem QApplication Konstruktor aufzurufen, wenn möglich.

[static] QStyle *QApplication::style()

Gibt das Style-Objekt der Anwendung zurück.

Siehe auch setStyle() und QStyle.

[static] QWidget *QApplication::topLevelAt(const QPoint &point)

Gibt das Top-Level-Widget unter der angegebenen Adresse point zurück; gibt nullptr zurück, wenn es kein solches Widget gibt.

[static] QWidget *QApplication::topLevelAt(int x, int y)

Dies ist eine überladene Funktion.

Gibt das Top-Level-Widget an der Stelle (x, y) zurück; gibt 0 zurück, wenn es kein solches Widget gibt.

[static] QWidgetList QApplication::topLevelWidgets()

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

Hinweis: Einige der Widgets der obersten Ebene können ausgeblendet sein, z. B. ein Tooltip, wenn derzeit kein Tooltip angezeigt wird.

Beispiel:

void showAllHiddenTopLevelWidgets()
{
    const QWidgetList topLevelWidgets = QApplication::topLevelWidgets();
    for (QWidget *widget : topLevelWidgets) {
        if (widget->isHidden())
            widget->show();
    }
}

Siehe auch allWidgets(), QWidget::isWindow(), und QWidget::isHidden().

[static] QWidget *QApplication::widgetAt(const QPoint &point)

Liefert das Widget an der globalen Bildschirmposition point, oder nullptr, wenn es dort kein Qt-Widget gibt.

Diese Funktion kann langsam sein.

Siehe auch QCursor::pos(), QWidget::grabMouse(), und QWidget::grabKeyboard().

[static] QWidget *QApplication::widgetAt(int x, int y)

Dies ist eine überladene Funktion.

Gibt das Widget an der globalen Bildschirmposition (x, y) zurück, oder nullptr wenn es dort kein Qt-Widget gibt.

Makro-Dokumentation

qApp

Ein globaler Zeiger, der auf das eindeutige Anwendungsobjekt verweist. Er ist äquivalent zu QCoreApplication::instance(), wird aber als QApplication Zeiger gecastet und ist daher nur gültig, wenn das eindeutige Anwendungsobjekt ein QApplication ist.

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