Window QML Type
Erzeugt ein neues Fenster der obersten Ebene. Mehr...
Import Statement: | import QtQuick |
In C++: | QQuickWindow |
Eigenschaften
- active : bool
- activeFocusItem : Item
- color : color
- contentItem : Item
- contentOrientation : Qt::ScreenOrientation
- data : list<QtObject>
- flags : Qt::WindowFlags
- height : int
- maximumHeight : int
- maximumWidth : int
- minimumHeight : int
- minimumWidth : int
- modality : Qt::WindowModality
- opacity : real
- palette : Palette
(since 6.0)
- screen : variant
- title : string
- transientParent : QWindow
- visibility : QWindow::Visibility
- visible : bool
- width : int
- x : int
- y : int
Beigefügte Eigenschaften
- active : bool
- activeFocusItem : Item
- contentItem : Item
- height : int
- visibility : QWindow::Visibility
- width : int
- window : Window
Signale
- afterAnimating()
- closing(CloseEvent close)
- frameSwapped()
- sceneGraphError(SceneGraphError error, QString message)
Methoden
- alert(int msec)
- close()
- hide()
- lower()
- raise()
- requestActivate()
- show()
- showFullScreen()
- showMaximized()
- showMinimized()
- showNormal()
Detaillierte Beschreibung
Das Window-Objekt erstellt ein neues Fenster auf oberster Ebene für eine Qt Quick Szene. Es richtet das Fenster automatisch für die Verwendung mit QtQuick
graphischen Typen ein.
Ein Fenster kann innerhalb eines Elements oder innerhalb eines anderen Fensters deklariert werden. In diesem Fall wird das innere Fenster automatisch "transient für" das äußere Fenster, wobei das äußere Fenster als sein transientParent dient. Die meisten Plattformen zeigen das Fenster in diesem Fall zentriert auf dem äußeren Fenster an, und es kann andere plattformabhängige Verhaltensweisen geben, die auch von flags abhängen. Wenn das verschachtelte Fenster in Ihrer Anwendung ein Dialog sein soll, sollten Sie auch flags auf Qt.Dialog
setzen, da einige Fenstermanager das Zentrierverhalten ohne dieses Flag nicht anbieten.
Sie können auch mehrere Fenster innerhalb eines Top-Level-Fensters QtObject deklarieren, in diesem Fall werden die Fenster keine transiente Beziehung haben.
Alternativ dazu können Sie x und y setzen oder binden, um das Fenster explizit auf dem Bildschirm zu positionieren.
Wenn der Benutzer versucht, ein Fenster zu schließen, wird das Signal closing ausgegeben. Sie können erzwingen, dass das Fenster geöffnet bleibt (z. B. um den Benutzer zum Speichern von Änderungen aufzufordern), indem Sie einen onClosing
-Handler schreiben, der close.accepted = false
setzt, solange es nicht sicher ist, das Fenster zu schließen (z. B. weil es keine ungespeicherten Änderungen mehr gibt).
onClosing: (close) => { if (document.changed) { close.accepted = false confirmExitPopup.open() } } // The confirmExitPopup allows user to save or discard the document, // or to cancel the closing.
Gestalten von
Wie bei allen visuellen Typen in Qt Quick unterstützt Window palettes. Wie bei Typen wie Text werden jedoch auch bei Window standardmäßig keine Paletten verwendet. Um zum Beispiel die Hintergrundfarbe des Fensters zu ändern, wenn sich das Thema des Betriebssystems ändert, muss die color gesetzt werden:
Window { visible: true // here we use the Window.active and Window.palette ordinary properties color: active ? palette.active.window : palette.inactive.window Text { anchors.centerIn: parent // here we use the Window.active attached property and the Item.palette property color: Window.active ? palette.active.windowText : palette.inactive.windowText text: Window.active ? "active" : "inactive" } }
Verwenden Sie ApplicationWindow (und Label) von Qt Quick Controls anstelle von Window, um ein automatisches Styling zu erhalten.
Dokumentation der Eigenschaft
Bestimmt die Position und Größe des Fensters.
Die (x,y)-Position bezieht sich auf die Screen, wenn es nur eine gibt, oder auf den virtuellen Desktop (Anordnung mehrerer Bildschirme).
Hinweis: Nicht alle Windowing-Systeme unterstützen das Setzen oder Abfragen von Fensterpositionen auf oberster Ebene. Auf einem solchen System hat das programmatische Verschieben von Fenstern möglicherweise keine Auswirkungen, und es werden möglicherweise künstliche Werte für die aktuellen Positionen zurückgegeben, wie z. B. QPoint(0, 0)
.
Window { x: 100; y: 100; width: 100; height: 100 }
Legt die Mindestgröße des Fensters fest.
Dies ist ein Hinweis an den Fenstermanager, um eine Größenänderung unter die angegebene Breite und Höhe zu verhindern.
Legt die maximale Größe des Fensters fest.
Dies ist ein Hinweis an den Fenstermanager, die Größenänderung über die angegebene Breite und Höhe hinaus zu verhindern.
active : bool |
Der aktive Status des Fensters.
Window { visible: true // here we use the Window.active and Window.palette ordinary properties color: active ? palette.active.window : palette.inactive.window }
Siehe auch requestActivate().
activeFocusItem : Item |
Das Element, das derzeit den aktiven Fokus hat oder null
, wenn es kein Element mit aktivem Fokus gibt.
color : color |
Die Hintergrundfarbe für das Fenster.
Die Einstellung dieser Eigenschaft ist effizienter als die Verwendung eines separaten Rectangle.
Hinweis: Wenn Sie die Farbe auf "transparent"
oder auf eine Farbe mit Alpha-Transluzenz setzen, sollten Sie auch eine geeignete flags wie flags: Qt.FramelessWindowHint
setzen. Andernfalls wird die Durchsichtigkeit des Fensters möglicherweise nicht auf allen Plattformen einheitlich aktiviert.
contentItem : Item |
Das unsichtbare Stammelement der Szene.
contentOrientation : Qt::ScreenOrientation |
Dies ist ein Hinweis für den Fenstermanager, falls er zusätzliche Inhalte wie Popups, Dialoge, Statusleisten oder ähnliches in Bezug auf das Fenster anzeigen muss.
Die empfohlene Ausrichtung ist Screen.orientation, aber eine Anwendung muss nicht alle möglichen Ausrichtungen unterstützen und kann daher die aktuelle Bildschirmausrichtung ignorieren.
Die Differenz zwischen der Ausrichtung des Fensters und des Inhalts bestimmt, um wie viel der Inhalt gedreht werden soll.
Der Standardwert ist Qt::PrimaryOrientation.
Siehe auch Screen.
Die Eigenschaft data erlaubt es Ihnen, visuelle Kinder, Ressourcen und andere Fenster in einem Fenster frei zu mischen.
Wenn Sie der Datenliste ein anderes Fenster zuweisen, wird das verschachtelte Fenster "transient" für das äußere Fenster.
Wenn Sie der Datenliste ein Item zuweisen, wird es zu einem untergeordneten Element des Fensters contentItem, so dass es innerhalb des Fensters erscheint. Das Elternteil des Objekts ist die contentItem des Fensters, die die Wurzel des Objektbesitzbaums innerhalb des Fensters ist.
Wenn Sie einen anderen Objekttyp zuweisen, wird dieser als Ressource hinzugefügt.
Im Allgemeinen sollte es nicht notwendig sein, auf die Eigenschaft data
zu verweisen, da sie die Standardeigenschaft für Window ist und somit alle untergeordneten Elemente automatisch dieser Eigenschaft zugewiesen werden.
Siehe auch QWindow::transientParent().
flags : Qt::WindowFlags |
Die Window-Flags des Fensters.
Die Fensterflags steuern das Aussehen des Fensters im Fenstersystem, ob es ein Dialog, ein Popup oder ein normales Fenster ist und ob es eine Titelleiste haben soll, usw.
Die Flags, die Sie aus dieser Eigenschaft lesen, können sich von denen unterscheiden, die Sie gesetzt haben, wenn die angeforderten Flags nicht erfüllt werden konnten.
import QtQuick Window { id: mainWindow title: "Main Window" color: "#456" property real defaultSpacing: 10 property Splash splash: Splash { onTimeout: mainWindow.show() } component Splash: Window { id: splash // a splash screen has no titlebar flags: Qt.SplashScreen // the transparent color lets background behind the image edges show through color: "transparent" modality: Qt.ApplicationModal // in case another application window is showing title: "Splash Window" // for the taskbar/dock, task switcher etc. visible: true // here we use the Screen attached property to center the splash window x: (Screen.width - splashImage.width) / 2 y: (Screen.height - splashImage.height) / 2 width: splashImage.width height: splashImage.height property int timeoutInterval: 2000 signal timeout Image { id: splashImage source: "images/qt-logo.png" } TapHandler { onTapped: splash.timeout() } Timer { interval: splash.timeoutInterval; running: true; repeat: false onTriggered: { splash.visible = false splash.timeout() } } } }
Siehe auch Qt::WindowFlags und Qt Quick Beispiele - Fenster und Bildschirm.
modality : Qt::WindowModality |
Die Modalität des Fensters.
Ein modales Fenster hindert andere Fenster daran, Eingabeereignisse zu empfangen. Mögliche Werte sind Qt.NonModal (der Standard), Qt.WindowModal und Qt.ApplicationModal.
opacity : real |
Die Opazität des Fensters.
Wenn das Fenstersystem Opazität unterstützt, kann dies verwendet werden, um das Fenster ein- und auszublenden oder es halbtransparent zu machen.
Ein Wert von 1,0 oder darüber wird als vollständig undurchsichtig behandelt, während ein Wert von 0,0 oder darunter als vollständig transparent gilt. Dazwischen liegende Werte repräsentieren verschiedene Stufen der Lichtdurchlässigkeit zwischen den beiden Extremen.
Der Standardwert ist 1.0.
palette : Palette |
Diese Eigenschaft enthält die aktuell für das Fenster eingestellte Palette.
Die Standardpalette hängt von der Systemumgebung ab. QGuiApplication verwaltet eine System-/Themenpalette, die als Standard für alle Anwendungsfenster dient. Sie können die Standardpalette für Fenster auch festlegen, indem Sie eine eigene Palette an QGuiApplication::setPalette() übergeben, bevor Sie QML laden.
Window überträgt explizite Paletteneigenschaften auf untergeordnete Elemente und Steuerelemente und setzt dabei alle Systemvorgaben für diese Eigenschaft außer Kraft.
import QtQuick import QtQuick.Controls Window { visible: true // here we use the Window.active and Window.palette ordinary properties color: active ? palette.active.window : palette.inactive.window // colors that are not customized here come from SystemPalette palette.active.window: "peachpuff" palette.windowText: "brown" Text { anchors.centerIn: parent // here we use the Window.active attached property and the Item.palette property color: Window.active ? palette.active.windowText : palette.inactive.windowText text: Window.active ? "active" : "inactive" } Button { text: "Button" anchors { bottom: parent.bottom bottomMargin: 6 horizontalCenter: parent.horizontalCenter } } }
Diese Eigenschaft wurde in Qt 6.0 eingeführt.
Siehe auch Item::palette, Popup::palette, ColorGroup, und SystemPalette.
screen : variant |
Der Bildschirm, mit dem das Fenster verknüpft ist.
Wird diese Eigenschaft vor dem Anzeigen eines Fensters angegeben, wird das Fenster auf diesem Bildschirm angezeigt, es sei denn, es wurde eine explizite Fensterposition festgelegt. Der Wert muss ein Element aus dem Array Qt.application.screens sein.
Hinweis: Um sicherzustellen, dass das Fenster mit dem gewünschten Bildschirm assoziiert wird, wenn das zugrunde liegende native Fenster erstellt wird, stellen Sie sicher, dass diese Eigenschaft so früh wie möglich gesetzt wird und dass das Setzen des Wertes nicht aufgeschoben wird. Dies kann besonders auf eingebetteten Plattformen ohne Fenstersystem wichtig sein, wo jeweils nur ein Fenster pro Bildschirm erlaubt ist. Das Setzen des Bildschirms nach dem Erstellen eines Fensters verschiebt das Fenster nicht, wenn der neue Bildschirm Teil desselben virtuellen Desktops ist wie der alte Bildschirm.
Siehe auch QWindow::setScreen(), QWindow::screen(), QScreen, und Qt.application.
title : string |
Der Fenstertitel im Windowing-System.
Der Fenstertitel kann im Titelbereich der Fensterdekorationen erscheinen, abhängig vom Fenstersystem und den Fensterflags. Er kann auch vom Fenstersystem verwendet werden, um das Fenster in anderen Kontexten zu identifizieren, z. B. im Task Switcher.
transientParent : QWindow |
Das Fenster, für das dieses Fenster ein transientes Pop-up ist.
Dies ist ein Hinweis an den Fenstermanager, dass es sich bei diesem Fenster um ein Dialog- oder Popup-Fenster im Namen des übergeordneten Fensters handelt. Normalerweise bedeutet dies, dass das transiente Fenster über dem übergeordneten Fenster zentriert wird, wenn es zum ersten Mal angezeigt wird, dass das Minimieren des übergeordneten Fensters auch das transiente Fenster minimiert und so weiter; die Ergebnisse variieren jedoch von Plattform zu Plattform.
Das Deklarieren eines Fensters innerhalb eines Elements oder eines anderen Fensters, entweder über default property oder über eine spezielle Eigenschaft, stellt automatisch eine transiente Elternbeziehung zu dem enthaltenden Fenster her, es sei denn, die Eigenschaft transientParent wird explizit gesetzt. Dies gilt auch für die Erstellung von Fensterelementen über Qt.createComponent oder Qt.createQmlObject, solange ein Element oder Fenster als parent
Argument übergeben wird.
Ein Window mit einem transienten Parent wird erst angezeigt, wenn sein transienter Parent angezeigt wird, auch wenn die visible Eigenschaft true
lautet. Dies gilt auch für die oben beschriebene automatische transiente Elternbeziehung. Insbesondere, wenn das enthaltende Element des Fensters ein Element ist, wird das Fenster nicht angezeigt, bis das enthaltende Element über seine visuelle Elternhierarchie zu einer Szene hinzugefügt wird. Wenn Sie transientParent auf null
setzen, wird dieses Verhalten außer Kraft gesetzt:
Um zu bewirken, dass das Fenster standardmäßig über seinem transienten Elternteil zentriert wird, kann es je nach Fenstermanager auch notwendig sein, die Eigenschaft Window::flags mit einem geeigneten Qt::WindowType (z. B. Qt::Dialog
) zu setzen.
Siehe auch parent().
visibility : QWindow::Visibility |
Der Zustand des Fensters, in dem es den Bildschirm belegt.
Die Sichtbarkeit gibt an, ob das Fenster im Fenstersystem als normal, minimiert, maximiert, bildschirmfüllend oder versteckt erscheinen soll.
Die Sichtbarkeit auf AutomaticVisibility zu setzen, bedeutet, dem Fenster einen Standard-Sichtbarkeitsstatus zu geben, der je nach Plattform FullScreen oder Windowed sein kann. Beim Auslesen der Sichtbarkeitseigenschaft erhalten Sie jedoch immer den aktuellen Zustand, niemals AutomaticVisibility
.
Wenn ein Fenster nicht sichtbar ist, ist seine Sichtbarkeit Hidden
, und das Setzen der Sichtbarkeit auf Hidden ist das gleiche wie das Setzen von visible auf false
.
import QtQuick import QtQuick.Controls Window { id: win flags: Qt.Window | Qt.WindowFullscreenButtonHint visibility: fullscreenButton.checked ? Window.FullScreen : Window.Windowed Button { id: fullscreenButton anchors { right: parent.right top: parent.top margins: 6 } width: height checkable: true Binding on checked { value: win.visibility === Window.FullScreen } text: "⛶" ToolTip.visible: hovered ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval ToolTip.text: win.visibility === Window.FullScreen ? qsTr("restore") : qsTr("fill screen") } }
Siehe auch visible und Qt Quick Beispiele - Fenster und Bildschirm.
visible : bool |
Ob das Fenster auf dem Bildschirm sichtbar ist.
Das Setzen von visible auf false entspricht dem Setzen von visibility auf Hidden.
Der Standardwert ist false
, es sei denn, er wird durch die Einstellung visibility überschrieben.
Siehe auch visibility.
Dokumentation der angehängten Eigenschaft
Diese angehängten Eigenschaften geben die Größe des Fensters des Objekts an. Die angehängte Eigenschaft Fenster kann an jedes Element angehängt werden.
Window.active : bool |
Diese angehängte Eigenschaft gibt an, ob das Fenster aktiv ist. Die angehängte Eigenschaft Fenster kann an jedes Element angehängt werden.
Im folgenden Beispiel wird ein Etikett geändert, um den aktiven Status des Fensters anzuzeigen, in dem es angezeigt wird:
import QtQuick Text { text: Window.active ? "active" : "inactive" }
Window.activeFocusItem : Item |
Diese angehängte Eigenschaft enthält das Element, das derzeit den aktiven Fokus hat oder null
, wenn es kein Element mit aktivem Fokus gibt. Die Eigenschaft Window attached kann an jedes beliebige Element angehängt werden.
Window.contentItem : Item |
Diese angehängte Eigenschaft enthält das unsichtbare Stammelement der Szene oder null
, wenn sich das Element nicht in einem Fenster befindet. Die Eigenschaft Window attached kann an ein beliebiges Element angehängt werden.
Window.visibility : QWindow::Visibility |
Diese angehängte Eigenschaft gibt an, ob das Fenster derzeit im Fenstersystem als normal, minimiert, maximiert, Vollbild oder versteckt angezeigt wird. Die angehängte Eigenschaft Window
kann an jedes beliebige Element angehängt werden. Wenn das Element in keinem Fenster angezeigt wird, ist der Wert Hidden.
Siehe auch visible und visibility.
Window.window : Window |
Diese angehängte Eigenschaft enthält das Fenster des Elements. Die angehängte Eigenschaft Window kann an jedes Element angehängt werden.
Signal Dokumentation
afterAnimating() |
Dieses Signal wird auf dem GUI-Thread ausgegeben, bevor der Render-Thread aufgefordert wird, die Synchronisierung des Szenegraphen durchzuführen.
Sie können onAfterAnimating implementieren, um eine zusätzliche Verarbeitung nach jedem Animationsschritt durchzuführen.
Hinweis: Der entsprechende Handler ist onAfterAnimating
.
closing(CloseEvent close) |
Dieses Signal wird ausgesendet, wenn der Benutzer versucht, das Fenster zu schließen.
Dieses Signal enthält einen close Parameter. Die Eigenschaft close.accepted
ist standardmäßig true, damit das Fenster geschlossen werden kann; Sie können jedoch einen onClosing
Handler implementieren und close.accepted = false
setzen, wenn Sie etwas anderes tun müssen, bevor das Fenster geschlossen werden kann.
Hinweis: Der entsprechende Handler ist onClosing
.
frameSwapped() |
Dieses Signal wird ausgegeben, wenn ein Frame in die Warteschlange für die Präsentation gestellt wurde. Bei aktivierter vertikaler Synchronisation wird das Signal höchstens einmal pro vsync-Intervall in einer kontinuierlich animierten Szene ausgegeben.
Hinweis: Der entsprechende Handler ist onFrameSwapped
.
sceneGraphError(SceneGraphError error, QString message) |
Dieses Signal wird ausgegeben, wenn während der Initialisierung des Szenengraphen ein error aufgetreten ist.
Sie können onSceneGraphError(error, message) implementieren, um Fehler, wie z.B. Fehler bei der Erstellung von Grafikkontexten, auf eine eigene Art zu behandeln. Wenn kein Handler mit diesem Signal verbunden ist, druckt Quick die message oder zeigt eine Messagebox an und beendet die Anwendung.
Hinweis: Der entsprechende Handler ist onSceneGraphError
.
Methode Dokumentation
alert(int msec) |
Veranlasst, dass ein Alarm für msec Millisekunden angezeigt wird. Ist msec gleich 0
(Standard), wird die Warnung auf unbestimmte Zeit angezeigt, bis das Fenster wieder aktiv wird.
Im Alarmzustand zeigt das Fenster an, dass es Aufmerksamkeit verlangt, z. B. durch Blinken oder Aufspringen des Taskleisteneintrags.
close() |
Schließt das Fenster.
Wenn diese Methode aufgerufen wird, oder wenn der Benutzer versucht, das Fenster über die Schaltfläche in der Titelleiste zu schließen, wird das Signal closing ausgegeben. Wenn es keinen Handler gibt, oder der Handler die Erlaubnis zum Schließen nicht widerruft, wird das Fenster anschließend geschlossen. Wenn die Eigenschaft QGuiApplication::quitOnLastWindowClosed true
lautet und keine anderen Fenster geöffnet sind, wird die Anwendung beendet.
hide() |
Blendet das Fenster aus.
Entspricht dem Setzen von visible auf false
oder visibility auf Hidden.
Siehe auch show().
lower() |
Verringert das Fenster im Fenstersystem.
Verlangt, dass das Fenster so abgesenkt wird, dass es unter anderen Fenstern erscheint.
raise() |
Hebt das Fenster im Fenstersystem an.
Verlangt, dass das Fenster angehoben wird, damit es über anderen Fenstern erscheint.
requestActivate() |
Beantragt, dass das Fenster aktiviert wird, d. h. den Tastaturfokus erhält.
show() |
Zeigt das Fenster an.
Dies entspricht dem Aufruf von showFullScreen(), showMaximized() oder showNormal(), je nach dem Standardverhalten der Plattform für den Fenstertyp und die Flags.
Siehe auch showFullScreen(), showMaximized(), showNormal(), hide(), und QQuickItem::flags().
showFullScreen() |
Zeigt das Fenster als Vollbild an.
Entspricht der Einstellung von visibility auf FullScreen.
showMaximized() |
Zeigt das Fenster in maximierter Form an.
Entspricht der Einstellung von visibility auf Maximized.
showMinimized() |
Zeigt das Fenster minimiert an.
Entspricht der Einstellung von visibility auf Minimized.
showNormal() |
Zeigt das Fenster normal an, d. h. weder maximiert, minimiert noch im Vollbildmodus.
Entspricht der Einstellung von visibility auf Windowed.
© 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.