QWidget Class

Die Klasse QWidget ist die Basisklasse für alle Objekte der Benutzeroberfläche. Mehr...

Öffentliche Typen

enum RenderFlag { DrawWindowBackground, DrawChildren, IgnoreMask }
flags RenderFlags

Eigenschaften

Öffentliche Funktionen

QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
virtuell ~QWidget()
bool acceptDrops() const
QString accessibleDescription() const
QString accessibleName() const
QList<QAction *> actions() const
void activateWindow()
void addAction(QAction *action)
(since 6.3) QAction *addAction(const QString &text)
(since 6.3) QAction *addAction(konst. QIcon &icon, konst. QString &text)
(since 6.3) QAction *addAction(const QString &text, const QKeySequence &Kurzbefehl)
(since 6.3) QAction *addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut)
(since 6.3) QAction *addAction(const QString &text, Args &&... args)
(since 6.3) QAction *addAction(const QIcon &icon, const QString &text, Args &&... args)
(since 6.3) QAction *addAction(const QString &text, const QKeySequence &shortcut, Args &&... args)
(since 6.3) QAction *addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, Args &&... args)
(since 6.3) QAction *addAction(const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)
(since 6.3) QAction *addAction(const QIcon &icon, const QString &text, const QObject *Empfänger, const char *member, Qt::ConnectionType type = Qt::AutoConnection)
(since 6.3) QAction *addAction(const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)
(since 6.3) QAction *addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)
void addActions(const QList<QAction *> &actions)
void adjustSize()
bool autoFillBackground() const
QPalette::ColorRole backgroundRole() const
QBackingStore *backingStore() const
QSize baseSize() const
QWidget *childAt(int x, int y) const
QWidget *childAt(const QPoint&p) const
(since 6.8) QWidget *childAt(const QPointF&p) const
QRect childrenRect() const
QRegion childrenRegion() const
void clearFocus()
void clearMask()
QMargins contentsMargins() const
QRect contentsRect() const
Qt::ContextMenuPolicy contextMenuPolicy() const
QCursor cursor() const
WId effectiveWinId() const
void ensurePolished() const
Qt::FocusPolicy focusPolicy() const
QWidget *focusProxy() const
QWidget *focusWidget() const
const QFont &font() const
QFontInfo fontInfo() const
QFontMetrics fontMetrics() const
QPalette::FarbRolle foregroundRole() const
QRect frameGeometry() const
QSize frameSize() const
const QRect &geometry() const
QPixmap grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))
void grabGesture(Qt::GestureType gesture, Qt::GestureFlags flags = Qt::GestureFlags())
void grabKeyboard()
void grabMouse()
void grabMouse(const QCursor &cursor)
int grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut)
QGraphicsEffect *graphicsEffect() const
QGraphicsProxyWidget *graphicsProxyWidget() const
bool hasEditFocus() const
bool hasFocus() const
virtuell bool hasHeightForWidth() const
bool hasMouseTracking() const
bool hasTabletTracking() const
int height() const
virtuelle int heightForWidth(int w) const
Qt::InputMethodHints inputMethodHints() const
virtuelle QVariant inputMethodQuery(Qt::InputMethodQuery Abfrage) const
void insertAction(QAction *before, QAction *action)
void insertActions(QAction *before, const QList<QAction *> &actions)
bool isActiveWindow() const
bool isAncestorOf(const QWidget *child) const
bool isEnabled() const
bool isEnabledTo(const QWidget *ancestor) const
bool isFullScreen() const
bool isHidden() const
bool isMaximized() konst
bool isMinimized() konst
bool isModal() konst
bool isVisible() konst
bool isVisibleTo(const QWidget *ancestor) const
bool isWindow() const
bool isWindowModified() const
QLayout *layout() const
Qt::LayoutDirection layoutDirection() const
QLocale locale() const
(since 6.0) QPointF mapFrom(const QWidget *parent, const QPointF &pos) const
QPoint mapFrom(const QWidget *parent, const QPoint &pos) const
(since 6.0) QPointF mapFromGlobal(konst QPointF &pos) konst
QPoint mapFromGlobal(konst QPoint &pos) konst
(since 6.0) QPointF mapFromParent(konst QPointF &pos) konst
QPoint mapFromParent(const QPoint &pos) const
(since 6.0) QPointF mapTo(const QWidget *parent, const QPointF &pos) const
QPoint mapTo(const QWidget *parent, const QPoint &pos) const
(since 6.0) QPointF mapToGlobal(const QPointF &pos) const
QPoint mapToGlobal(konst QPoint &pos) konst
(since 6.0) QPointF mapToParent(konst QPointF &pos) konst
QPoint mapToParent(const QPoint &pos) const
QRegion mask() const
int maximumHeight() const
QSize maximumSize() const
int maximumWidth() const
int minimumHeight() const
QSize minimumSize() const
virtuelle QSize minimumSizeHint() const
int minimumWidth() const
void move(const QPoint &)
void move(int x, int y)
QWidget *nativeParentWidget() const
QWidget *nextInFocusChain() const
QRect normalGeometry() const
void overrideWindowFlags(Qt::WindowFlags flags)
const QPalette &palette() const
QWidget *parentWidget() const
QPoint pos() const
QWidget *previousInFocusChain() const
QRect rect() const
void releaseKeyboard()
void releaseMouse()
void releaseShortcut(int id)
void removeAction(QAction *action)
void render(QPaintDevice *target, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))
void render(QPainter *Maler, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))
void repaint(const QRect &rect)
void repaint(const QRegion &rgn)
void repaint(int x, int y, int w, int h)
void resize(const QSize &)
void resize(int w, int h)
bool restoreGeometry(const QByteArray &geometry)
QByteArray saveGeometry() const
QScreen *screen() const
void scroll(int dx, int dy)
void scroll(int dx, int dy, const QRect &r)
void setAcceptDrops(bool on)
void setAccessibleDescription(const QString &Beschreibung)
void setAccessibleName(const QString &name)
void setAttribute(Qt::WidgetAttribut attribut, bool on = true)
void setAutoFillBackground(bool aktiviert)
void setBackgroundRole(QPalette::ColorRole Rolle)
void setBaseSize(Konst. QSize &)
void setBaseSize(int basew, int baseh)
void setContentsMargins(int links, int oben, int rechts, int unten)
void setContentsMargins(const QMargins &margins)
void setContextMenuPolicy(Qt:: ContextMenuPolicy-Richtlinie)
void setCursor(const QCursor &)
void setEditFocus(bool enable)
void setFixedHeight(int h)
void setFixedSize(const QSize &s)
void setFixedSize(int w, int h)
void setFixedWidth(int w)
void setFocus(Qt::FocusReason Grund)
void setFocusPolicy(Qt:: FocusPolicy-Richtlinie)
void setFocusProxy(QWidget *w)
void setFont(konst. QFont &)
void setForegroundRole(QPalette::ColorRole Rolle)
void setGeometry(const QRect &)
void setGeometry(int x, int y, int w, int h)
void setGraphicsEffect(QGraphicsEffect *effect)
void setInputMethodHints(Qt::InputMethodHints hints)
void setLayout(QLayout *layout)
void setLayoutDirection(Qt::LayoutDirection direction)
void setLocale(konst. QLocale &locale)
void setMask(const QBitmap &bitmap)
void setMask(const QRegion &region)
void setMaximumHeight(int maxh)
void setMaximumSize(const QSize &)
void setMaximumSize(int maxw, int maxh)
void setMaximumWidth(int maxw)
void setMinimumHeight(int minh)
void setMinimumSize(const QSize &)
void setMinimumSize(int minw, int minh)
void setMinimumWidth(int minw)
void setMouseTracking(bool enable)
void setPalette(konst. QPalette &)
void setParent(QWidget *parent)
void setParent(QWidget *Elternteil, Qt::WindowFlags f)
void setScreen(QScreen *screen)
void setShortcutAutoRepeat(int id, bool enable = true)
void setShortcutEnabled(int id, bool enable = true)
void setSizeIncrement(const QSize &)
void setSizeIncrement(int w, int h)
void setSizePolicy(QSizePolicy)
void setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertikal)
void setStatusTip(konst. QString &)
void setStyle(QStyle *style)
void setTabletTracking(bool enable)
void setToolTip(konst. QString &)
void setToolTipDuration(int msec)
void setUpdatesEnabled(bool enable)
void setWhatsThis(konst. QString &)
void setWindowFilePath(konst. QString &filePath)
void setWindowFlag(Qt::WindowType flag, bool on = true)
void setWindowFlags(Qt::WindowFlags type)
void setWindowIcon(Konst. QIcon &icon)
void setWindowModality(Qt::WindowModality windowModality)
void setWindowOpacity(qreal level)
void setWindowRole(const QString &role)
void setWindowState(Qt::WindowStates windowState)
void setupUi(QWidget *widget)
QSize size() const
virtuelle QSize sizeHint() const
QSize sizeIncrement() const
QSizePolicy sizePolicy() const
void stackUnder(QWidget *w)
QString statusTip() const
QStyle *style() const
QString styleSheet() const
bool testAttribute(Qt::WidgetAttribut Attribut) const
QString toolTip() const
int toolTipDuration() const
bool underMouse() const
void ungrabGesture(Qt::GestureType Geste)
void unsetCursor()
void unsetLayoutDirection()
void unsetLocale()
void update(const QRect &rect)
void update(const QRegion &rgn)
void update(int x, int y, int w, int h)
void updateGeometry()
bool updatesEnabled() const
QRegion visibleRegion() const
QString whatsThis() const
int width() const
WId winId() const
QWidget *window() const
QString windowFilePath() const
Qt::WindowFlags windowFlags() const
QWindow *windowHandle() const
QIcon windowIcon() const
Qt::WindowModality windowModality() const
qreal windowOpacity() const
QString windowRole() const
Qt::WindowStates windowState() const
QString windowTitle() konst
Qt::WindowType windowType() const
int x() const
int y() const

Reimplementierte öffentliche Funktionen

virtual QPaintEngine *paintEngine() const override

Öffentliche Slots

bool close()
void hide()
void lower()
void raise()
void repaint()
void setDisabled(bool disable)
void setEnabled(bool)
void setFocus()
void setHidden(bool hidden)
void setStyleSheet(const QString &styleSheet)
virtual void setVisible(bool visible)
void setWindowModified(bool)
void setWindowTitle(const QString &)
void show()
void showFullScreen()
void showMaximized()
void showMinimized()
void showNormal()
void update()

Signale

void customContextMenuRequested(const QPoint &pos)
void windowIconChanged(const QIcon &icon)
void windowTitleChanged(const QString &title)

Statische öffentliche Mitglieder

QWidget *createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
QWidget *find(WId id)
QWidget *keyboardGrabber()
QWidget *mouseGrabber()
void setTabOrder(QWidget *first, QWidget *second)
(since 6.6) void setTabOrder(std::initializer_list<QWidget *> widgets)

Geschützte Funktionen

virtual void actionEvent(QActionEvent *event)
virtual void changeEvent(QEvent *event)
virtual void closeEvent(QCloseEvent *event)
virtual void contextMenuEvent(QContextMenuEvent *event)
void create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true)
void destroy(bool destroyWindow = true, bool destroySubWindows = true)
virtual void dragEnterEvent(QDragEnterEvent *event)
virtual void dragLeaveEvent(QDragLeaveEvent *event)
virtual void dragMoveEvent(QDragMoveEvent *event)
virtual void dropEvent(QDropEvent *event)
virtual void enterEvent(QEnterEvent *event)
virtual void focusInEvent(QFocusEvent *event)
bool focusNextChild()
virtual bool focusNextPrevChild(bool next)
virtual void focusOutEvent(QFocusEvent *event)
bool focusPreviousChild()
virtual void hideEvent(QHideEvent *event)
virtual void inputMethodEvent(QInputMethodEvent *event)
virtual void keyPressEvent(QKeyEvent *event)
virtual void keyReleaseEvent(QKeyEvent *event)
virtual void leaveEvent(QEvent *event)
virtual void mouseDoubleClickEvent(QMouseEvent *event)
virtual void mouseMoveEvent(QMouseEvent *event)
virtual void mousePressEvent(QMouseEvent *event)
virtual void mouseReleaseEvent(QMouseEvent *event)
virtual void moveEvent(QMoveEvent *event)
virtual bool nativeEvent(const QByteArray &eventType, void *message, qintptr *result)
virtual void paintEvent(QPaintEvent *event)
virtual void resizeEvent(QResizeEvent *event)
virtual void showEvent(QShowEvent *event)
virtual void tabletEvent(QTabletEvent *event)
virtual void wheelEvent(QWheelEvent *event)

Reimplementierte geschützte Funktionen

virtual bool event(QEvent *Ereignis) override
virtual void initPainter(QPainter *Painter) konstant override
virtual int metric(QPaintDevice::PaintDeviceMetric m) const override

Geschützte Steckplätze

void updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll)

Makros

Ausführliche Beschreibung

Das Widget ist das Atom der Benutzeroberfläche: Es empfängt Maus-, Tastatur- und andere Ereignisse vom Fenstersystem und zeichnet eine Darstellung seiner selbst auf dem Bildschirm. Jedes Widget ist rechteckig, und sie sind in einer Z-Reihenfolge sortiert. Ein Widget wird von seinem Elternteil und von den Widgets vor ihm beschnitten.

Ein Widget, das nicht in ein übergeordnetes Widget eingebettet ist, wird als Fenster bezeichnet. Normalerweise haben Fenster einen Rahmen und eine Titelleiste, obwohl es auch möglich ist, Fenster ohne diese Dekoration zu erstellen, indem man geeignete window flags verwendet. In Qt sind QMainWindow und die verschiedenen Unterklassen von QDialog die gängigsten Fenstertypen.

Der Konstruktor eines jeden Widgets akzeptiert ein oder zwei Standardargumente:

  1. QWidget *parent = nullptr ist das Elternteil des neuen Widgets. Wenn es nullptr ist (die Vorgabe), wird das neue Widget ein Fenster sein. Wenn nicht, wird es ein Kind des Elternteils sein und durch die Geometrie des Elternteils eingeschränkt werden (es sei denn, Sie geben Qt::Window als Fenster-Flag an).
  2. Qt::WindowFlags f = { } (wo vorhanden) setzt die Fenster-Flags; die Voreinstellung ist für die meisten Widgets geeignet, aber um z.B. ein Fenster ohne Fenster-Systemrahmen zu erhalten, müssen Sie spezielle Flags verwenden.

QWidget hat viele Mitgliedsfunktionen, aber einige von ihnen haben wenig direkte Funktionalität; zum Beispiel hat QWidget eine Schriftart-Eigenschaft, benutzt diese aber nie selbst. Es gibt viele Unterklassen, die echte Funktionalität bieten, wie QLabel, QPushButton, QListWidget und QTabWidget.

Widgets der obersten Ebene und untergeordnete Widgets

Ein Widget ohne ein übergeordnetes Widget ist immer ein unabhängiges Fenster (Top-Level-Widget). Für diese Widgets setzen setWindowTitle() und setWindowIcon() die Titelleiste bzw. das Symbol.

Nicht-Fenster-Widgets sind Kind-Widgets, die innerhalb ihrer Eltern-Widgets angezeigt werden. Die meisten Widgets in Qt sind hauptsächlich als untergeordnete Widgets nützlich. Es ist zum Beispiel möglich, eine Schaltfläche als Fenster der obersten Ebene anzuzeigen, aber die meisten Leute ziehen es vor, ihre Schaltflächen in anderen Widgets, wie QDialog, unterzubringen.

A parent widget containing various child widgets.

Das obige Diagramm zeigt ein QGroupBox -Widget, das zur Aufnahme verschiedener untergeordneter Widgets in einem von QGridLayout bereitgestellten Layout verwendet wird. Die untergeordneten Widgets von QLabel wurden umrandet, um ihre volle Größe anzuzeigen.

Wenn Sie ein QWidget zur Aufnahme von untergeordneten Widgets verwenden möchten, müssen Sie dem übergeordneten QWidget normalerweise ein Layout hinzufügen. Siehe Layout Management für weitere Informationen.

Zusammengesetzte Widgets

Wenn ein Widget als Container verwendet wird, um eine Reihe von untergeordneten Widgets zu gruppieren, wird es als zusammengesetztes Widget bezeichnet. Diese können erstellt werden, indem man ein Widget mit den erforderlichen visuellen Eigenschaften konstruiert - zum Beispiel QFrame- und ihm untergeordnete Widgets hinzufügt, die normalerweise durch ein Layout verwaltet werden.

Zusammengesetzte Widgets können auch erstellt werden, indem man ein Standard-Widget, wie QWidget oder QFrame, unterklassifiziert und das erforderliche Layout und die untergeordneten Widgets im Konstruktor der Unterklasse hinzufügt. Viele der mit Qt gelieferten Beispiele verwenden diesen Ansatz, und er wird auch im Qt Widgets Tutorial behandelt.

Benutzerdefinierte Widgets und Malerei

Da QWidget eine Unterklasse von QPaintDevice ist, können Unterklassen verwendet werden, um benutzerdefinierte Inhalte anzuzeigen, die durch eine Reihe von Maloperationen mit einer Instanz der Klasse QPainter zusammengestellt werden. Dieser Ansatz steht im Gegensatz zu dem vom Graphics View Framework verwendeten Canvas-Ansatz, bei dem die Elemente von der Anwendung zu einer Szene hinzugefügt und vom Framework selbst gerendert werden.

Jedes Widget führt alle Malvorgänge innerhalb seiner Funktion paintEvent() aus. Diese wird immer dann aufgerufen, wenn das Widget neu gezeichnet werden muss, entweder aufgrund einer externen Änderung oder auf Anforderung der Anwendung.

Das Beispiel der Analoguhr zeigt, wie ein einfaches Widget mit Malereignissen umgehen kann.

Größen-Hinweise und Größen-Policies

Bei der Implementierung eines neuen Widgets ist es fast immer sinnvoll, sizeHint() neu zu implementieren, um eine vernünftige Standardgröße für das Widget bereitzustellen und die korrekte Größenrichtlinie mit setSizePolicy() zu setzen.

Standardmäßig werden zusammengesetzte Widgets, die keinen Größenhinweis bereitstellen, entsprechend dem Platzbedarf ihrer Kind-Widgets dimensioniert.

Mit der Größenrichtlinie können Sie ein gutes Standardverhalten für das Layout-Verwaltungssystem vorgeben, so dass andere Widgets Ihre Widgets problemlos enthalten und verwalten können. Die Standard-Größenrichtlinie zeigt an, dass der Größenhinweis die bevorzugte Größe des Widgets repräsentiert, und dies ist für viele Widgets oft ausreichend.

Hinweis: Die Größe von Widgets der obersten Ebene ist auf 2/3 der Höhe und Breite des Desktops beschränkt. Sie können resize() das Widget manuell anpassen, wenn diese Grenzen nicht ausreichen.

Ereignisse

Widgets reagieren auf Ereignisse, die typischerweise durch Benutzeraktionen ausgelöst werden. Qt liefert Ereignisse an Widgets, indem es spezifische Ereignisbehandlungsfunktionen mit Instanzen von QEvent Unterklassen aufruft, die Informationen über jedes Ereignis enthalten.

Wenn Ihr Widget nur Child-Widgets enthält, müssen Sie wahrscheinlich keine Event-Handler implementieren. Wenn Sie einen Mausklick in einem untergeordneten Widget erkennen wollen, rufen Sie die Funktion underMouse() des untergeordneten Widgets innerhalb der Funktion mousePressEvent() des Widgets auf.

Das Scribble-Beispiel implementiert eine größere Anzahl von Ereignissen, um Mausbewegungen, Tastendrücke und die Größenänderung des Fensters zu behandeln.

Sie müssen das Verhalten und den Inhalt für Ihre eigenen Widgets selbst festlegen, aber hier ist ein kurzer Überblick über die Ereignisse, die für QWidget relevant sind, beginnend mit den häufigsten:

  • paintEvent() wird immer dann aufgerufen, wenn das Widget neu gezeichnet werden muss. Jedes Widget, das benutzerdefinierten Inhalt anzeigt, muss dies implementieren. Das Malen mit einem QPainter kann nur in einem paintEvent() oder einer Funktion, die von einem paintEvent() aufgerufen wird, stattfinden.
  • resizeEvent() wird aufgerufen, wenn die Größe des Widgets geändert wurde.
  • mousePressEvent() wird aufgerufen, wenn eine Maustaste gedrückt wird, während sich der Mauszeiger innerhalb des Widgets befindet, oder wenn das Widget die Maus mit grabMouse() ergriffen hat. Das Drücken der Maus, ohne sie loszulassen, ist praktisch dasselbe wie der Aufruf von grabMouse().
  • mouseReleaseEvent() wird aufgerufen, wenn eine Maustaste losgelassen wird. Ein Widget empfängt Mausfreigabeereignisse, wenn es das entsprechende Mausdruckereignis empfangen hat. Das bedeutet, dass Ihr Widget das Loslass-Ereignis empfängt, wenn der Benutzer die Maus innerhalb Ihres Widgets drückt und dann die Maus woanders hinzieht, bevor er die Maustaste loslässt. Es gibt eine Ausnahme: Wenn ein Popup-Menü erscheint, während die Maustaste gedrückt gehalten wird, stiehlt dieses Popup sofort die Mausereignisse.
  • mouseDoubleClickEvent() wird aufgerufen, wenn der Benutzer einen Doppelklick auf das Widget ausführt. Wenn der Benutzer doppelt klickt, empfängt das Widget ein Mausklick-Ereignis, ein Mausfreigabe-Ereignis, (ein Mausklick-Ereignis,) ein zweites Mausklick-Ereignis, dieses Ereignis und schließlich ein zweites Mausfreigabe-Ereignis. (Einige Mausbewegungsereignisse können auch empfangen werden, wenn die Maus während dieses Vorgangs nicht ruhig gehalten wird.) Es ist nicht möglich, einen Klick von einem Doppelklick zu unterscheiden, bis der zweite Klick eintrifft. (Dies ist einer der Gründe, warum die meisten GUI-Bücher empfehlen, dass Doppelklicks eine Erweiterung von Einzelklicks sind, anstatt eine andere Aktion auszulösen.)

Widgets, die Tastatureingaben akzeptieren, müssen ein paar weitere Event-Handler neu implementieren:

  • keyPressEvent() wird immer dann aufgerufen, wenn eine Taste gedrückt wird, und erneut, wenn eine Taste lange genug gedrückt wurde, um sie automatisch zu wiederholen. Die Tasten Tab und Shift+Tab werden nur an das Widget übergeben, wenn sie nicht von den Fokuswechselmechanismen verwendet werden. Um zu erzwingen, dass diese Tasten von Ihrem Widget verarbeitet werden, müssen Sie QWidget::event() neu implementieren.
  • focusInEvent() wird aufgerufen, wenn das Widget den Tastaturfokus erhält (vorausgesetzt, Sie haben setFocusPolicy() aufgerufen). Gut benutzte Widgets zeigen auf klare, aber diskrete Weise an, dass sie den Tastaturfokus besitzen.
  • focusOutEvent() wird aufgerufen, wenn das Widget den Tastaturfokus verliert.

Möglicherweise müssen Sie auch einige der weniger verbreiteten Ereignishandler neu implementieren:

  • mouseMoveEvent() wird aufgerufen, wenn sich die Maus bewegt, während eine Maustaste gedrückt gehalten wird. Dies kann bei Drag-and-Drop-Operationen nützlich sein. Wenn Sie setMouseTracking(true) aufrufen, erhalten Sie Mausbewegungsereignisse, auch wenn keine Tasten gedrückt sind. (Siehe auch die Anleitung zum Ziehen und Ablegen.)
  • keyReleaseEvent() wird immer dann aufgerufen, wenn eine Taste losgelassen wird und solange sie gedrückt gehalten wird (wenn die Taste automatisch wiederholt wird). In diesem Fall empfängt das Widget bei jeder Wiederholung ein Paar von Tastenfreigabe- und Tastendruckereignissen. Die Tasten Tab und Shift+Tab werden nur an das Widget weitergegeben, wenn sie nicht von den Fokuswechselmechanismen verwendet werden. Um zu erzwingen, dass diese Tasten von Ihrem Widget verarbeitet werden, müssen Sie QWidget::event() neu implementieren.
  • wheelEvent() wird immer dann aufgerufen, wenn der Benutzer das Mausrad dreht, während das Widget den Fokus hat.
  • enterEvent() wird aufgerufen, wenn die Maus den Bildschirmbereich des Widgets betritt. (Dies schließt den Bildschirmbereich aus, der sich im Besitz eines der Kinder des Widgets befindet.)
  • leaveEvent() wird aufgerufen, wenn die Maus den Bildschirmbereich des Widgets verlässt. Wenn die Maus ein untergeordnetes Widget betritt, wird kein leaveEvent() aufgerufen.
  • moveEvent() wird aufgerufen, wenn das Widget relativ zu seinem Elternteil verschoben wurde.
  • closeEvent() wird aufgerufen, wenn der Benutzer das Widget schließt (oder wenn close() aufgerufen wird).

Es gibt auch einige eher obskure Ereignisse, die in der Dokumentation zu QEvent::Type beschrieben sind. Um diese Ereignisse zu behandeln, müssen Sie event() direkt neu implementieren.

Die Standardimplementierung von event() behandelt Tab und Shift+Tab (um den Tastaturfokus zu verschieben) und leitet die meisten anderen Ereignisse an einen der oben genannten spezialisierten Handler weiter.

Ereignisse und der Mechanismus, mit dem sie ausgelöst werden, werden in Das Ereignissystem behandelt.

Gruppen von Funktionen und Eigenschaften

KontextFunktionen und Eigenschaften
Fenster-Funktionenshow(), hide(), raise(), lower(), close().
Fenster der obersten EbenewindowModified, windowTitle, windowIcon, isActiveWindow, activateWindow(), minimized, showMinimized(), maximized, showMaximized(), fullScreen, showFullScreen(), showNormal().
Fenster-Inhalteupdate(), repaint(), scroll().
Geometriepos, x(), y(), rect, size, width(), height(), move(), resize(), sizePolicy, sizeHint(), minimumSizeHint(), updateGeometry(), layout(), frameGeometry, geometry, childrenRect, childrenRegion, adjustSize(), mapFromGlobal(), mapToGlobal(), mapFromParent(), mapToParent(), maximumSize, minimumSize, sizeIncrement, baseSize, setFixedSize()
Modusvisible, isVisibleTo(), enabled, isEnabledTo(), modal, isWindow(), mouseTracking, updatesEnabled, visibleRegion().
Aussehen und Funktionstyle(), setStyle(), styleSheet, cursor, font, palette, backgroundRole(), setBackgroundRole(), fontInfo(), fontMetrics().
Tastaturfokus-Funktionenfocus, focusPolicy, setFocus(), clearFocus(), setTabOrder(), setFocusProxy(), focusNextChild(), focusPreviousChild().
Maus- und Tastatur-GrabbinggrabMouse(), releaseMouse(), grabKeyboard(), releaseKeyboard(), mouseGrabber(), keyboardGrabber().
Ereignishandlerevent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), keyPressEvent(), keyReleaseEvent(), focusInEvent(), focusOutEvent(), wheelEvent(), enterEvent(), leaveEvent(), paintEvent(), moveEvent(), resizeEvent(), closeEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), childEvent(), showEvent(), hideEvent(), customEvent(). changeEvent(),
System-FunktionenparentWidget(), window(), setParent(), winId(), find(), metric().
KontextmenücontextMenuPolicy, contextMenuEvent(), customContextMenuRequested(), actions()
Interaktive HilfesetToolTip(), setWhatsThis()

Widget-Stilvorlagen

Zusätzlich zu den Standard-Widgetstilen für jede Plattform können Widgets auch nach Regeln gestaltet werden, die in einer Stilvorlage festgelegt sind. Mit dieser Funktion können Sie das Erscheinungsbild bestimmter Widgets anpassen, um den Benutzern visuelle Hinweise auf ihren Zweck zu geben. So kann beispielsweise eine Schaltfläche auf eine bestimmte Art und Weise gestaltet werden, um anzuzeigen, dass sie eine zerstörerische Aktion durchführt.

Die Verwendung von Widget-Stylesheets wird im Dokument Qt Style Sheets ausführlicher beschrieben.

Transparenz und doppelte Pufferung

QWidget puffert seine Malerei automatisch doppelt, so dass es nicht notwendig ist, doppelt puffernden Code in paintEvent() zu schreiben, um Flackern zu vermeiden.

Der Inhalt von übergeordneten Widgets wird standardmäßig an jedes ihrer Kinder weitergegeben, solange Qt::WA_PaintOnScreen nicht gesetzt ist. Benutzerdefinierte Widgets können so geschrieben werden, dass sie diese Funktion nutzen, indem sie unregelmäßige Bereiche aktualisieren (um nicht-rechteckige Child-Widgets zu erstellen) oder mit Farben malen, die weniger als den vollen Alpha-Anteil haben. Das folgende Diagramm zeigt, wie Attribute und Eigenschaften eines benutzerdefinierten Widgets feinabgestimmt werden können, um verschiedene Effekte zu erzielen.

Im obigen Diagramm wird ein halbtransparentes rechteckiges untergeordnetes Widget mit einem entfernten Bereich konstruiert und zu einem übergeordneten Widget ( QLabel, das eine Pixmap zeigt) hinzugefügt. Anschließend werden verschiedene Eigenschaften und Widget-Attribute festgelegt, um unterschiedliche Effekte zu erzielen:

  • Für das linke Widget werden keine zusätzlichen Eigenschaften oder Widget-Attribute festgelegt. Dieser Standardzustand eignet sich für die meisten benutzerdefinierten Widgets, die Transparenz aufweisen, unregelmäßig geformt sind oder nicht ihren gesamten Bereich mit einem undurchsichtigen Pinsel übermalen.
  • Für das mittlere Widget ist die Eigenschaft autoFillBackground festgelegt. Diese Eigenschaft wird bei benutzerdefinierten Widgets verwendet, die sich darauf verlassen, dass das Widget einen Standardhintergrund bereitstellt, und die nicht ihren gesamten Bereich mit einem undurchsichtigen Pinsel übermalen.
  • Das rechte Widget hat die Qt::WA_OpaquePaintEvent Widget-Eigenschaft eingestellt. Dies zeigt an, dass das Widget über seinen gesamten Bereich mit opaken Farben malt. Der Bereich des Widgets ist zunächst nicht initialisiert, was im Diagramm durch ein rotes diagonales Gittermuster dargestellt wird, das durch den übermalten Bereich hindurchscheint.

Um benutzerdefinierte Widgets mit einfachen Hintergrundfarben schnell zu aktualisieren, wie z. B. Echtzeit-Plot- oder Diagramm-Widgets, ist es besser, eine geeignete Hintergrundfarbe zu definieren (unter Verwendung von setBackgroundRole() mit der Rolle QPalette::Window ), die Eigenschaft autoFillBackground zu setzen und nur die erforderliche Zeichenfunktionalität in paintEvent() des Widgets zu implementieren.

Um benutzerdefinierte Widgets schnell zu aktualisieren, die ständig ihre gesamten Bereiche mit undurchsichtigem Inhalt übermalen, z. B. Video-Streaming-Widgets, ist es besser, die Qt::WA_OpaquePaintEvent des Widgets zu setzen, um jeden unnötigen Overhead zu vermeiden, der mit dem erneuten Malen des Widgethintergrunds verbunden ist.

Wenn ein Widget sowohl das Qt::WA_OpaquePaintEvent Widget-Attribut als auch die autoFillBackground Eigenschaft gesetzt hat, hat das Qt::WA_OpaquePaintEvent Attribut Vorrang. Abhängig von Ihren Anforderungen sollten Sie eines der beiden Attribute wählen.

Der Inhalt von übergeordneten Widgets wird auch an Standard Qt Widgets weitergegeben. Dies kann zu einigen unerwarteten Ergebnissen führen, wenn das übergeordnete Widget auf eine nicht-standardisierte Weise dekoriert ist, wie im folgenden Diagramm gezeigt.

Der Spielraum für die Anpassung des Malverhaltens von Standard Qt Widgets, ohne auf eine Unterklasse zurückzugreifen, ist etwas geringer als der für benutzerdefinierte Widgets. Normalerweise kann das gewünschte Aussehen eines Standard-Widgets durch das Setzen seiner autoFillBackground Eigenschaft erreicht werden.

Transluzente Fenster erstellen

Auf Fenstersystemen, die Compositing unterstützen, können Sie Fenster mit durchscheinenden Bereichen erstellen.

Um diese Funktion in einem Top-Level-Widget zu aktivieren, setzen Sie sein Qt::WA_TranslucentBackground -Attribut mit setAttribute() und stellen Sie sicher, dass sein Hintergrund in den Bereichen, die teilweise transparent sein sollen, mit nicht-opaken Farben gezeichnet ist.

Hinweise zur Plattform:

  • X11: Diese Funktion hängt von der Verwendung eines X-Servers ab, der ARGB-Grafiken und einen Compositing-Fenstermanager unterstützt.
  • Windows: Das Widget muss das Qt::FramelessWindowHint Fenster-Flag gesetzt haben, damit die Durchsichtigkeit funktioniert.
  • macOS: Für das Widget muss das Qt::FramelessWindowHint window flag gesetzt sein, damit die Transparenz funktioniert.

Einheimische Widgets vs. fremde Widgets

Fremde Widgets sind Widgets, die dem Windowing-System unbekannt sind. Sie haben kein natives Fensterhandle, das mit ihnen verbunden ist. Diese Funktion beschleunigt das Malen von Widgets und die Größenänderung erheblich und beseitigt das Flimmern.

Sollten Sie das alte Verhalten mit nativen Fenstern benötigen, wählen Sie eine der folgenden Optionen:

  1. Verwenden Sie die QT_USE_NATIVE_WINDOWS=1 in Ihrer Umgebung.
  2. Setzen Sie das Attribut Qt::AA_NativeWindows in Ihrer Anwendung. Alle Widgets werden native Widgets sein.
  3. Setzen Sie das Qt::WA_NativeWindow -Attribut auf Widgets: Das Widget selbst und alle seine Vorgänger werden nativ (es sei denn, Qt::WA_DontCreateNativeAncestors ist gesetzt).
  4. Rufen Sie QWidget::winId auf, um ein natives Fenster zu erzwingen (dies impliziert 3).
  5. Setzen Sie das Qt::WA_PaintOnScreen Attribut, um ein natives Fenster zu erzwingen (dies impliziert 3).

Siehe auch QEvent, QPainter, QGridLayout, und QBoxLayout.

Dokumentation der Mitgliedstypen

enum QWidget::RenderFlag
flags QWidget::RenderFlags

Diese Aufzählung beschreibt, wie das Widget beim Aufruf von QWidget::render() gerendert werden soll.

KonstanteWertBeschreibung
QWidget::DrawWindowBackground0x1Wenn Sie diese Option aktivieren, wird der Hintergrund des Widgets in das Ziel gerendert, auch wenn autoFillBackground nicht gesetzt ist. Standardmäßig ist diese Option aktiviert.
QWidget::DrawChildren0x2Wenn Sie diese Option aktivieren, werden die Kinder des Widgets rekursiv in das Ziel gerendert. Standardmäßig ist diese Option aktiviert.
QWidget::IgnoreMask0x4Wenn Sie diese Option aktivieren, wird die QWidget::mask() des Widgets beim Rendern in das Ziel ignoriert. Standardmäßig ist diese Option deaktiviert.

Der Typ RenderFlags ist ein Typedef für QFlags<RenderFlag>. Er speichert eine ODER-Kombination von RenderFlag-Werten.

Dokumentation der Eigenschaft

acceptDrops : bool

Diese Eigenschaft gibt an, ob Drop-Ereignisse für dieses Widget aktiviert sind

Wenn diese Eigenschaft auf true gesetzt wird, wird dem System mitgeteilt, dass dieses Widget in der Lage ist , Drop-Ereignisse zu akzeptieren.

Wenn das Widget der Desktop ist (windowType() == Qt::Desktop), kann dies fehlschlagen, wenn eine andere Anwendung den Desktop verwendet; Sie können acceptDrops() aufrufen, um zu testen, ob dies geschieht.

Warnung: Ändern Sie diese Eigenschaft nicht in einem Drag&Drop-Ereignishandler.

Standardmäßig ist diese Eigenschaft false.

Zugriffsfunktionen:

bool acceptDrops() const
void setAcceptDrops(bool on)

Siehe auch Ziehen und Ablegen.

accessibleDescription : QString

Diese Eigenschaft enthält die Beschreibung des Widgets, wie sie von unterstützenden Technologien gesehen wird

Die zugängliche Beschreibung eines Widgets sollte vermitteln, was ein Widget tut. Während die accessibleName eine kurze und prägnante Zeichenkette sein sollte (z.B. Speichern), sollte die Beschreibung mehr Kontext liefern, wie z.B. Speichert das aktuelle Dokument.

Diese Eigenschaft muss lokalisiert werden.

Standardmäßig enthält diese Eigenschaft einen leeren String und Qt greift auf den Tooltip zurück, um diese Informationen bereitzustellen.

Zugriffsfunktionen:

QString accessibleDescription() const
void setAccessibleDescription(const QString &description)

Siehe auch QWidget::accessibleName und QAccessibleInterface::text().

accessibleName : QString

Diese Eigenschaft enthält den Namen des Widgets, wie er von unterstützenden Technologien gesehen wird

Dies ist der primäre Name, unter dem Hilfstechnologien wie z. B. Bildschirmleser dieses Widget anzeigen. Für die meisten Widgets ist die Einstellung dieser Eigenschaft nicht erforderlich. Zum Beispiel wird für QPushButton der Text der Schaltfläche verwendet.

Es ist wichtig, diese Eigenschaft zu setzen, wenn das Widget keinen Text enthält. Zum Beispiel muss eine Schaltfläche, die nur ein Symbol enthält, diese Eigenschaft setzen, um mit Screenreadern zu funktionieren. Der Name sollte kurz sein und der visuellen Information entsprechen, die das Widget vermittelt.

Diese Eigenschaft muss lokalisiert werden.

Standardmäßig enthält diese Eigenschaft eine leere Zeichenkette.

Zugriffsfunktionen:

QString accessibleName() const
void setAccessibleName(const QString &name)

Siehe auch QWidget::accessibleDescription und QAccessibleInterface::text().

autoFillBackground : bool

Diese Eigenschaft bestimmt, ob der Hintergrund des Widgets automatisch gefüllt wird

Wenn diese Eigenschaft aktiviert ist, wird Qt den Hintergrund des Widgets füllen, bevor das Paint-Ereignis aufgerufen wird. Die verwendete Farbe wird durch die QPalette::Window Farbrolle aus dem palette des Widgets definiert.

Darüber hinaus werden Fenster immer mit QPalette::Window gefüllt, es sei denn, die Attribute WA_OpaquePaintEvent oder WA_NoSystemBackground sind gesetzt.

Diese Eigenschaft kann nicht ausgeschaltet (d.h. auf false gesetzt) werden, wenn das Elternteil eines Widgets einen statischen Farbverlauf für seinen Hintergrund hat.

Warnung: Verwenden Sie diese Eigenschaft mit Vorsicht in Verbindung mit Qt Style Sheets. Wenn ein Widget ein Style Sheet mit einem gültigen Hintergrund oder einem Border-Image hat, wird diese Eigenschaft automatisch deaktiviert.

Standardmäßig ist diese Eigenschaft false.

Zugriffsfunktionen:

bool autoFillBackground() const
void setAutoFillBackground(bool enabled)

Siehe auch Qt::WA_OpaquePaintEvent, Qt::WA_NoSystemBackground, und Transparency and Double Buffering.

baseSize : QSize

Diese Eigenschaft enthält die Basisgröße des Widgets

Die Basisgröße wird zur Berechnung der richtigen Widgetgröße verwendet, wenn das Widget sizeIncrement() definiert.

Standardmäßig enthält diese Eigenschaft für ein neu erstelltes Widget eine Größe mit null Breite und Höhe.

Zugriffsfunktionen:

QSize baseSize() const
void setBaseSize(const QSize &)
void setBaseSize(int basew, int baseh)

Siehe auch setSizeIncrement().

[read-only] childrenRect : const QRect

Diese Eigenschaft enthält das Begrenzungsrechteck der Kinder des Widgets

Ausgeblendete Kinder sind ausgeschlossen.

Standardmäßig enthält diese Eigenschaft für ein Widget ohne Kinder ein Rechteck mit der Breite und Höhe Null, das sich am Ursprung befindet.

Zugriffsfunktionen:

QRect childrenRect() const

Siehe auch childrenRegion() und geometry().

[read-only] childrenRegion : const QRegion

Diese Eigenschaft enthält den kombinierten Bereich, der von den Kindern des Widgets belegt wird

Ausgeblendete Kinder sind ausgeschlossen.

Bei einem Widget ohne Kinder enthält diese Eigenschaft standardmäßig einen leeren Bereich.

Zugriffsfunktionen:

QRegion childrenRegion() const

Siehe auch childrenRect(), geometry(), und mask().

contextMenuPolicy : Qt::ContextMenuPolicy

wie das Widget ein Kontextmenü anzeigt

Der Standardwert für diese Eigenschaft ist Qt::DefaultContextMenu, was bedeutet, dass der contextMenuEvent() Handler aufgerufen wird. Andere Werte sind Qt::NoContextMenu, Qt::PreventContextMenu, Qt::ActionsContextMenu, und Qt::CustomContextMenu. Bei Qt::CustomContextMenu wird das Signal customContextMenuRequested() ausgelöst.

Zugriffsfunktionen:

Qt::ContextMenuPolicy contextMenuPolicy() const
void setContextMenuPolicy(Qt::ContextMenuPolicy policy)

Siehe auch contextMenuEvent(), customContextMenuRequested(), und actions().

cursor : QCursor

Diese Eigenschaft enthält die Form des Cursors für dieses Widget

Der Mauszeiger nimmt diese Form an, wenn er sich über diesem Widget befindet. Siehe die list of predefined cursor objects für eine Reihe von nützlichen Formen.

Ein Editor-Widget könnte einen I-Balken-Cursor verwenden:

setCursor(Qt::IBeamCursor);

Wenn kein Cursor gesetzt wurde, oder nach einem Aufruf von unsetCursor(), wird der Cursor des Elternteils verwendet.

Standardmäßig enthält diese Eigenschaft einen Cursor mit der Form Qt::ArrowCursor.

Einige zugrundeliegende Fensterimplementierungen setzen den Cursor zurück, wenn er ein Widget verlässt, auch wenn die Maus gegriffen wird. Wenn Sie einen Cursor für alle Widgets setzen wollen, auch wenn sie sich außerhalb des Fensters befinden, sollten Sie QGuiApplication::setOverrideCursor() in Betracht ziehen.

Zugriffsfunktionen:

QCursor cursor() const
void setCursor(const QCursor &)
void unsetCursor()

Siehe auch QGuiApplication::setOverrideCursor().

enabled : bool

Diese Eigenschaft gibt an, ob das Widget aktiviert ist

Im Allgemeinen verarbeitet ein aktiviertes Widget Tastatur- und Mausereignisse; ein deaktiviertes Widget tut dies nicht. Eine Ausnahme bildet QAbstractButton.

Einige Widgets stellen sich anders dar, wenn sie deaktiviert sind. Zum Beispiel kann eine Schaltfläche ihre Beschriftung ausgegraut darstellen. Wenn Ihr Widget wissen muss, wann es aktiviert oder deaktiviert wird, können Sie changeEvent() mit dem Typ QEvent::EnabledChange verwenden.

Das Deaktivieren eines Widgets deaktiviert implizit alle seine Kinder. Das Aktivieren aktiviert alle untergeordneten Widgets, sofern sie nicht explizit deaktiviert wurden. Es ist nicht möglich, ein untergeordnetes Widget, das kein Fenster ist, explizit zu aktivieren, während sein übergeordnetes Widget deaktiviert bleibt.

Standardmäßig ist diese Eigenschaft true.

Zugriffsfunktionen:

bool isEnabled() const
void setEnabled(bool)

Siehe auch isEnabledTo(), QKeyEvent, QMouseEvent, und changeEvent().

[read-only] focus : const bool

Diese Eigenschaft gibt an, ob dieses Widget (oder sein Fokus-Proxy) den Fokus der Tastatureingabe hat.

Standardmäßig ist diese Eigenschaft false.

Hinweis: Die Ermittlung des Wertes dieser Eigenschaft für ein Widget ist praktisch gleichbedeutend mit der Überprüfung, ob QApplication::focusWidget() sich auf das Widget bezieht.

Zugriffsfunktionen:

bool hasFocus() const

Siehe auch setFocus(), clearFocus(), setFocusPolicy(), und QApplication::focusWidget().

focusPolicy : Qt::FocusPolicy

Diese Eigenschaft legt fest, wie das Widget den Tastaturfokus akzeptiert

Die Richtlinie lautet Qt::TabFocus, wenn das Widget den Tastaturfokus durch Tabulieren akzeptiert, Qt::ClickFocus, wenn das Widget den Fokus durch Klicken akzeptiert, Qt::StrongFocus, wenn es beides akzeptiert, und Qt::NoFocus (der Standard), wenn es den Fokus überhaupt nicht akzeptiert.

Sie müssen den Tastaturfokus für ein Widget aktivieren, wenn es Tastaturereignisse verarbeitet. Dies geschieht normalerweise über den Konstruktor des Widgets. Zum Beispiel ruft der QLineEdit Konstruktor setFocusPolicy(Qt::StrongFocus) auf.

Wenn das Widget einen Fokus-Proxy hat, wird die Fokus-Policy an diesen weitergegeben.

Zugriffsfunktionen:

Qt::FocusPolicy focusPolicy() const
void setFocusPolicy(Qt::FocusPolicy policy)

Siehe auch focusInEvent(), focusOutEvent(), keyPressEvent(), keyReleaseEvent(), und enabled.

font : QFont

Diese Eigenschaft enthält die derzeit für das Widget eingestellte Schriftart

Diese Eigenschaft beschreibt die angeforderte Schriftart des Widgets. Die Schriftart wird vom Stil des Widgets beim Rendern von Standardkomponenten verwendet und ist als Mittel verfügbar, um sicherzustellen, dass benutzerdefinierte Widgets die Konsistenz mit dem Aussehen der nativen Plattform beibehalten können. Es ist üblich, dass verschiedene Plattformen oder verschiedene Stile verschiedene Schriftarten für eine Anwendung definieren.

Wenn Sie einem Widget eine neue Schriftart zuweisen, werden die Eigenschaften dieser Schriftart mit der Standardschriftart des Widgets kombiniert, um die endgültige Schriftart des Widgets zu bilden. Sie können fontInfo() aufrufen, um eine Kopie der endgültigen Schriftart des Widgets zu erhalten. Die endgültige Schriftart wird auch zur Initialisierung der Schriftart von QPainter verwendet.

Die Voreinstellung hängt von der Systemumgebung ab. QApplication verwaltet eine System-/Themenschriftart, die als Voreinstellung für alle Widgets dient. Für bestimmte Arten von Widgets kann es auch spezielle Schriftvorgaben geben. Sie können auch selbst Standard-Schriftarten für Widgets definieren, indem Sie eine benutzerdefinierte Schriftart und den Namen eines Widgets an QApplication::setFont() übergeben. Schließlich wird die Schriftart mit der Qt-Schriftartdatenbank abgeglichen, um die beste Übereinstimmung zu finden.

QWidget propagiert explizite Schrifteigenschaften vom Elternteil zum Kind. Wenn Sie eine bestimmte Eigenschaft einer Schriftart ändern und diese Schriftart einem Widget zuweisen, wird diese Eigenschaft an alle Kinder des Widgets weitergegeben und setzt alle Systemvorgaben für diese Eigenschaft außer Kraft. Beachten Sie, dass Schriftarten standardmäßig nicht an Fenster weitergegeben werden (siehe isWindow()), es sei denn, das Attribut Qt::WA_WindowPropagation ist aktiviert.

QWidgetDie Weitergabe von Schriftarten ist ähnlich wie die Weitergabe von Paletten.

Der aktuelle Stil, der verwendet wird, um den Inhalt aller Standard Qt Widgets zu rendern, kann frei entscheiden, ob er die Widget-Schriftart verwenden will, oder in einigen Fällen, ob er sie ignorieren will (teilweise oder vollständig). Insbesondere wenden bestimmte Stile wie GTK-Stil, Mac-Stil und Windows Vista-Stil spezielle Modifikationen an der Widget-Schriftart an, um dem nativen Look and Feel der jeweiligen Plattform zu entsprechen. Aus diesem Grund ist es nicht garantiert, dass das Zuweisen von Eigenschaften an die Schriftart eines Widgets das Aussehen des Widgets ändert. Stattdessen können Sie sich für die Anwendung eines styleSheets entscheiden.

Hinweis: Wenn Qt Style Sheets für das gleiche Widget wie setFont() verwendet werden, haben Style Sheets Vorrang, wenn die Einstellungen in Konflikt stehen.

Zugriffsfunktionen:

const QFont &font() const
void setFont(const QFont &)

Siehe auch fontInfo() und fontMetrics().

[read-only] frameGeometry : const QRect

Geometrie des Widgets relativ zu seinem übergeordneten Element einschließlich eines Fensterrahmens

Einen Überblick über Geometrieprobleme bei Fenstern finden Sie in der Dokumentation Fenstergeometrie.

Standardmäßig enthält diese Eigenschaft einen Wert, der von der Plattform und der Bildschirmgeometrie des Benutzers abhängt.

Zugriffsfunktionen:

QRect frameGeometry() const

Siehe auch geometry(), x(), y(), und pos().

[read-only] frameSize : const QSize

Diese Eigenschaft enthält die Größe des Widgets einschließlich eines Fensterrahmens

Standardmäßig enthält diese Eigenschaft einen Wert, der von der Plattform und der Bildschirmgeometrie des Benutzers abhängt.

Zugriffsfunktionen:

QSize frameSize() const

[read-only] fullScreen : const bool

Diese Eigenschaft gibt an, ob das Widget im Vollbildmodus angezeigt wird

Ein Widget im Vollbildmodus nimmt den gesamten Bildschirmbereich ein und zeigt keine Fensterdekorationen, wie z. B. eine Titelleiste, an.

Standardmäßig ist diese Eigenschaft false.

Zugriffsfunktionen:

bool isFullScreen() const

Siehe auch windowState(), minimized, und maximized.

geometry : QRect

Diese Eigenschaft enthält die Geometrie des Widgets relativ zu seinem übergeordneten Element und ausschließlich des Fensterrahmens

Wenn sich die Geometrie ändert, erhält das Widget, sofern es sichtbar ist, sofort ein Verschiebungsereignis (moveEvent()) und/oder ein Größenänderungsereignis (resizeEvent()). Wenn das Widget derzeit nicht sichtbar ist, erhält es garantiert die entsprechenden Ereignisse, bevor es angezeigt wird.

Die Größenkomponente wird angepasst, wenn sie außerhalb des durch minimumSize() und maximumSize() definierten Bereichs liegt.

Warnung: Der Aufruf von setGeometry() innerhalb von resizeEvent() oder moveEvent() kann zu einer unendlichen Rekursion führen.

Einen Überblick über Geometrieprobleme bei Fenstern finden Sie in der Dokumentation Window Geometry.

Standardmäßig enthält diese Eigenschaft einen Wert, der von der Plattform und der Bildschirmgeometrie des Benutzers abhängt.

Zugriffsfunktionen:

const QRect &geometry() const
void setGeometry(int x, int y, int w, int h)
void setGeometry(const QRect &)

Siehe auch frameGeometry(), rect(), move(), resize(), moveEvent(), resizeEvent(), minimumSize(), und maximumSize().

[read-only] height : const int

Diese Eigenschaft enthält die Höhe des Widgets ohne Berücksichtigung des Fensterrahmens

Einen Überblick über die Geometrie von Fenstern finden Sie in der Dokumentation Window Geometry.

Standardmäßig enthält diese Eigenschaft einen Wert, der von der Plattform des Benutzers und screen geometry abhängt.

Zugriffsfunktionen:

int height() const

Siehe auch geometry, width, und size.

inputMethodHints : Qt::InputMethodHints

Welche eingabemethodenspezifischen Hinweise das Widget hat.

Dies ist nur für Eingabe-Widgets relevant. Es wird von der Eingabemethode verwendet, um Hinweise darauf zu erhalten, wie die Eingabemethode funktionieren soll. Wenn zum Beispiel das Qt::ImhFormattedNumbersOnly Flag gesetzt ist, kann die Eingabemethode ihre visuellen Komponenten ändern, um zu zeigen, dass nur Zahlen eingegeben werden können.

Achtung! Einige Widgets benötigen bestimmte Flags, um wie vorgesehen zu funktionieren. Um ein Flag zu setzen, führen Sie w->setInputMethodHints(w->inputMethodHints()|f) anstelle von w->setInputMethodHints(f) aus.

Hinweis: Die Flags sind nur Hinweise, so dass es der jeweiligen Implementierung der Eingabemethode freisteht, sie zu ignorieren. Wenn Sie sicher sein wollen, dass eine bestimmte Art von Zeichen eingegeben wird, sollten Sie auch ein QValidator auf dem Widget setzen.

Der Standardwert ist Qt::ImhNone.

Zugriffsfunktionen:

Qt::InputMethodHints inputMethodHints() const
void setInputMethodHints(Qt::InputMethodHints hints)

Siehe auch inputMethodQuery().

[read-only] isActiveWindow : const bool

Diese Eigenschaft gibt an, ob das Fenster dieses Widgets das aktive Fenster ist

Das aktive Fenster ist das Fenster, das das Widget enthält, das den Tastaturfokus hat (das Fenster kann auch dann den Fokus haben, wenn es keine Widgets hat oder keines seiner Widgets den Tastaturfokus akzeptiert).

Wenn Popup-Fenster sichtbar sind, ist diese Eigenschaft true sowohl für das aktive Fenster als auch für das Popup.

Standardmäßig ist diese Eigenschaft false.

Zugriffsfunktionen:

bool isActiveWindow() const

Siehe auch activateWindow() und QApplication::activeWindow().

layoutDirection : Qt::LayoutDirection

Diese Eigenschaft enthält die Layout-Richtung für dieses Widget.

Hinweis: Seit Qt 4.7 hat diese Methode keinen Einfluss mehr auf die Richtung des Textlayouts.

Standardmäßig ist diese Eigenschaft auf Qt::LeftToRight gesetzt.

Wenn die Layout-Richtung für ein Widget gesetzt wird, überträgt sich dies auf die untergeordneten Widgets des Widgets, aber nicht auf untergeordnete Widgets, die ein Fenster sind und nicht auf untergeordnete Widgets, für die setLayoutDirection() explizit aufgerufen wurde. Außerdem erben untergeordnete Widgets, die hinzugefügt werden , nachdem setLayoutDirection() für den Elternteil aufgerufen wurde, nicht die Layout-Richtung des Elternteils.

Zugriffsfunktionen:

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

Siehe auch QApplication::layoutDirection.

locale : QLocale

Diese Eigenschaft enthält das Gebietsschema des Widgets

Solange kein spezielles Gebietsschema festgelegt wurde, ist dies entweder das Gebietsschema des übergeordneten Widgets oder (wenn dieses Widget ein Widget der obersten Ebene ist) das Standardgebietsschema.

Wenn das Widget Daten oder Zahlen anzeigt, sollten diese unter Verwendung des Gebietsschemas des Widgets formatiert werden.

Zugriffsfunktionen:

QLocale locale() const
void setLocale(const QLocale &locale)
void unsetLocale()

Siehe auch QLocale und QLocale::setDefault().

[read-only] maximized : const bool

Diese Eigenschaft gibt an, ob das Widget maximiert ist.

Diese Eigenschaft ist nur für Fenster relevant.

Hinweis: Aufgrund von Einschränkungen auf einigen Fenstersystemen liefert diese Eigenschaft nicht immer die erwarteten Ergebnisse (z.B. wenn der Benutzer unter X11 das Fenster über den Fenstermanager maximiert, hat Qt keine Möglichkeit, dies von einer anderen Größenänderung zu unterscheiden). Es wird erwartet, dass sich dies mit der Weiterentwicklung von Fenstermanagerprotokollen verbessert.

Standardmäßig ist diese Eigenschaft false.

Zugriffsfunktionen:

bool isMaximized() const

Siehe auch windowState(), showMaximized(), visible, show(), hide(), showNormal(), und minimized.

maximumHeight : int

Diese Eigenschaft enthält die maximale Höhe des Widgets in Pixeln

Diese Eigenschaft entspricht der Höhe, die in der Eigenschaft maximumSize angegeben ist.

Standardmäßig enthält diese Eigenschaft einen Wert von 16777215.

Hinweis: Die Definition des Makros QWIDGETSIZE_MAX begrenzt die maximale Größe von Widgets.

Zugriffsfunktionen:

int maximumHeight() const
void setMaximumHeight(int maxh)

Siehe auch maximumSize und maximumWidth.

maximumSize : QSize

Diese Eigenschaft enthält die maximale Größe des Widgets in Pixeln

Das Widget kann nicht auf eine größere Größe als die maximale Widgetgröße geändert werden.

Standardmäßig enthält diese Eigenschaft eine Größe, bei der sowohl Breite als auch Höhe den Wert 16777215 haben.

Hinweis: Die Definition des Makros QWIDGETSIZE_MAX begrenzt die maximale Größe von Widgets.

Zugriffsfunktionen:

QSize maximumSize() const
void setMaximumSize(const QSize &)
void setMaximumSize(int maxw, int maxh)

Siehe auch maximumWidth, maximumHeight, minimumSize, und sizeIncrement.

maximumWidth : int

Diese Eigenschaft enthält die maximale Breite des Widgets in Pixeln

Diese Eigenschaft entspricht der Breite, die in der Eigenschaft maximumSize angegeben ist.

Standardmäßig enthält diese Eigenschaft einen Wert von 16777215.

Hinweis: Die Definition des Makros QWIDGETSIZE_MAX begrenzt die maximale Größe von Widgets.

Zugriffsfunktionen:

int maximumWidth() const
void setMaximumWidth(int maxw)

Siehe auch maximumSize und maximumHeight.

[read-only] minimized : const bool

Diese Eigenschaft gibt an, ob das Widget minimiert (ikonifiziert) ist.

Diese Eigenschaft ist nur für Fenster relevant.

Standardmäßig ist diese Eigenschaft false.

Zugriffsfunktionen:

bool isMinimized() const

Siehe auch showMinimized(), visible, show(), hide(), showNormal(), und maximized.

minimumHeight : int

Diese Eigenschaft enthält die Mindesthöhe des Widgets in Pixeln

Diese Eigenschaft entspricht der Höhe, die in der Eigenschaft minimumSize angegeben ist.

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

Zugriffsfunktionen:

int minimumHeight() const
void setMinimumHeight(int minh)

Siehe auch minimumSize und minimumWidth.

minimumSize : QSize

Diese Eigenschaft enthält die Mindestgröße des Widgets

Die Größe des Widgets kann nicht auf eine kleinere Größe als die Mindestgröße des Widgets geändert werden. Die Größe des Widgets wird auf die Mindestgröße erzwungen, wenn die aktuelle Größe kleiner ist.

Die mit dieser Funktion festgelegte Mindestgröße überschreibt die mit QLayout definierte Mindestgröße. Um die Mindestgröße zu deaktivieren, verwenden Sie einen Wert von QSize(0, 0).

Standardmäßig enthält diese Eigenschaft eine Größe mit einer Breite und Höhe von Null.

Zugriffsfunktionen:

QSize minimumSize() const
void setMinimumSize(const QSize &)
void setMinimumSize(int minw, int minh)

Siehe auch minimumWidth, minimumHeight, maximumSize, und sizeIncrement.

[read-only] minimumSizeHint : const QSize

Diese Eigenschaft enthält die empfohlene Mindestgröße für das Widget

Wenn der Wert dieser Eigenschaft eine ungültige Größe ist, wird keine Mindestgröße empfohlen.

Die Standardimplementierung von minimumSizeHint() gibt eine ungültige Größe zurück, wenn es kein Layout für dieses Widget gibt, und gibt ansonsten die Mindestgröße des Layouts zurück. Die meisten eingebauten Widgets reimplementieren minimumSizeHint().

QLayout ändert die Größe eines Widgets niemals auf eine Größe, die kleiner ist als der minimale Größenhinweis, es sei denn minimumSize() ist gesetzt oder die Größenrichtlinie ist auf QSizePolicy::Ignore gesetzt. Wenn minimumSize() gesetzt ist, wird der Hinweis auf die Mindestgröße ignoriert.

Zugriffsfunktionen:

virtual QSize minimumSizeHint() const

Siehe auch QSize::isValid(), resize(), setMinimumSize(), und sizePolicy().

minimumWidth : int

Diese Eigenschaft enthält die Mindestbreite des Widgets in Pixeln

Diese Eigenschaft entspricht der Breite, die in der Eigenschaft minimumSize angegeben ist.

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

Zugriffsfunktionen:

int minimumWidth() const
void setMinimumWidth(int minw)

Siehe auch minimumSize und minimumHeight.

Diese Eigenschaft gibt an, ob das Widget ein modales Widget ist.

Diese Eigenschaft ist nur für Fenster sinnvoll. Ein modales Widget verhindert, dass Widgets in allen anderen Fenstern eine Eingabe erhalten.

Standardmäßig ist diese Eigenschaft false.

Zugriffsfunktionen:

bool isModal() const

Siehe auch isWindow(), windowModality, und QDialog.

mouseTracking : bool

Diese Eigenschaft gibt an, ob die Mausverfolgung für das Widget aktiviert ist

Wenn die Mausverfolgung deaktiviert ist (Standard), empfängt das Widget nur Mausbewegungsereignisse, wenn mindestens eine Maustaste gedrückt wird, während die Maus bewegt wird.

Wenn die Mausverfolgung aktiviert ist, empfängt das Widget Mausbewegungsereignisse, auch wenn keine Tasten gedrückt werden.

Zugriffsfunktionen:

bool hasMouseTracking() const
void setMouseTracking(bool enable)

Siehe auch mouseMoveEvent().

[read-only] normalGeometry : const QRect

Diese Eigenschaft enthält die Geometrie des Widgets, wie sie angezeigt wird, wenn es als normales (nicht maximiertes oder bildschirmfüllendes) Widget der obersten Ebene dargestellt wird.

Wenn sich das Widget bereits in diesem Zustand befindet, spiegelt die normale Geometrie die aktuelle geometry() des Widgets wider.

Für untergeordnete Widgets enthält diese Eigenschaft immer ein leeres Rechteck.

Standardmäßig enthält diese Eigenschaft ein leeres Rechteck.

Zugriffsfunktionen:

QRect normalGeometry() const

Siehe auch QWidget::windowState() und QWidget::geometry.

palette : QPalette

Diese Eigenschaft enthält die Palette des Widgets

Diese Eigenschaft beschreibt die Palette des Widgets. Die Palette wird vom Stil des Widgets beim Rendern von Standardkomponenten verwendet und ist als Mittel verfügbar, um sicherzustellen, dass benutzerdefinierte Widgets die Konsistenz mit dem Aussehen der nativen Plattform beibehalten können. Es ist üblich, dass verschiedene Plattformen oder verschiedene Stile verschiedene Paletten haben.

Wenn Sie einem Widget eine neue Palette zuweisen, werden die Farbrollen aus dieser Palette mit der Standardpalette des Widgets kombiniert, um die endgültige Palette des Widgets zu bilden. Der Paletteneintrag für die Hintergrundrolle des Widgets wird verwendet, um den Hintergrund des Widgets zu füllen (siehe QWidget::autoFillBackground), und die Vordergrundrolle initialisiert den Stift von QPainter.

Die Voreinstellung hängt von der Systemumgebung ab. QApplication verwaltet eine System-/Themen-Palette, die als Voreinstellung für alle Widgets dient. Es kann auch spezielle Palettenvorgaben für bestimmte Arten von Widgets geben (z. B. haben unter Windows Vista alle Klassen, die sich von QMenuBar ableiten, eine spezielle Standardpalette). Sie können auch selbst Standardpaletten für Widgets definieren, indem Sie eine benutzerdefinierte Palette und den Namen eines Widgets an QApplication::setPalette() übergeben. Schließlich hat der Stil immer die Möglichkeit, die Palette zu polieren, wenn sie zugewiesen wird (siehe QStyle::polish()).

QWidget überträgt explizite Palettenrollen vom Elternteil zum Kind. Wenn Sie einen Pinsel oder eine Farbe einer bestimmten Rolle auf einer Palette zuweisen und diese Palette einem Widget zuordnen, wird diese Rolle an alle Kinder des Widgets weitergegeben und setzt alle Systemvorgaben für diese Rolle außer Kraft. Beachten Sie, dass Paletten standardmäßig nicht an Fenster weitergegeben werden (siehe isWindow()), es sei denn, das Attribut Qt::WA_WindowPropagation ist aktiviert.

QWidgetDie Weitergabe von Paletten ist ähnlich wie die Weitergabe von Schriften.

Der aktuelle Stil, der verwendet wird, um den Inhalt aller Standard Qt Widgets zu rendern, ist frei, Farben und Pinsel aus der Widget-Palette zu wählen, oder, in einigen Fällen, die Palette zu ignorieren (teilweise, oder komplett). Insbesondere bestimmte Stile wie GTK-Stil, Mac-Stil und Windows Vista-Stil hängen von APIs von Drittanbietern ab, um den Inhalt von Widgets zu rendern, und diese Stile folgen normalerweise nicht der Palette. Aus diesem Grund wird durch die Zuweisung von Rollen an die Palette eines Widgets nicht garantiert, dass sich das Aussehen des Widgets ändert. Stattdessen können Sie sich für die Anwendung eines StyleSheets entscheiden.

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

Zugriffsfunktionen:

const QPalette &palette() const
void setPalette(const QPalette &)

Siehe auch QGuiApplication::palette(), QWidget::font(), und Qt Style Sheets.

pos : QPoint

Diese Eigenschaft enthält die Position des Widgets innerhalb seines übergeordneten Widgets

Wenn das Widget ein Fenster ist, ist die Position die des Widgets auf dem Desktop, einschließlich seines Rahmens.

Wenn sich die Position ändert, erhält das Widget, sofern es sichtbar ist, sofort ein Verschiebungsereignis (moveEvent()). Wenn das Widget derzeit nicht sichtbar ist, wird es garantiert ein Ereignis erhalten, bevor es angezeigt wird.

Standardmäßig enthält diese Eigenschaft eine Position, die sich auf den Ursprung bezieht.

Warnung: Der Aufruf von move() oder setGeometry() innerhalb von moveEvent() kann zu einer unendlichen Rekursion führen.

Einen Überblick über Geometrieprobleme mit Fenstern finden Sie in der Dokumentation Fenstergeometrie.

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 keinen Effekt, und es können künstliche Werte für die aktuellen Positionen zurückgegeben werden, wie z.B. QPoint(0, 0).

Zugriffsfunktionen:

QPoint pos() const
void move(int x, int y)
void move(const QPoint &)

Siehe auch frameGeometry, size, x(), und y().

[read-only] rect : const QRect

Diese Eigenschaft enthält die interne Geometrie des Widgets ohne Berücksichtigung des Fensterrahmens

Die Eigenschaft rect ist gleich QRect(0, 0, width(), height()).

Siehe die Dokumentation Fenstergeometrie für einen Überblick über Geometrieprobleme mit Fenstern.

Standardmäßig enthält diese Eigenschaft einen Wert, der von der Plattform und der Bildschirmgeometrie des Benutzers abhängt.

Zugriffsfunktionen:

QRect rect() const

Siehe auch size.

size : QSize

Diese Eigenschaft enthält die Größe des Widgets ohne Berücksichtigung des Fensterrahmens

Wenn das Widget zum Zeitpunkt der Größenänderung sichtbar ist, empfängt es sofort ein Größenänderungsereignis (resizeEvent()). Wenn das Widget derzeit nicht sichtbar ist, erhält es garantiert ein Ereignis, bevor es angezeigt wird.

Die Größe wird angepasst, wenn sie außerhalb des durch minimumSize() und maximumSize() definierten Bereichs liegt.

Standardmäßig enthält diese Eigenschaft einen Wert, der von der Plattform des Benutzers und der Bildschirmgeometrie abhängt.

Warnung: Der Aufruf von resize() oder setGeometry() innerhalb von resizeEvent() kann zu einer unendlichen Rekursion führen.

Hinweis: Wenn Sie die Größe auf QSize(0, 0) setzen, wird das Widget nicht auf dem Bildschirm angezeigt. Dies gilt auch für Fenster.

Zugriffsfunktionen:

QSize size() const
void resize(int w, int h)
void resize(const QSize &)

Siehe auch pos, geometry, minimumSize, maximumSize, resizeEvent(), und adjustSize().

[read-only] sizeHint : const QSize

Diese Eigenschaft enthält die empfohlene Größe für das Widget

Wenn der Wert dieser Eigenschaft eine ungültige Größe ist, wird keine Größe empfohlen.

Die Standardimplementierung von sizeHint() gibt eine ungültige Größe zurück, wenn es kein Layout für dieses Widget gibt, und gibt ansonsten die bevorzugte Größe des Layouts zurück.

Zugriffsfunktionen:

virtual QSize sizeHint() const

Siehe auch QSize::isValid(), minimumSizeHint(), sizePolicy(), setMinimumSize(), und updateGeometry().

sizeIncrement : QSize

Diese Eigenschaft speichert das Größeninkrement des Widgets

Wenn der Benutzer die Größe des Fensters ändert, wird die Größe in Schritten von sizeIncrement().width() Pixeln horizontal und sizeIncrement.height() Pixeln vertikal verschoben, mit baseSize() als Basis. Bevorzugte Widgetgrößen sind für nicht-negative ganze Zahlen i und j:

width = baseSize().width() + i * sizeIncrement().width();
height = baseSize().height() + j * sizeIncrement().height();

Beachten Sie, dass Sie das Größeninkrement zwar für alle Widgets einstellen können, es sich aber nur auf Fenster auswirkt.

Standardmäßig enthält diese Eigenschaft eine Größe mit der Breite und Höhe Null.

Achtung! Das Größeninkrement hat unter Windows keine Wirkung und kann unter X11 vom Fenstermanager ignoriert werden.

Zugriffsfunktionen:

QSize sizeIncrement() const
void setSizeIncrement(const QSize &)
void setSizeIncrement(int w, int h)

Siehe auch size, minimumSize, und maximumSize.

sizePolicy : QSizePolicy

Diese Eigenschaft enthält das Standard-Layoutverhalten des Widgets

Wenn es ein QLayout gibt, das die Kinder dieses Widgets verwaltet, wird die von diesem Layout festgelegte Größenpolitik verwendet. Wenn es kein solches QLayout gibt, wird das Ergebnis dieser Funktion verwendet.

Die Standardrichtlinie ist Bevorzugt/Bevorzugt, was bedeutet, dass das Widget frei in der Größe verändert werden kann, aber die Größe bevorzugt, die sizeHint() zurückgibt. Bei Schaltflächen-ähnlichen Widgets wird die Größenrichtlinie so festgelegt, dass sie horizontal gestreckt werden können, aber vertikal fixiert sind. Das Gleiche gilt für Lineedit-Steuerelemente (wie QLineEdit, QSpinBox oder ein editierbares QComboBox) und andere horizontal ausgerichtete Widgets (wie QProgressBar). QToolButton Widgets sind normalerweise quadratisch, so dass sie in beide Richtungen wachsen können. Widgets, die verschiedene Richtungen unterstützen (z. B. QSlider, QScrollBar oder QHeader), erlauben nur die Ausdehnung in die jeweilige Richtung. Widgets, die Bildlaufleisten anbieten können (in der Regel Unterklassen von QScrollArea), geben in der Regel an, dass sie zusätzlichen Platz verwenden können und mit weniger Platz auskommen als sizeHint().

Zugriffsfunktionen:

QSizePolicy sizePolicy() const
void setSizePolicy(QSizePolicy)
void setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)

Siehe auch sizeHint(), QLayout, QSizePolicy, und updateGeometry().

statusTip : QString

Diese Eigenschaft enthält den Statustipp des Widgets

Standardmäßig enthält diese Eigenschaft eine leere Zeichenkette.

Zugriffsfunktionen:

QString statusTip() const
void setStatusTip(const QString &)

Siehe auch toolTip und whatsThis.

styleSheet : QString

Diese Eigenschaft enthält die Stilvorlage des Widgets

Die Stilvorlage enthält eine textuelle Beschreibung der Anpassungen an den Stil des Widgets, wie im Dokument Qt Style Sheets beschrieben.

Seit Qt 4.5 unterstützt Qt Style Sheets vollständig macOS.

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

Zugriffsfunktionen:

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

Siehe auch setStyle(), QApplication::styleSheet, und Qt Style Sheets.

tabletTracking : bool

Diese Eigenschaft gibt an, ob die Tablettenverfolgung für das Widget aktiviert ist

Wenn die Tablettenverfolgung deaktiviert ist (Standardeinstellung), empfängt das Widget nur Tablettenbewegungsereignisse, wenn der Stift in Kontakt mit dem Tablet ist oder mindestens eine Stifttaste gedrückt wird, während der Stift bewegt wird.

Wenn die Tablettenverfolgung aktiviert ist, empfängt das Widget Ereignisse zur Bewegung des Tabletts auch dann, wenn es in der Nähe schwebt. Dies ist nützlich für die Überwachung der Position sowie der Hilfseigenschaften wie Rotation und Neigung und für die Bereitstellung von Feedback in der Benutzeroberfläche.

Zugriffsfunktionen:

bool hasTabletTracking() const
void setTabletTracking(bool enable)

Siehe auch tabletEvent().

toolTip : QString

Diese Eigenschaft enthält den Tooltip des Widgets

Beachten Sie, dass Tooltips standardmäßig nur für Widgets angezeigt werden, die Kinder des aktiven Fensters sind. Sie können dieses Verhalten ändern, indem Sie das Attribut Qt::WA_AlwaysShowToolTips auf das Fenster und nicht auf das Widget mit dem Tooltip setzen.

Wenn Sie das Verhalten eines Tooltips steuern möchten, können Sie die Funktion event() abfangen und das Ereignis QEvent::ToolTip abfangen (z. B. wenn Sie den Bereich, für den der Tooltip angezeigt werden soll, anpassen möchten).

Standardmäßig enthält diese Eigenschaft eine leere Zeichenkette.

Zugriffsfunktionen:

QString toolTip() const
void setToolTip(const QString &)

Siehe auch QToolTip, statusTip, und whatsThis.

toolTipDuration : int

Diese Eigenschaft enthält die Dauer der QuickInfo des Widgets

Gibt an, wie lange der Tooltip angezeigt wird, in Millisekunden. Wenn der Wert -1 (Standard) ist, wird die Dauer abhängig von der Länge des Tooltips berechnet.

Zugriffsfunktionen:

int toolTipDuration() const
void setToolTipDuration(int msec)

Siehe auch toolTip.

updatesEnabled : bool

Diese Eigenschaft gibt an, ob Aktualisierungen aktiviert sind

Ein Widget mit aktivierten Updates empfängt Malereignisse und hat einen Systemhintergrund; ein deaktiviertes Widget hat keinen. Dies bedeutet auch, dass der Aufruf von update() und repaint() keine Auswirkungen hat, wenn Aktualisierungen deaktiviert sind.

Standardmäßig ist diese Eigenschaft true.

setUpdatesEnabled() wird normalerweise verwendet, um Aktualisierungen für eine kurze Zeitspanne zu deaktivieren, zum Beispiel um Bildschirmflimmern bei großen Änderungen zu vermeiden. In Qt erzeugen Widgets normalerweise kein Bildschirmflackern, aber unter X11 könnte der Server Bereiche auf dem Bildschirm löschen, wenn Widgets ausgeblendet werden, bevor sie durch andere Widgets ersetzt werden können. Das Deaktivieren von Updates löst dieses Problem.

Beispiel:

setUpdatesEnabled(false);
bigVisualChanges();
setUpdatesEnabled(true);

Das Deaktivieren eines Widgets deaktiviert implizit alle seine Kinder. Das Aktivieren eines Widgets aktiviert alle untergeordneten Widgets mit Ausnahme der Widgets der obersten Ebene oder derjenigen, die explizit deaktiviert wurden. Das erneute Aktivieren von Aktualisierungen ruft implizit update() für das Widget auf.

Zugriffsfunktionen:

bool updatesEnabled() const
void setUpdatesEnabled(bool enable)

Siehe auch paintEvent().

visible : bool

Diese Eigenschaft gibt an, ob das Widget sichtbar ist

Der Aufruf von setVisible(true) oder show() setzt das Widget in den sichtbaren Status, wenn alle seine Vorgänger-Widgets bis zum Fenster sichtbar sind. Wenn ein Vorgänger nicht sichtbar ist, wird das Widget erst sichtbar, wenn alle seine Vorgänger angezeigt werden. Wenn sich seine Größe oder Position geändert hat, garantiert Qt, dass ein Widget Move- und Resize-Events bekommt, kurz bevor es angezeigt wird. Wenn das Widget noch nicht in der Größe verändert wurde, wird Qt die Größe des Widgets mit adjustSize() auf einen sinnvollen Standardwert anpassen.

Der Aufruf von setVisible(false) oder hide() verbirgt ein Widget explizit. Ein explizit verstecktes Widget wird niemals sichtbar, selbst wenn alle seine Vorgänger sichtbar werden, es sei denn, Sie zeigen es.

Ein Widget empfängt Show- und Hide-Ereignisse, wenn sich sein Sichtbarkeitsstatus ändert. Zwischen einem Ausblenden- und einem Einblenden-Ereignis müssen keine CPU-Zyklen für die Vorbereitung oder Anzeige von Informationen für den Benutzer verschwendet werden. Eine Videoanwendung kann zum Beispiel einfach aufhören, neue Bilder zu erzeugen.

Ein Widget, das zufällig von anderen Fenstern auf dem Bildschirm verdeckt wird, gilt als sichtbar. Das Gleiche gilt für ikonifizierte Fenster und Fenster, die sich auf einem anderen virtuellen Desktop befinden (auf Plattformen, die dieses Konzept unterstützen). Ein Widget erhält spontane Ein- und Ausblendungsereignisse, wenn sein Zuordnungsstatus vom Fenstersystem geändert wird, z. B. ein spontanes Ausblendungsereignis, wenn der Benutzer das Fenster minimiert, und ein spontanes Einblendungsereignis, wenn das Fenster wiederhergestellt wird.

Sie müssen die Funktion setVisible() nur selten neu implementieren. Wenn Sie einige Einstellungen ändern müssen, bevor ein Widget angezeigt wird, verwenden Sie stattdessen showEvent(). Wenn Sie eine verzögerte Initialisierung durchführen müssen, verwenden Sie das Ereignis Polish, das an die Funktion event() geliefert wird.

Zugriffsfunktionen:

bool isVisible() const
virtual void setVisible(bool visible)

Siehe auch show(), hide(), isHidden(), isVisibleTo(), isMinimized(), showEvent(), und hideEvent().

whatsThis : QString

Diese Eigenschaft enthält den Hilfetext des Widgets What's This.

Standardmäßig enthält diese Eigenschaft eine leere Zeichenkette.

Zugriffsfunktionen:

QString whatsThis() const
void setWhatsThis(const QString &)

Siehe auch QWhatsThis, QWidget::toolTip, und QWidget::statusTip.

[read-only] width : const int

Diese Eigenschaft enthält die Breite des Widgets ohne den Fensterrahmen

Einen Überblick über die Geometrie von Fenstern finden Sie in der Dokumentation Window Geometry.

Hinweis: Verwenden Sie diese Funktion nicht, um die Breite eines Bildschirms auf einem Desktop mit mehreren Bildschirmen zu ermitteln. Siehe QScreen für Details.

Standardmäßig enthält diese Eigenschaft einen Wert, der von der Plattform des Benutzers und der Bildschirmgeometrie abhängt.

Zugriffsfunktionen:

int width() const

Siehe auch geometry, height, und size.

windowFilePath : QString

Diese Eigenschaft enthält den Dateipfad, der mit einem Widget verbunden ist.

Diese Eigenschaft ist nur für Fenster sinnvoll. Sie assoziiert einen Dateipfad mit einem Fenster. Wenn Sie den Dateipfad gesetzt haben, aber nicht den Fenstertitel, setzt Qt den Fenstertitel auf den Dateinamen des angegebenen Pfades, der mit QFileInfo::fileName() ermittelt wurde.

Wenn der Fenstertitel an irgendeiner Stelle gesetzt ist, hat der Fenstertitel Vorrang und wird anstelle des Dateipfads angezeigt.

Unter macOS hat dies außerdem den zusätzlichen Vorteil, dass das Proxy-Symbol für das Fenster gesetzt wird, vorausgesetzt, der Dateipfad existiert.

Wenn kein Dateipfad festgelegt ist, enthält diese Eigenschaft eine leere Zeichenfolge.

Standardmäßig enthält diese Eigenschaft eine leere Zeichenkette.

Zugriffsfunktionen:

QString windowFilePath() const
void setWindowFilePath(const QString &filePath)

Siehe auch windowTitle und windowIcon.

windowFlags : Qt::WindowFlags

Fenster-Flags sind eine Kombination aus einem Typ (z. B. Qt::Dialog) und null oder mehr Hinweisen auf das Fenstersystem (z. B. Qt::FramelessWindowHint).

Wenn das Widget vom Typ Qt::Widget oder Qt::SubWindow ist und zu einem Fenster wird (Qt::Window, Qt::Dialog, etc.), wird es an die Position (0, 0) auf dem Desktop gesetzt. Wenn das Widget ein Fenster ist und ein Qt::Widget oder Qt::SubWindow wird, wird es an die Position (0, 0) relativ zu seinem Eltern-Widget gesetzt.

Hinweis: Diese Funktion ruft setParent() auf, wenn die Flags für ein Fenster geändert werden, wodurch das Widget versteckt wird. Sie müssen show() aufrufen, um das Widget wieder sichtbar zu machen.

Zugriffsfunktionen:

Qt::WindowFlags windowFlags() const
void setWindowFlags(Qt::WindowFlags type)

Siehe auch windowType(), setWindowFlag(), und Window Flags Beispiel.

windowIcon : QIcon

Diese Eigenschaft enthält das Symbol des Widgets

Diese Eigenschaft ist nur für Fenster sinnvoll. Wenn kein Icon gesetzt wurde, gibt windowIcon() das Anwendungssymbol zurück (QApplication::windowIcon()).

Hinweis: Unter macOS stellen Fenstersymbole das aktive Dokument dar und werden nicht angezeigt, wenn nicht auch ein Dateipfad mit setWindowFilePath gesetzt wurde.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void windowIconChanged(const QIcon &icon)

Siehe auch windowTitle und setWindowFilePath.

windowModality : Qt::WindowModality

Diese Eigenschaft bestimmt, welche Fenster durch das modale Widget blockiert werden.

Diese Eigenschaft ist nur für Fenster sinnvoll. Ein modales Widget hindert Widgets in anderen Fenstern daran, Eingaben zu erhalten. Der Wert dieser Eigenschaft steuert, welche Fenster blockiert werden, wenn das Widget sichtbar ist. Wenn Sie diese Eigenschaft ändern, während das Fenster sichtbar ist, hat dies keine Auswirkungen; Sie müssen das Widget zuerst hide() und dann show() erneut ändern.

Standardmäßig ist diese Eigenschaft auf Qt::NonModal eingestellt.

Zugriffsfunktionen:

Qt::WindowModality windowModality() const
void setWindowModality(Qt::WindowModality windowModality)

Siehe auch isWindow(), QWidget::modal, und QDialog.

windowModified : bool

Diese Eigenschaft gibt an, ob das im Fenster angezeigte Dokument ungespeicherte Änderungen aufweist

Ein modifiziertes Fenster ist ein Fenster, dessen Inhalt sich geändert hat, aber noch nicht auf der Festplatte gespeichert wurde. Dieses Flag hat je nach Plattform unterschiedliche Auswirkungen. Unter macOS sieht die Schließen-Schaltfläche anders aus; auf anderen Plattformen wird der Fenstertitel mit einem '*' (Sternchen) versehen.

Der Fenstertitel muss einen "[*]"-Platzhalter enthalten, der angibt, wo der "*" erscheinen soll. Normalerweise sollte er direkt nach dem Dateinamen stehen (z. B. "document1.txt[*] - Text Editor"). Wenn das Fenster nicht geändert wird, wird der Platzhalter einfach entfernt.

Beachten Sie, dass, wenn ein Widget als geändert festgelegt wird, alle seine Vorgänger ebenfalls als geändert festgelegt werden. Wenn Sie jedoch setWindowModified(false) für ein Widget aufrufen, wird dies nicht auf dessen Elternteil übertragen, da auch andere Kinder des Elternteils geändert worden sein könnten.

Zugriffsfunktionen:

bool isWindowModified() const
void setWindowModified(bool)

Siehe auch windowTitle.

windowOpacity : double

Diese Eigenschaft gibt den Grad der Deckkraft des Fensters an.

Der gültige Bereich für die Deckkraft reicht von 1,0 (völlig undurchsichtig) bis 0,0 (völlig transparent).

Standardmäßig ist der Wert dieser Eigenschaft 1,0.

Diese Funktion ist auf Embedded Linux, macOS, Windows und X11-Plattformen verfügbar, die die Composite-Erweiterung unterstützen.

Hinweis: Unter X11 muss ein Composite-Manager laufen, und das X11-spezifische Atom _NET_WM_WINDOW_OPACITY muss von dem verwendeten Window-Manager unterstützt werden.

Warnung: Wenn Sie diese Eigenschaft von opak auf transparent ändern, wird möglicherweise ein Paint-Ereignis ausgelöst, das verarbeitet werden muss, bevor das Fenster korrekt angezeigt wird. Dies betrifft hauptsächlich die Verwendung von QScreen::grabWindow(). Beachten Sie auch, dass sich halbtransparente Fenster wesentlich langsamer aktualisieren und in der Größe verändern als undurchsichtige Fenster.

Zugriffsfunktionen:

qreal windowOpacity() const
void setWindowOpacity(qreal level)

Siehe auch setMask().

windowTitle : QString

Diese Eigenschaft enthält den Fenstertitel (Beschriftung)

Diese Eigenschaft ist nur für Widgets der obersten Ebene, wie Fenster und Dialoge, sinnvoll. Wenn keine Beschriftung gesetzt wurde, basiert der Titel auf windowFilePath. Wenn keine dieser beiden Eigenschaften gesetzt ist, ist der Titel eine leere Zeichenkette.

Wenn Sie den windowModified Mechanismus verwenden, muss der Fenstertitel einen "[*]" Platzhalter enthalten, der angibt, wo der '*' erscheinen soll. Normalerweise sollte er direkt nach dem Dateinamen stehen (z. B. "document1.txt[*] - Text Editor"). Wenn die Eigenschaft windowModified false lautet (Standardeinstellung), wird der Platzhalter einfach entfernt.

Auf einigen Desktop-Plattformen (einschließlich Windows und Unix) wird der Anwendungsname (aus QGuiApplication::applicationDisplayName) am Ende des Fenstertitels angefügt, sofern er gesetzt ist. Dies geschieht durch das QPA-Plugin, so dass er dem Benutzer angezeigt wird, aber nicht Teil des windowTitle-Strings ist.

Zugriffsfunktionen:

QString windowTitle() const
void setWindowTitle(const QString &)

Notifier-Signal:

void windowTitleChanged(const QString &title)

Siehe auch windowIcon, windowModified, und windowFilePath.

[read-only] x : const int

Diese Eigenschaft enthält die x-Koordinate des Widgets relativ zu seinem übergeordneten Element einschließlich eines Fensterrahmens

Siehe die Dokumentation Fenstergeometrie für einen Überblick über Geometrieprobleme mit Fenstern.

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

Zugriffsfunktionen:

int x() const

Siehe auch frameGeometry, y, und pos.

[read-only] y : const int

Diese Eigenschaft enthält die y-Koordinate des Widgets relativ zu seinem übergeordneten Element und einschließlich eines Fensterrahmens

Siehe die Dokumentation Fenstergeometrie für einen Überblick über Geometrieprobleme mit Fenstern.

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

Zugriffsfunktionen:

int y() const

Siehe auch frameGeometry, x, und pos.

Dokumentation der Mitgliedsfunktionen

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut)

[since 6.3] QAction *QWidget::addAction(const QString &text)

[since 6.3] QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut)

Diese Komfortfunktionen erstellen eine neue Aktion mit dem Text text, dem Symbol icon und dem Kürzel shortcut, falls vorhanden.

Die Funktionen fügen die neu erstellte Aktion zur Liste der Aktionen des Widgets hinzu und geben sie zurück.

QWidget übernimmt das Eigentum an der zurückgegebenen QAction.

Diese Funktion wurde in Qt 6.3 eingeführt.

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

[since 6.3] QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

[since 6.3] QAction *QWidget::addAction(const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

Dies ist eine überladene Funktion.

Diese Komfortfunktion erstellt eine neue Aktion mit dem Text text, dem Symbol icon und dem Kürzel shortcut, falls vorhanden.

Das Signal triggered() der Aktion wird mit dem receiver's member Slot verbunden. Die Funktion fügt die neu erstellte Aktion zur Liste der Aktionen des Widgets hinzu und gibt sie zurück.

QWidget übernimmt das Eigentum an der zurückgegebenen QAction.

Diese Funktion wurde in Qt 6.3 eingeführt.

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QIcon &icon, const QString &text, Args &&... args)

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, Args &&... args)

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QString &text, Args &&... args)

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut, Args &&... args)

Dies ist eine überladene Funktion.

Diese Komfortfunktionen erstellen eine neue Aktion mit dem Text text, dem Symbol icon und dem Kürzel shortcut, falls vorhanden.

Das Signal triggered() der Aktion wird wie durch einen Aufruf von QObject::connect(action, &QAction::triggered, args...) verbunden, wobei args perfekt weitergeleitet wird, einschließlich einer möglichen Qt::ConnectionType.

Die Funktion fügt die neu erstellte Aktion zur Liste der Aktionen des Widgets hinzu und gibt sie zurück.

QWidget übernimmt das Eigentum an der zurückgegebenen QAction.

Diese Funktion wurde in Qt 6.3 eingeführt.

[explicit] QWidget::QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

Konstruiert ein Widget, das ein Kind von parent ist, wobei die Widget-Flags auf f gesetzt sind.

Wenn parent nullptr ist, wird das neue Widget ein Fenster. Wenn parent ein anderes Widget ist, wird dieses Widget ein untergeordnetes Fenster innerhalb von parent. Das neue Widget wird gelöscht, wenn sein parent gelöscht wird.

Das Argument für die Widget-Flags, f, ist normalerweise 0, aber es kann gesetzt werden, um den Rahmen eines Fensters anzupassen (d.h. parent muss nullptr sein). Um den Rahmen anzupassen, verwenden Sie einen Wert, der sich aus dem bitweisen ODER einer der window flags zusammensetzt.

Wenn Sie ein untergeordnetes Widget zu einem bereits sichtbaren Widget hinzufügen, müssen Sie das untergeordnete Widget explizit anzeigen, um es sichtbar zu machen.

Beachten Sie, dass die X11-Version von Qt möglicherweise nicht alle Kombinationen von Style-Flags auf allen Systemen bereitstellen kann. Das liegt daran, dass Qt unter X11 nur den Fenstermanager fragen kann, und der Fenstermanager kann die Einstellungen der Anwendung außer Kraft setzen. Unter Windows kann Qt alle Flags setzen, die Sie wollen.

Siehe auch windowFlags.

[virtual noexcept] QWidget::~QWidget()

Zerstört das Widget.

Alle Kinder dieses Widgets werden zuerst gelöscht. Die Anwendung wird beendet, wenn dieses Widget das Hauptwidget ist.

[virtual protected] void QWidget::actionEvent(QActionEvent *event)

Dieser Event-Handler wird mit dem angegebenen event aufgerufen, wenn die Aktionen des Widgets geändert werden.

Siehe auch addAction(), insertAction(), removeAction(), actions(), und QActionEvent.

QList<QAction *> QWidget::actions() const

Gibt die (möglicherweise leere) Liste der Aktionen dieses Widgets zurück.

Siehe auch contextMenuPolicy, insertAction(), und removeAction().

void QWidget::activateWindow()

Legt fest, dass das Top-Level-Widget, das dieses Widget enthält, das aktive Fenster ist.

Ein aktives Fenster ist ein sichtbares Fenster der obersten Ebene, das den Fokus der Tastatureingabe hat.

Diese Funktion führt die gleiche Operation aus wie ein Mausklick auf die Titelleiste eines Fensters der obersten Ebene. Unter X11 hängt das Ergebnis vom Fenstermanager ab. Wenn Sie sicherstellen wollen, dass das Fenster auch oben gestapelt wird, sollten Sie auch raise() aufrufen. Beachten Sie, dass das Fenster sichtbar sein muss, sonst hat activateWindow() keine Wirkung.

Wenn Sie diese Funktion unter Windows aufrufen, während die Anwendung noch nicht aktiv ist, wird sie nicht zum aktiven Fenster. Es wird die Farbe des Taskleisteneintrags ändern, um anzuzeigen, dass sich das Fenster in irgendeiner Weise geändert hat. Dies liegt daran, dass Microsoft nicht zulässt, dass eine Anwendung unterbricht, was der Benutzer gerade in einer anderen Anwendung tut.

Siehe auch isActiveWindow(), window(), und show().

void QWidget::addAction(QAction *action)

Hängt die Aktion action an die Liste der Aktionen des Widgets an.

Alle QWidgets haben eine Liste von QActions. Sie können jedoch auf viele verschiedene Arten grafisch dargestellt werden. Die Standardverwendung der QAction Liste (wie von actions() zurückgegeben) ist es, einen Kontext QMenu zu erstellen.

Ein QWidget sollte von jeder Aktion nur eine haben und das Hinzufügen einer Aktion, die es bereits hat, führt nicht dazu, dass dieselbe Aktion zweimal im Widget ist.

Der Besitz von action wird nicht auf dieses QWidget übertragen.

Siehe auch removeAction(), insertAction(), actions(), und QMenu.

void QWidget::addActions(const QList<QAction *> &actions)

Hängt die Aktionen actions an die Liste der Aktionen dieses Widgets an.

Siehe auch removeAction(), QMenu, und addAction().

void QWidget::adjustSize()

Passt die Größe des Widgets an seinen Inhalt an.

Diese Funktion verwendet sizeHint(), wenn sie gültig ist, d.h. wenn die Breite und Höhe des Größenhinweises >= 0 sind. Andernfalls setzt sie die Größe auf das Kinderrechteck, das alle Kinderwidgets abdeckt (die Vereinigung aller Kinderrechtecke der Widgets).

Bei Fenstern wird auch die Bildschirmgröße berücksichtigt. Wenn sizeHint() kleiner als (200, 100) ist und die Größenpolitik expanding lautet, wird das Fenster mindestens (200, 100) groß sein. Die maximale Größe eines Fensters beträgt 2/3 der Breite und Höhe des Bildschirms.

Siehe auch sizeHint() und childrenRect().

QPalette::ColorRole QWidget::backgroundRole() const

Gibt die Hintergrundrolle des Widgets zurück.

Die Hintergrundrolle definiert den Pinsel aus dem palette des Widgets, der zum Rendern des Hintergrunds verwendet wird.

Wenn keine explizite Hintergrundrolle gesetzt ist, erbt das Widget die Hintergrundrolle seines Eltern-Widgets.

Siehe auch setBackgroundRole() und foregroundRole().

QBackingStore *QWidget::backingStore() const

Gibt die QBackingStore zurück, in die dieses Widget gezeichnet wird.

[virtual protected] void QWidget::changeEvent(QEvent *event)

Dieser Event-Handler kann neu implementiert werden, um Zustandsänderungen zu behandeln.

Der in diesem Ereignis geänderte Zustand kann über die mitgelieferte event abgerufen werden.

Zu den Änderungsereignissen gehören: QEvent::ToolBarChange, QEvent::ActivationChange, QEvent::EnabledChange, QEvent::FontChange, QEvent::StyleChange, QEvent::PaletteChange, QEvent::WindowTitleChange, QEvent::IconTextChange, QEvent::ModifiedChange, QEvent::MouseTrackingChange, QEvent::ParentChange, QEvent::WindowStateChange, QEvent::LanguageChange, QEvent::LocaleChange, QEvent::LayoutDirectionChange, QEvent::ReadOnlyChange.

QWidget *QWidget::childAt(int x, int y) const

Gibt das sichtbare untergeordnete Widget an der Position (x, y) im Koordinatensystem des Widgets zurück. Gibt es kein sichtbares untergeordnetes Widget an der angegebenen Position, gibt die Funktion nullptr zurück.

QWidget *QWidget::childAt(const QPoint &p) const

Dies ist eine überladene Funktion.

Gibt das sichtbare untergeordnete Widget am Punkt p im eigenen Koordinatensystem zurück.

[since 6.8] QWidget *QWidget::childAt(const QPointF &p) const

Dies ist eine überladene Funktion.

Gibt das sichtbare untergeordnete Widget am Punkt p im eigenen Koordinatensystem zurück.

Diese Funktion wurde in Qt 6.8 eingeführt.

void QWidget::clearFocus()

Nimmt den Tastatureingabefokus vom Widget.

Wenn das Widget den aktiven Fokus hat, wird eine focus out event an dieses Widget gesendet, um ihm mitzuteilen, dass es den Fokus verloren hat.

Dieses Widget muss die Fokuseinstellung aktivieren, um den Tastatureingabefokus zu erhalten; das heißt, es muss setFocusPolicy() aufrufen.

Siehe auch hasFocus(), setFocus(), focusInEvent(), focusOutEvent(), setFocusPolicy(), und QApplication::focusWidget().

void QWidget::clearMask()

Entfernt alle Masken, die mit setMask() gesetzt wurden.

Siehe auch setMask().

[slot] bool QWidget::close()

Schließt dieses Widget. Gibt true zurück, wenn das Widget geschlossen wurde; andernfalls gibt es false zurück.

Zuerst sendet es dem Widget ein QCloseEvent. Das Widget ist hidden, wenn es accepts das Schließereignis. Wenn es ignores das Ereignis, passiert nichts. Die Standardimplementierung von QWidget::closeEvent() akzeptiert das Schließereignis.

Wenn das Widget das Qt::WA_DeleteOnClose Flag hat, wird das Widget auch gelöscht. Ein Schließereignis wird an das Widget übermittelt, unabhängig davon, ob das Widget sichtbar ist oder nicht.

Das Signal QGuiApplication::lastWindowClosed() wird ausgegeben, wenn das letzte sichtbare primäre Fenster (d.h. ein Fenster ohne Elternteil) mit dem Attribut Qt::WA_QuitOnClose geschlossen wird. Standardmäßig ist dieses Attribut für alle Widgets gesetzt, außer für vorübergehende Fenster wie Splash-Screens, Werkzeugfenster und Popup-Menüs.

[virtual protected] void QWidget::closeEvent(QCloseEvent *event)

Dieser Event-Handler wird mit der angegebenen event aufgerufen, wenn Qt eine Anforderung zum Schließen eines Fensters für ein Top-Level-Widget vom Fenstersystem erhält.

Standardmäßig wird das Ereignis akzeptiert und das Widget wird geschlossen. Sie können diese Funktion neu implementieren, um die Art und Weise zu ändern, wie das Widget auf Anfragen zum Schließen des Fensters reagiert. Sie können zum Beispiel das Schließen des Fensters verhindern, indem Sie ignore() bei allen Ereignissen aufrufen.

Hauptfensteranwendungen verwenden typischerweise Reimplementierungen dieser Funktion, um zu prüfen, ob die Arbeit des Benutzers gespeichert wurde, und um vor dem Schließen um Erlaubnis zu fragen.

Siehe auch event(), hide(), close(), und QCloseEvent.

QMargins QWidget::contentsMargins() const

Die Funktion contentsMargins gibt die Inhaltsränder des Widgets zurück.

Siehe auch setContentsMargins() und contentsRect().

QRect QWidget::contentsRect() const

Gibt den Bereich innerhalb der Ränder des Widgets zurück.

Siehe auch setContentsMargins() und contentsMargins().

[virtual protected] void QWidget::contextMenuEvent(QContextMenuEvent *event)

Dieser Ereignishandler für das Ereignis event kann in einer Unterklasse neu implementiert werden, um Ereignisse des Widget-Kontextmenüs zu empfangen.

Der Handler wird aufgerufen, wenn die contextMenuPolicy des Widgets Qt::DefaultContextMenu ist.

Die Standardimplementierung ignoriert das Kontextereignis. Siehe die QContextMenuEvent Dokumentation für weitere Details.

Siehe auch event(), QContextMenuEvent, und customContextMenuRequested().

[protected] void QWidget::create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true)

Erzeugt ein neues Widget-Fenster.

Die Parameter window, initializeWindow und destroyOldWindow werden in Qt 5 ignoriert. Bitte verwenden Sie QWindow::fromWinId(), um ein QWindow zu erstellen, das ein fremdes Fenster umhüllt und übergeben Sie es stattdessen an QWidget::createWindowContainer().

Siehe auch createWindowContainer() und QWindow::fromWinId().

[static] QWidget *QWidget::createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())

Erzeugt ein QWidget, das es ermöglicht, window in eine QWidget-basierte Anwendung einzubetten.

Der Fenster-Container wird als Kind von parent und mit Fenster-Flags flags erstellt.

Sobald das Fenster in den Container eingebettet ist, kontrolliert der Container die Geometrie und Sichtbarkeit des Fensters. Explizite Aufrufe von QWindow::setGeometry(), QWindow::show() oder QWindow::hide() für ein eingebettetes Fenster werden nicht empfohlen.

Der Container übernimmt die Kontrolle über window. Das Fenster kann mit einem Aufruf von QWindow::setParent() aus dem Fenster-Container entfernt werden.

Der Fenster-Container ist als natives Kindfenster an das Toplevel-Fenster angehängt, dessen Kind er ist. Wenn ein Fenster-Container als Kind eines QAbstractScrollArea oder QMdiArea verwendet wird, erstellt er ein native window für jedes Widget in seiner Elternkette, um in diesem Anwendungsfall ein korrektes Stapeln und Beschneiden zu ermöglichen. Das Erstellen eines nativen Fensters für den Fenster-Container ermöglicht ebenfalls ein korrektes Stapeln und Beschneiden. Dies muss geschehen, bevor der Fenster-Container angezeigt wird. Anwendungen mit vielen nativen Kindfenstern können unter Leistungsproblemen leiden.

Der Fenster-Container hat eine Reihe von bekannten Einschränkungen:

  • Stapelreihenfolge: Das eingebettete Fenster wird als undurchsichtige Box über der Widget-Hierarchie gestapelt. Die Stapelreihenfolge mehrerer sich überlappender Fenster-Container-Instanzen ist undefiniert.
  • Rendering-Integration; Der Fenster-Container arbeitet nicht mit QGraphicsProxyWidget, QWidget::render() oder ähnlichen Funktionen zusammen.
  • Fokus-Handling; Es ist möglich, die Fenster-Container-Instanz eine beliebige Fokus-Policy haben zu lassen und sie wird den Fokus an das Fenster über einen Aufruf von QWindow::requestActivate() delegieren. Wie auch immer, die Rückkehr zur normalen Fokuskette von der QWindow Instanz wird von der QWindow Instanzimplementierung selbst abhängen. Wenn man z.B. ein Qt Quick basiertes Fenster mit Tabulatorfokus betritt, ist es sehr wahrscheinlich, dass weitere Tabulatordrücke nur innerhalb der QML-Anwendung durchlaufen werden. Auch ob QWindow::requestActivate() dem Fenster tatsächlich den Fokus gibt, ist plattformabhängig.
  • Die Verwendung vieler Fenster-Container-Instanzen in einer QWidget-basierten Anwendung kann die Gesamtleistung der Anwendung stark beeinträchtigen.
  • Seit 6.7 wird kein Container mehr erstellt, wenn window zu einem Widget gehört (d.h. window wurde durch den Aufruf von windowHandle() empfangen). Stattdessen wird diese Funktion das Widget selbst zurückgeben, nachdem es an parent repariert wurde. Da kein Container erstellt wird, wird flags ignoriert. Mit anderen Worten, wenn window zu einem Widget gehört, sollten Sie erwägen, dieses Widget an parent zu reparieren, anstatt diese Funktion zu verwenden.

[signal] void QWidget::customContextMenuRequested(const QPoint &pos)

Dieses Signal wird ausgegeben, wenn contextMenuPolicy des Widgets Qt::CustomContextMenu ist und der Benutzer ein Kontextmenü für das Widget angefordert hat. Die Position pos ist die Position des Kontextmenü-Ereignisses, das das Widget empfängt. Normalerweise ist dies in den Koordinaten des Widgets. Die Ausnahme von dieser Regel ist QAbstractScrollArea und seine Unterklassen, die das Kontextmenüereignis auf die Koordinaten von viewport() abbilden.

Siehe auch mapToGlobal(), QMenu, und contextMenuPolicy.

[protected] void QWidget::destroy(bool destroyWindow = true, bool destroySubWindows = true)

Gibt die Systemressourcen des Fensters frei. Zerstört das Widget-Fenster, wenn destroyWindow wahr ist.

destroy() ruft sich selbst rekursiv für alle untergeordneten Widgets auf und übergibt destroySubWindows für den Parameter destroyWindow. Um mehr Kontrolle über die Zerstörung von Subwidgets zu haben, zerstören Sie die Subwidgets zuerst selektiv.

Diese Funktion wird normalerweise vom QWidget destructor aufgerufen.

[virtual protected] void QWidget::dragEnterEvent(QDragEnterEvent *event)

Dieser Event-Handler wird aufgerufen, wenn ein Ziehen im Gange ist und die Maus in dieses Widget eintritt. Das Ereignis wird mit dem Parameter event übergeben.

Wenn das Ereignis ignoriert wird, erhält das Widget keine drag move events.

In der Drag-and-drop-Dokumentation finden Sie einen Überblick darüber, wie Sie Drag-and-drop in Ihrer Anwendung bereitstellen können.

Siehe auch QDrag und QDragEnterEvent.

[virtual protected] void QWidget::dragLeaveEvent(QDragLeaveEvent *event)

Dieser Event-Handler wird aufgerufen, wenn ein Ziehen im Gange ist und die Maus dieses Widget verlässt. Das Ereignis wird mit dem Parameter event übergeben.

In der Drag-and-drop-Dokumentation finden Sie einen Überblick darüber, wie Sie Drag-and-drop in Ihrer Anwendung bereitstellen können.

Siehe auch QDrag und QDragLeaveEvent.

[virtual protected] void QWidget::dragMoveEvent(QDragMoveEvent *event)

Dieser Event-Handler wird aufgerufen, wenn ein Ziehen im Gange ist und wenn eine der folgenden Bedingungen eintritt: der Cursor betritt dieses Widget, der Cursor bewegt sich innerhalb dieses Widgets oder eine Modifier-Taste wird auf der Tastatur gedrückt, während dieses Widget den Fokus hat. Das Ereignis wird mit dem Parameter event übergeben.

In der Drag-and-drop-Dokumentation finden Sie einen Überblick darüber, wie Sie Drag-and-drop in Ihrer Anwendung bereitstellen können.

Siehe auch QDrag und QDragMoveEvent.

[virtual protected] void QWidget::dropEvent(QDropEvent *event)

Dieser Event-Handler wird aufgerufen, wenn das Ziehen auf diesem Widget abgesetzt wird. Das Ereignis wird mit dem Parameter event übergeben.

In der Drag-and-Drop-Dokumentation finden Sie einen Überblick darüber, wie Sie Drag-and-Drop in Ihrer Anwendung anbieten können.

Siehe auch QDrag und QDropEvent.

WId QWidget::effectiveWinId() const

Gibt den effektiven Fenstersystembezeichner des Widgets zurück, d.h. den Fenstersystembezeichner des nativen Elternteils.

Wenn das Widget nativ ist, gibt diese Funktion die native Widget-ID zurück. Andernfalls wird die Fenster-ID des ersten nativen übergeordneten Widgets zurückgegeben, d. h. des Widgets der obersten Ebene, das dieses Widget enthält.

Hinweis: Es wird empfohlen, diesen Wert nicht zu speichern, da er sich während der Laufzeit wahrscheinlich ändern wird.

Siehe auch nativeParentWidget().

void QWidget::ensurePolished() const

Stellt sicher, dass das Widget und seine Kinder von QStyle aufpoliert wurden (d.h. eine korrekte Schriftart und Palette haben).

QWidget ruft diese Funktion auf, nachdem das Widget vollständig konstruiert wurde, aber bevor es das erste Mal angezeigt wird. Sie können diese Funktion aufrufen, wenn Sie sicherstellen wollen, dass das Widget poliert ist, bevor Sie eine Operation durchführen, z.B. könnte die korrekte Schriftgröße in der sizeHint() Reimplementierung des Widgets benötigt werden. Beachten Sie, dass diese Funktion von der Standardimplementierung von sizeHint() aufgerufen wird.

Polishing ist nützlich für die endgültige Initialisierung, die erfolgen muss, nachdem alle Konstruktoren (sowohl von Basisklassen als auch von Unterklassen) aufgerufen wurden.

Wenn Sie einige Einstellungen ändern müssen, wenn ein Widget poliert wird, implementieren Sie event() neu und behandeln Sie den Ereignistyp QEvent::Polish.

Hinweis: Die Funktion ist als const deklariert, so dass sie von anderen const-Funktionen (z. B. sizeHint()) aufgerufen werden kann.

Siehe auch event().

[virtual protected] void QWidget::enterEvent(QEnterEvent *event)

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Widget-Entry-Ereignisse zu empfangen, die mit dem Parameter event übergeben werden.

Ein Ereignis wird an das Widget gesendet, wenn der Mauszeiger das Widget betritt.

Siehe auch leaveEvent(), mouseMoveEvent(), und event().

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

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

Dies ist der Hauptereignishandler; er behandelt das Ereignis event. Sie können diese Funktion in einer Unterklasse reimplementieren, aber wir empfehlen, stattdessen einen der spezialisierten Event-Handler zu verwenden.

Ereignisse zum Drücken und Loslassen von Tasten werden anders behandelt als andere Ereignisse. event() prüft auf Tab und Shift+Tab und versucht, den Fokus entsprechend zu verschieben. Wenn es kein Widget gibt, in das der Fokus verschoben werden kann (oder der Tastendruck nicht Tab oder Shift+Tab ist), ruft event() keyPressEvent() auf.

Die Behandlung von Maus- und Tablett-Ereignissen ist ebenfalls etwas speziell: nur wenn das Widget enabled ist, ruft event() die speziellen Handler wie mousePressEvent() auf; andernfalls wird das Ereignis verworfen.

Diese Funktion gibt true zurück, wenn das Ereignis erkannt wurde, andernfalls gibt sie false zurück. Wenn das erkannte Ereignis akzeptiert wurde (siehe QEvent::accepted), wird jede weitere Verarbeitung, wie z. B. die Weitergabe von Ereignissen an das übergeordnete Widget, beendet.

Siehe auch closeEvent(), focusInEvent(), focusOutEvent(), enterEvent(), keyPressEvent(), keyReleaseEvent(), leaveEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), mousePressEvent(), mouseReleaseEvent(), moveEvent(), paintEvent(), resizeEvent(), QObject::event(), und QObject::timerEvent().

[static] QWidget *QWidget::find(WId id)

Gibt einen Zeiger auf das Widget mit dem Fensterbezeichner/Handle id zurück.

Der Typ des Fensterkennzeichens hängt vom zugrunde liegenden Fenstersystem ab, siehe qwindowdefs.h für die aktuelle Definition. Falls es kein Widget mit dieser Kennung gibt, wird nullptr zurückgegeben.

[virtual protected] void QWidget::focusInEvent(QFocusEvent *event)

Dieser Eventhandler kann in einer Unterklasse neu implementiert werden, um Tastaturfokusereignisse (Fokus erhalten) für das Widget zu empfangen. Das Ereignis wird mit dem Parameter event übergeben.

Ein Widget muss normalerweise setFocusPolicy() an etwas anderes als Qt::NoFocus übergeben, um Fokusereignisse zu empfangen. (Beachten Sie, dass der Anwendungsprogrammierer setFocus() für jedes Widget aufrufen kann, auch für solche, die normalerweise keinen Fokus empfangen).

Die Standardimplementierung aktualisiert das Widget (außer für Fenster, die kein focusPolicy() angeben).

Siehe auch focusOutEvent(), setFocusPolicy(), keyPressEvent(), keyReleaseEvent(), event(), und QFocusEvent.

[protected] bool QWidget::focusNextChild()

Findet ein neues Widget, dem der Tastaturfokus gegeben werden kann, wie es für Tab angemessen ist, und gibt true zurück, wenn es ein neues Widget findet, oder false, wenn es das nicht kann.

Siehe auch focusPreviousChild().

[virtual protected] bool QWidget::focusNextPrevChild(bool next)

Findet ein neues Widget, dem der Tastaturfokus gegeben werden soll, wie es für Tab und Shift+Tab angemessen ist, und gibt true zurück, wenn es ein neues Widget findet, oder false, wenn es nicht gefunden wird.

Wenn next wahr ist, sucht diese Funktion vorwärts, wenn next falsch ist, sucht sie rückwärts.

Manchmal werden Sie diese Funktion neu implementieren wollen. Zum Beispiel könnte ein Webbrowser sie neu implementieren, um seinen "aktuellen aktiven Link" vorwärts oder rückwärts zu bewegen und focusNextPrevChild() nur dann aufzurufen, wenn er den letzten oder ersten Link auf der "Seite" erreicht.

Kind-Widgets rufen focusNextPrevChild() bei ihren Eltern-Widgets auf, aber nur das Fenster, das die Kind-Widgets enthält, entscheidet, wohin der Fokus umgeleitet wird. Indem Sie diese Funktion für ein Objekt reimplementieren, erhalten Sie die Kontrolle über den Fokus-Traversal für alle Child-Widgets.

Siehe auch focusNextChild() und focusPreviousChild().

[virtual protected] void QWidget::focusOutEvent(QFocusEvent *event)

Dieser Ereignishandler kann in einer Unterklasse neu implementiert werden, um Tastaturfokusereignisse (Fokus verloren) für das Widget zu empfangen. Die Ereignisse werden mit dem Parameter event übergeben.

Ein Widget muss normalerweise setFocusPolicy() an etwas anderes als Qt::NoFocus übergeben, um Fokusereignisse zu empfangen. (Beachten Sie, dass der Anwendungsprogrammierer setFocus() auf jedem Widget aufrufen kann, auch auf solchen, die normalerweise keinen Fokus akzeptieren).

Die Standardimplementierung aktualisiert das Widget (außer für Fenster, die kein focusPolicy() angeben).

Siehe auch focusInEvent(), setFocusPolicy(), keyPressEvent(), keyReleaseEvent(), event(), und QFocusEvent.

[protected] bool QWidget::focusPreviousChild()

Findet ein neues Widget, dem der Tastaturfokus gegeben werden kann, wie es für Shift+Tab angemessen ist, und gibt true zurück, wenn es ein neues Widget findet, oder false, wenn es nicht gefunden wird.

Siehe auch focusNextChild().

QWidget *QWidget::focusProxy() const

Gibt den Fokus-Proxy zurück, oder nullptr, wenn es keinen Fokus-Proxy gibt.

Siehe auch setFocusProxy().

QWidget *QWidget::focusWidget() const

Gibt das letzte Kind dieses Widgets zurück, für das setFocus aufgerufen wurde. Für Widgets der obersten Ebene ist dies das Widget, das den Fokus erhält, wenn dieses Fenster aktiviert wird.

Dies ist nicht dasselbe wie QApplication::focusWidget(), das das Fokus-Widget im derzeit aktiven Fenster zurückgibt.

QFontInfo QWidget::fontInfo() const

Gibt die Schriftartinformationen für die aktuelle Schriftart des Widgets zurück. Äquivalent zu QFontInfo(widget->font()).

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

QFontMetrics QWidget::fontMetrics() const

Gibt die Schriftmetrik für die aktuelle Schrift des Widgets zurück. Äquivalent zu QFontMetrics(widget->font()).

Siehe auch font(), fontInfo(), und setFont().

QPalette::ColorRole QWidget::foregroundRole() const

Gibt die Vordergrundrolle zurück.

Die Vordergrundrolle definiert die Farbe aus dem palette des Widgets, die zum Zeichnen des Vordergrunds verwendet wird.

Wenn keine explizite Vordergrundrolle gesetzt ist, gibt die Funktion eine Rolle zurück, die mit der Hintergrundrolle kontrastiert.

Siehe auch setForegroundRole() und backgroundRole().

[invokable] QPixmap QWidget::grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))

Rendert das Widget in eine Pixmap, die durch die angegebene rectangle begrenzt ist. Wenn das Widget Kinder hat, werden diese ebenfalls an den entsprechenden Positionen gezeichnet.

Wenn ein Rechteck mit einer ungültigen Größe angegeben wird (die Vorgabe), wird das gesamte Widget gezeichnet.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

Siehe auch render() und QPixmap.

void QWidget::grabGesture(Qt::GestureType gesture, Qt::GestureFlags flags = Qt::GestureFlags())

Abonniert das Widget auf ein bestimmtes gesture mit spezifischer flags.

Siehe auch ungrabGesture() und QGestureEvent.

void QWidget::grabKeyboard()

Erfasst die Tastatureingabe.

Dieses Widget empfängt alle Tastaturereignisse, bis releaseKeyboard() aufgerufen wird; andere Widgets erhalten überhaupt keine Tastaturereignisse. Mausereignisse sind nicht betroffen. Verwenden Sie grabMouse(), wenn Sie diese abfangen wollen.

Das Fokus-Widget ist nicht betroffen, außer dass es keine Tastaturereignisse empfängt. setFocus() verschiebt den Fokus wie üblich, aber das neue Fokus-Widget empfängt Tastaturereignisse erst, nachdem releaseKeyboard() aufgerufen wurde.

Wenn ein anderes Widget gerade Tastatureingaben abgreift, wird der Zugriff dieses Widgets zuerst freigegeben.

Siehe auch releaseKeyboard(), grabMouse(), releaseMouse(), und focusWidget().

void QWidget::grabMouse()

Ergreift die Mauseingabe.

Dieses Widget empfängt alle Mausereignisse, bis releaseMouse() aufgerufen wird; andere Widgets erhalten überhaupt keine Mausereignisse. Tastaturereignisse sind nicht betroffen. Verwenden Sie grabKeyboard(), wenn Sie diese abfangen wollen.

Warnung: Bugs in Anwendungen, die Mausereignisse erfassen, blockieren sehr oft das Terminal. Benutzen Sie diese Funktion mit äußerster Vorsicht und erwägen Sie die Verwendung der Befehlszeilenoption -nograb während des Debuggens.

Bei der Verwendung von Qt ist es nur selten notwendig, die Maus zu greifen, da Qt sie vernünftig greift und loslässt. Insbesondere ergreift Qt die Maus, wenn eine Maustaste gedrückt wird und behält sie, bis die letzte Taste losgelassen wird.

Hinweis: Nur sichtbare Widgets können Mauseingaben erfassen. Wenn isVisible() false für ein Widget zurückgibt, kann dieses Widget nicht grabMouse() aufrufen.

Hinweis: Unter Windows funktioniert grabMouse() nur, wenn sich die Maus in einem Fenster befindet, das dem Prozess gehört. Unter macOS funktioniert grabMouse() nur, wenn sich die Maus innerhalb des Rahmens des Widgets befindet.

Siehe auch releaseMouse(), grabKeyboard(), und releaseKeyboard().

void QWidget::grabMouse(const QCursor &cursor)

Diese Funktion überlastet grabMouse().

Ergreift die Mauseingabe und ändert die Form des Cursors.

Der Cursor nimmt die Form cursor an (solange der Mausfokus gegriffen wird) und dieses Widget ist das einzige, das Mausereignisse empfängt, bis releaseMouse() aufgerufen wird().

Warnung: Das Festhalten der Maus kann das Terminal sperren.

Hinweis: Siehe den Hinweis in QWidget::grabMouse().

Siehe auch releaseMouse(), grabKeyboard(), releaseKeyboard(), und setCursor().

int QWidget::grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut)

Fügt dem Qt-Verknüpfungssystem eine Verknüpfung hinzu, die nach der angegebenen key -Sequenz in der angegebenen context sucht. Wenn context Qt::ApplicationShortcut ist, gilt die Verknüpfung für die gesamte Anwendung. Andernfalls ist sie entweder lokal für dieses Widget, Qt::WidgetShortcut, oder für das Fenster selbst, Qt::WindowShortcut.

Wenn dieselbe key Sequenz von mehreren Widgets gegriffen wurde, wird beim Auftreten der key Sequenz ein QEvent::Shortcut Ereignis an alle Widgets gesendet, auf die es zutrifft, in einer nicht-deterministischen Reihenfolge, aber mit dem ``ambiguous'' Flag auf true gesetzt.

Warnung: Normalerweise sollten Sie diese Funktion nicht verwenden; erstellen Sie stattdessen QActionmit den von Ihnen benötigten Tastenkombinationen (wenn Sie auch entsprechende Menüoptionen und Schaltflächen in der Symbolleiste benötigen), oder erstellen Sie QShortcut, wenn Sie nur Tastenkombinationen benötigen. Sowohl QAction als auch QShortcut übernehmen die gesamte Ereignisfilterung für Sie und liefern Signale, die ausgelöst werden, wenn der Benutzer die Tastenkombination auslöst, und sind daher viel einfacher zu verwenden als diese Low-Level-Funktion.

Siehe auch releaseShortcut() und setShortcutEnabled().

QGraphicsEffect *QWidget::graphicsEffect() const

Die Funktion graphicsEffect gibt einen Zeiger auf den Grafikeffekt des Widgets zurück.

Wenn das Widget keinen Grafikeffekt hat, wird nullptr zurückgegeben.

Siehe auch setGraphicsEffect().

QGraphicsProxyWidget *QWidget::graphicsProxyWidget() const

Gibt das Proxy-Widget für das entsprechende eingebettete Widget in einer Grafikansicht zurück; andernfalls wird nullptr zurückgegeben.

Siehe auch QGraphicsProxyWidget::createProxyForChildWidget() und QGraphicsScene::addWidget().

bool QWidget::hasEditFocus() const

Gibt true zurück, wenn dieses Widget gerade den Bearbeitungsfokus hat; andernfalls false.

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

Siehe auch setEditFocus() und QApplication::navigationMode().

[virtual] bool QWidget::hasHeightForWidth() const

Gibt true zurück, wenn die bevorzugte Höhe des Widgets von seiner Breite abhängt; andernfalls wird false zurückgegeben.

[virtual] int QWidget::heightForWidth(int w) const

Gibt die bevorzugte Höhe für dieses Widget in Abhängigkeit von der Breite w zurück.

Wenn dieses Widget ein Layout hat, gibt die Standardimplementierung die bevorzugte Höhe des Layouts zurück. Wenn es kein Layout gibt, gibt die Standardimplementierung -1 zurück und zeigt damit an, dass die bevorzugte Höhe nicht von der Breite abhängt.

[slot] void QWidget::hide()

Blendet das Widget aus. Diese Funktion ist äquivalent zu setVisible(false).

Hinweis: Wenn Sie mit QDialog oder seinen Unterklassen arbeiten und die Funktion show() nach dieser Funktion aufrufen, wird das Dialogfeld in seiner ursprünglichen Position angezeigt.

Siehe auch hideEvent(), isHidden(), show(), setVisible(), isVisible(), und close().

[virtual protected] void QWidget::hideEvent(QHideEvent *event)

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Ereignisse zum Ausblenden von Widgets zu empfangen. Das Ereignis wird mit dem Parameter event übergeben.

Ausblendungsereignisse werden an Widgets sofort gesendet, nachdem sie ausgeblendet worden sind.

Hinweis: Ein Widget empfängt spontane Ein- und Ausblendungsereignisse, wenn sein Zuordnungsstatus durch das Fenstersystem geändert wird, z. B. ein spontanes Ausblendungsereignis, wenn der Benutzer das Fenster minimiert, und ein spontanes Einblendungsereignis, wenn das Fenster wiederhergestellt wird. Nach dem Empfang eines spontanen Ausblendungsereignisses wird ein Widget weiterhin als sichtbar im Sinne von isVisible() betrachtet.

Siehe auch visible, event(), und QHideEvent.

[override virtual protected] void QWidget::initPainter(QPainter *painter) const

Initialisiert den painter Stift, den Hintergrund und die Schriftart auf die gleichen Werte wie das angegebene Widget. Diese Funktion wird automatisch aufgerufen, wenn der Painter auf einer QWidget geöffnet wird.

[virtual protected] void QWidget::inputMethodEvent(QInputMethodEvent *event)

Dieser Event-Handler für das Ereignis event kann in einer Unterklasse reimplementiert werden, um Ereignisse zur Zusammensetzung der Eingabemethode zu empfangen. Dieser Handler wird aufgerufen, wenn sich der Zustand der Eingabemethode ändert.

Beachten Sie, dass bei der Erstellung von benutzerdefinierten Textbearbeitungs-Widgets das Attribut Qt::WA_InputMethodEnabled window explizit gesetzt werden muss (mit der Funktion setAttribute()), um Eingabemethoden-Ereignisse zu empfangen.

Die Standardimplementierung ruft event->ignore() auf, wodurch das Input Method-Ereignis zurückgewiesen wird. Weitere Einzelheiten finden Sie in der Dokumentation QInputMethodEvent.

Siehe auch event() und QInputMethodEvent.

[virtual] QVariant QWidget::inputMethodQuery(Qt::InputMethodQuery query) const

Diese Methode ist nur für Eingabe-Widgets relevant. Sie wird von der Eingabemethode verwendet, um eine Reihe von Eigenschaften des Widgets abzufragen, damit komplexe Eingabemethoden wie die Unterstützung von umgebendem Text und Rückumwandlungen unterstützt werden können.

query gibt an, welche Eigenschaft abgefragt wird.

Siehe auch inputMethodEvent(), QInputMethodEvent, QInputMethodQueryEvent, und inputMethodHints.

void QWidget::insertAction(QAction *before, QAction *action)

Fügt die Aktion action in die Liste der Aktionen dieses Widgets ein, vor der Aktion before. Es fügt die Aktion an, wenn before nullptr ist oder before keine gültige Aktion für dieses Widget ist.

Ein QWidget sollte nur eine von jeder Aktion haben.

Siehe auch removeAction(), addAction(), QMenu, contextMenuPolicy, und actions().

void QWidget::insertActions(QAction *before, const QList<QAction *> &actions)

Fügt die Aktion actions in die Liste der Aktionen dieses Widgets ein, vor der Aktion before. Es fügt die Aktion an, wenn before nullptr ist oder before keine gültige Aktion für dieses Widget ist.

Ein QWidget kann höchstens eine von jeder Aktion haben.

Siehe auch removeAction(), QMenu, insertAction(), und contextMenuPolicy.

bool QWidget::isAncestorOf(const QWidget *child) const

Gibt true zurück, wenn dieses Widget ein Elternteil (oder Großelternteil und so weiter auf jeder Ebene) des angegebenen child ist und beide Widgets sich im selben Fenster befinden; andernfalls wird false zurückgegeben.

bool QWidget::isEnabledTo(const QWidget *ancestor) const

Gibt true zurück, wenn dieses Widget aktiviert werden würde, wenn ancestor aktiviert ist; andernfalls wird false zurückgegeben.

Dies ist der Fall, wenn weder das Widget selbst noch alle übergeordneten Elemente bis auf ancestor explizit deaktiviert worden sind.

isEnabledTo(0) gibt false zurück, wenn dieses Widget oder einer seiner Vorfahren explizit deaktiviert wurde.

Das Wort Vorgänger bedeutet hier ein übergeordnetes Widget innerhalb desselben Fensters.

Daher bleibt isEnabledTo(0) bei dem Fenster dieses Widgets stehen, im Gegensatz zu isEnabled(), das auch übergeordnete Fenster in Betracht zieht.

Siehe auch setEnabled() und enabled.

bool QWidget::isHidden() const

Gibt true zurück, wenn das Widget versteckt ist, andernfalls false.

Ein verstecktes Widget wird nur sichtbar, wenn show() aufgerufen wird. Es wird nicht automatisch angezeigt, wenn das übergeordnete Widget angezeigt wird.

Um die Sichtbarkeit zu prüfen, verwenden Sie stattdessen !isVisible() (beachten Sie das Ausrufezeichen).

isHidden() impliziert !isVisible(), aber ein Widget kann gleichzeitig nicht sichtbar und nicht versteckt sein. Dies ist der Fall für Widgets, die Kinder von Widgets sind, die nicht sichtbar sind.

Widgets sind versteckt, wenn:

  • sie als unabhängige Fenster erstellt wurden,
  • sie als Kinder von sichtbaren Widgets erstellt wurden,
  • hide() oder setVisible(false) aufgerufen wurde.

bool QWidget::isVisibleTo(const QWidget *ancestor) const

Gibt true zurück, wenn dieses Widget sichtbar werden würde, wenn ancestor eingeblendet wird; andernfalls wird false zurückgegeben.

Der wahre Fall tritt ein, wenn weder das Widget selbst noch ein übergeordnetes Fenster bis auf ancestor explizit verborgen wurde.

Diese Funktion gibt immer noch true zurück, wenn das Widget von anderen Fenstern auf dem Bildschirm verdeckt wird, aber physisch sichtbar sein könnte, wenn es oder diese bewegt werden.

isVisibleTo(0) ist identisch mit isVisible().

Siehe auch show(), hide(), und isVisible().

bool QWidget::isWindow() const

Gibt true zurück, wenn das Widget ein unabhängiges Fenster ist, andernfalls wird false zurückgegeben.

Ein Fenster ist ein Widget, das visuell nicht das Kind eines anderen Widgets ist und das normalerweise einen Rahmen und ein window title hat.

Ein Fenster kann ein parent widget haben. Es wird dann mit seinem Elternteil gruppiert und gelöscht, wenn das Elternteil gelöscht wird, minimiert, wenn das Elternteil minimiert wird usw. Wenn es vom Fenstermanager unterstützt wird, hat es auch einen gemeinsamen Taskleisteneintrag mit seinem Elternteil.

QDialog und QMainWindow Widgets sind standardmäßig Fenster, auch wenn ein übergeordnetes Widget im Konstruktor angegeben ist. Dieses Verhalten wird durch das Qt::Window Flag festgelegt.

Siehe auch window(), isModal(), und parentWidget().

[virtual protected] void QWidget::keyPressEvent(QKeyEvent *event)

Dieser Event-Handler für das Ereignis event kann in einer Unterklasse neu implementiert werden, um Tastendruck-Ereignisse für das Widget zu empfangen.

Ein Widget muss setFocusPolicy() aufrufen, um den Fokus anfangs zu akzeptieren und den Fokus zu haben, um ein Tastendruckereignis zu empfangen.

Wenn Sie diesen Handler neu implementieren, ist es sehr wichtig, dass Sie die Implementierung der Basisklasse aufrufen, wenn Sie nicht auf die Taste reagieren.

Die Standardimplementierung schließt Popup-Widgets, wenn der Benutzer die Tastenfolge für QKeySequence::Cancel drückt (normalerweise die Escape-Taste). Andernfalls wird das Ereignis ignoriert, so dass die übergeordnete Klasse des Widgets es interpretieren kann.

Beachten Sie, dass QKeyEvent mit isAccepted() == true beginnt, so dass Sie nicht QKeyEvent::accept() aufrufen müssen - rufen Sie einfach nicht die Implementierung der Basisklasse auf, wenn Sie auf die Taste reagieren.

Siehe auch keyReleaseEvent(), setFocusPolicy(), focusInEvent(), focusOutEvent(), event(), und QKeyEvent.

[virtual protected] void QWidget::keyReleaseEvent(QKeyEvent *event)

Dieser Ereignishandler für das Ereignis event kann in einer Unterklasse neu implementiert werden, um Tastenfreigabeereignisse für das Widget zu empfangen.

Ein Widget muss zunächst accept focus und have focus aufrufen, um ein Tastenfreigabeereignis zu empfangen.

Wenn Sie diesen Handler neu implementieren, ist es sehr wichtig, dass Sie die Implementierung der Basisklasse aufrufen, wenn Sie nicht auf die Taste reagieren.

Die Standardimplementierung ignoriert das Ereignis, so dass die übergeordnete Klasse des Widgets es interpretieren kann.

Beachten Sie, dass QKeyEvent mit isAccepted() == true beginnt, so dass Sie nicht QKeyEvent::accept() aufrufen müssen - rufen Sie einfach nicht die Implementierung der Basisklasse auf, wenn Sie auf die Taste reagieren.

Siehe auch keyPressEvent(), QEvent::ignore(), setFocusPolicy(), focusInEvent(), focusOutEvent(), event(), und QKeyEvent.

[static] QWidget *QWidget::keyboardGrabber()

Gibt das Widget zurück, das gerade die Tastatureingabe abgreift.

Wenn kein Widget in dieser Anwendung gerade die Tastatur abgreift, wird nullptr zurückgegeben.

Siehe auch grabMouse() und mouseGrabber().

QLayout *QWidget::layout() const

Gibt den Layout-Manager zurück, der auf diesem Widget installiert ist, oder nullptr, wenn kein Layout-Manager installiert ist.

Der Layout-Manager legt die Geometrie der Kinder des Widgets fest, die dem Layout hinzugefügt wurden.

Siehe auch setLayout(), sizePolicy(), und Layout-Verwaltung.

[virtual protected] void QWidget::leaveEvent(QEvent *event)

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Widget Leave-Ereignisse zu empfangen, die im Parameter event übergeben werden.

Ein Verlassen-Ereignis wird an das Widget gesendet, wenn der Mauszeiger das Widget verlässt.

Siehe auch enterEvent(), mouseMoveEvent(), und event().

[slot] void QWidget::lower()

Senkt das Widget an das Ende des Stapels des übergeordneten Widgets.

Nach diesem Aufruf befindet sich das Widget visuell hinter allen überlappenden Geschwisterwidgets (und wird daher von diesen verdeckt).

Siehe auch raise() und stackUnder().

[since 6.0] QPointF QWidget::mapFrom(const QWidget *parent, const QPointF &pos) const

Übersetzt die Widget-Koordinate pos aus dem Koordinatensystem von parent in das Koordinatensystem dieses Widgets. Das parent darf nicht nullptr sein und muss ein Elternteil des aufrufenden Widgets sein.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch mapTo(), mapFromParent(), mapFromGlobal(), und underMouse().

QPoint QWidget::mapFrom(const QWidget *parent, const QPoint &pos) const

Dies ist eine überladene Funktion.

[since 6.0] QPointF QWidget::mapFromGlobal(const QPointF &pos) const

Übersetzt die globalen Bildschirmkoordinaten pos in Widget-Koordinaten.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch mapToGlobal(), mapFrom(), und mapFromParent().

QPoint QWidget::mapFromGlobal(const QPoint &pos) const

Dies ist eine überladene Funktion.

[since 6.0] QPointF QWidget::mapFromParent(const QPointF &pos) const

Übersetzt die Koordinaten des übergeordneten Widgets pos in Widget-Koordinaten.

Dasselbe wie mapFromGlobal(), wenn das Widget kein Elternteil hat.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch mapToParent(), mapFrom(), mapFromGlobal(), und underMouse().

QPoint QWidget::mapFromParent(const QPoint &pos) const

Dies ist eine überladene Funktion.

[since 6.0] QPointF QWidget::mapTo(const QWidget *parent, const QPointF &pos) const

Übersetzt die Widget-Koordinate pos in das Koordinatensystem von parent. parent darf nicht nullptr sein und muss ein Elternteil des aufrufenden Widgets sein.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch mapFrom(), mapToParent(), mapToGlobal(), und underMouse().

QPoint QWidget::mapTo(const QWidget *parent, const QPoint &pos) const

Dies ist eine überladene Funktion.

[since 6.0] QPointF QWidget::mapToGlobal(const QPointF &pos) const

Übersetzt die Koordinaten des Widgets pos in globale Bildschirmkoordinaten. Zum Beispiel würde mapToGlobal(QPointF(0,0)) die globalen Koordinaten des oberen linken Pixels des Widgets liefern.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch mapFromGlobal(), mapTo(), und mapToParent().

QPoint QWidget::mapToGlobal(const QPoint &pos) const

Dies ist eine überladene Funktion.

[since 6.0] QPointF QWidget::mapToParent(const QPointF &pos) const

Übersetzt die Widget-Koordinate pos in eine Koordinate im übergeordneten Widget.

Dasselbe wie mapToGlobal(), wenn das Widget kein Elternteil hat.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch mapFromParent(), mapTo(), mapToGlobal(), und underMouse().

QPoint QWidget::mapToParent(const QPoint &pos) const

Dies ist eine überladene Funktion.

QRegion QWidget::mask() const

Gibt die Maske zurück, die derzeit für ein Widget gesetzt ist. Wenn keine Maske gesetzt ist, ist der Rückgabewert ein leerer Bereich.

Siehe auch setMask(), clearMask(), und QRegion::isEmpty().

[override virtual protected] int QWidget::metric(QPaintDevice::PaintDeviceMetric m) const

Reimplements: QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const.

Interne Implementierung der virtuellen Funktion QPaintDevice::metric().

m ist die zu ermittelnde Metrik.

[virtual protected] void QWidget::mouseDoubleClickEvent(QMouseEvent *event)

Dieser Event-Handler für das Ereignis event kann in einer Unterklasse neu implementiert werden, um Maus-Doppelklick-Ereignisse für das Widget zu empfangen.

Die Standardimplementierung ruft mousePressEvent() auf.

Hinweis: Das Widget empfängt neben dem Doppelklick-Ereignis auch die Ereignisse Maus drücken und Maus loslassen. Und wenn ein anderes Widget, das dieses Widget überlappt, als Reaktion auf Druck- oder Loslass-Ereignisse verschwindet, dann empfängt dieses Widget nur das Doppelklick-Ereignis. Es ist Aufgabe des Entwicklers, dafür zu sorgen, dass die Anwendung diese Ereignisse richtig interpretiert.

Siehe auch mousePressEvent(), mouseReleaseEvent(), mouseMoveEvent(), event(), und QMouseEvent.

[static] QWidget *QWidget::mouseGrabber()

Gibt das Widget zurück, das gerade die Mauseingabe ergreift.

Wenn kein Widget in dieser Anwendung gerade die Maus greift, wird nullptr zurückgegeben.

Siehe auch grabMouse() und keyboardGrabber().

[virtual protected] void QWidget::mouseMoveEvent(QMouseEvent *event)

Dieser Eventhandler für das Ereignis event kann in einer Unterklasse neu implementiert werden, um Mausbewegungsereignisse für das Widget zu empfangen.

Wenn die Mausverfolgung ausgeschaltet ist, treten Mausbewegungsereignisse nur auf, wenn eine Maustaste gedrückt wird, während die Maus bewegt wird. Wenn die Mausverfolgung eingeschaltet ist, treten Mausbewegungsereignisse auch dann auf, wenn keine Maustaste gedrückt wird.

QMouseEvent::pos() meldet die Position des Mauszeigers, relativ zu diesem Widget. Bei Drücken- und Loslassen-Ereignissen ist die Position in der Regel dieselbe wie beim letzten Mausbewegungsereignis, sie kann aber auch anders sein, wenn die Hand des Benutzers zittert. Dies ist eine Eigenschaft des zugrunde liegenden Fenstersystems, nicht von Qt.

Wenn Sie einen Tooltip sofort anzeigen wollen, während sich die Maus bewegt (z.B. um die Mauskoordinaten mit QMouseEvent::pos() zu ermitteln und sie als Tooltip anzuzeigen), müssen Sie zunächst die Mausverfolgung wie oben beschrieben aktivieren. Um sicherzustellen, dass der Tooltip sofort aktualisiert wird, müssen Sie dann QToolTip::showText() statt setToolTip() in Ihrer Implementierung von mouseMoveEvent() aufrufen.

Siehe auch setMouseTracking(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), event(), QMouseEvent, und Scribble Example.

[virtual protected] void QWidget::mousePressEvent(QMouseEvent *event)

Dieser Event-Handler für das Ereignis event kann in einer Unterklasse neu implementiert werden, um Mausdruckereignisse für das Widget zu empfangen.

Wenn Sie neue Widgets im mousePressEvent() erstellen, kann es sein, dass mouseReleaseEvent() nicht dort landet, wo Sie es erwarten, abhängig vom zugrundeliegenden Fenstersystem (oder X11-Fenstermanager), der Position der Widgets und vielleicht mehr.

Die Standardimplementierung implementiert das Schließen von Popup-Widgets, wenn Sie außerhalb des Fensters klicken. Für andere Widget-Typen tut sie nichts.

Siehe auch mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent, und Scribble Example.

[virtual protected] void QWidget::mouseReleaseEvent(QMouseEvent *event)

Dieser Ereignisbehandler für das Ereignis event kann in einer Unterklasse neu implementiert werden, um Mausfreigabeereignisse für das Widget zu empfangen.

Siehe auch mousePressEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent, und Scribble Example.

void QWidget::move(int x, int y)

Dies ist eine überladene Funktion.

Sie entspricht der Funktion move(QPoint(x, y)).

Hinweis: Setter-Funktion für die Eigenschaft pos.

[virtual protected] void QWidget::moveEvent(QMoveEvent *event)

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Ereignisse zum Verschieben von Widgets zu empfangen, die im Parameter event übergeben werden. Wenn das Widget dieses Ereignis empfängt, befindet es sich bereits an der neuen Position.

Die alte Position ist über QMoveEvent::oldPos() zugänglich.

Siehe auch resizeEvent(), event(), move(), und QMoveEvent.

[virtual protected] bool QWidget::nativeEvent(const QByteArray &eventType, void *message, qintptr *result)

Dieser spezielle Event-Handler kann in einer Unterklasse neu implementiert werden, um native Plattformereignisse zu empfangen, die durch eventType identifiziert und im Parameter message übergeben werden.

Wenn Sie in Ihrer Neuimplementierung dieser Funktion die Behandlung des Ereignisses durch Qt beenden möchten, geben Sie true zurück und setzen Sie result. Der Parameter result hat nur unter Windows eine Bedeutung. Wenn Sie false zurückgeben, wird dieses native Ereignis an Qt zurückgegeben, das das Ereignis in ein Qt-Ereignis übersetzt und es an das Widget sendet.

Hinweis: Ereignisse werden nur an diesen Ereignishandler geliefert, wenn das Widget ein natives Fensterhandle hat.

Hinweis: Diese Funktion überlagert die Ereignisfilterfunktionen x11Event(), winEvent() und macEvent() von Qt 4.

PlattformEreignistyp BezeichnerNachrichtentypErgebnis Typ
Windows"windows_generic_MSG"MSG *LRESULT
macOS"NSEvent"NSEvent *
XCB"xcb_generic_event_t"xcb_generic_event_t *

Siehe auch QAbstractNativeEventFilter.

QWidget *QWidget::nativeParentWidget() const

Gibt das ursprüngliche Elternteil für dieses Widget zurück, d. h. das nächste Vorgänger-Widget, das einen Systembezeichner hat, oder nullptr, wenn es kein eigenes Elternteil hat.

Siehe auch effectiveWinId().

QWidget *QWidget::nextInFocusChain() const

Gibt das nächste Widget in der Fokuskette dieses Widgets zurück.

Siehe auch previousInFocusChain().

void QWidget::overrideWindowFlags(Qt::WindowFlags flags)

Setzt die Fenster-Flags für das Widget auf flags, ohne das Fenstersystem zu informieren.

Warnung: Rufen Sie diese Funktion nicht auf, wenn Sie nicht wirklich wissen, was Sie tun.

Siehe auch setWindowFlags().

[override virtual] QPaintEngine *QWidget::paintEngine() const

Reimplements: QPaintDevice::paintEngine() const.

Liefert die Paint-Engine des Widgets.

Beachten Sie, dass diese Funktion nicht explizit vom Benutzer aufgerufen werden sollte, da sie nur für Reimplementierungszwecke gedacht ist. Die Funktion wird von Qt intern aufgerufen, und die Standardimplementierung gibt möglicherweise nicht immer einen gültigen Zeiger zurück.

[virtual protected] void QWidget::paintEvent(QPaintEvent *event)

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Paint-Ereignisse zu empfangen, die in event übergeben werden.

Ein Malereignis ist eine Aufforderung, ein Widget ganz oder teilweise neu zu malen. Dies kann aus einem der folgenden Gründe geschehen:

  • repaint() oder update() wurde aufgerufen,
  • das Widget war verdeckt und wurde nun wieder aufgedeckt, oder
  • viele andere Gründe.

Viele Widgets können einfach ihre gesamte Oberfläche neu malen, wenn sie dazu aufgefordert werden, aber einige langsame Widgets müssen optimiert werden, indem sie nur den angeforderten Bereich malen: QPaintEvent::region(). Diese Geschwindigkeitsoptimierung ändert das Ergebnis nicht, da das Malen während der Ereignisverarbeitung auf diesen Bereich beschränkt wird. QListView und QTableView tun dies zum Beispiel.

Qt versucht auch, das Malen zu beschleunigen, indem es mehrere Malereignisse zu einem einzigen zusammenfasst. Wenn update() mehrmals aufgerufen wird oder das Fenstersystem mehrere Malereignisse sendet, fasst Qt diese Ereignisse zu einem Ereignis mit einem größeren Bereich zusammen (siehe QRegion::united()). Die Funktion repaint() erlaubt diese Optimierung nicht, daher empfehlen wir, wann immer möglich update() zu verwenden.

Wenn das Malereignis eintritt, wurde der Aktualisierungsbereich normalerweise gelöscht, so dass Sie auf den Hintergrund des Widgets malen.

Der Hintergrund kann mit setBackgroundRole() und setPalette() eingestellt werden.

Seit Qt 4.0 puffert QWidget die Malvorgänge automatisch doppelt, so dass es nicht notwendig ist, in paintEvent() Code für die doppelte Pufferung zu schreiben, um Flackern zu vermeiden.

Hinweis: Im Allgemeinen sollten Sie es unterlassen, update() oder repaint() innerhalb eines paintEvent() aufzurufen. Zum Beispiel führt der Aufruf von update() oder repaint() für Kinder innerhalb eines paintEvent() zu undefiniertem Verhalten; das Kind kann ein paint-Ereignis erhalten oder nicht.

Warnung: Wenn Sie eine benutzerdefinierte Paint-Engine ohne Qt's Backingstore verwenden, muss Qt::WA_PaintOnScreen gesetzt sein. Andernfalls wird QWidget::paintEngine() nie aufgerufen; stattdessen wird der Backingstore verwendet.

Siehe auch event(), repaint(), update(), QPainter, QPixmap, QPaintEvent, und Analog Clock.

QWidget *QWidget::parentWidget() const

Gibt das übergeordnete Widget dieses Widgets zurück, oder nullptr, wenn es kein übergeordnetes Widget hat.

QWidget *QWidget::previousInFocusChain() const

Die Funktion previousInFocusChain gibt das vorherige Widget in der Fokuskette dieses Widgets zurück.

Siehe auch nextInFocusChain().

[slot] void QWidget::raise()

Erhöht dieses Widget an die Spitze des Stapels des übergeordneten Widgets.

Nach diesem Aufruf befindet sich das Widget visuell vor allen überlappenden Geschwister-Widgets.

Hinweis: Wenn Sie activateWindow() verwenden, können Sie diese Funktion aufrufen, um sicherzustellen, dass das Fenster ganz oben gestapelt wird.

Siehe auch lower() und stackUnder().

void QWidget::releaseKeyboard()

Hebt den Tastaturgriff auf.

Siehe auch grabKeyboard(), grabMouse(), und releaseMouse().

void QWidget::releaseMouse()

Hebt den Mausgriff auf.

Siehe auch grabMouse(), grabKeyboard(), und releaseKeyboard().

void QWidget::releaseShortcut(int id)

Entfernt die Tastenkombination mit der angegebenen id aus dem Qt-Verknüpfungssystem. Das Widget empfängt keine QEvent::Shortcut Ereignisse mehr für die Tastenfolge des Shortcuts (es sei denn, es hat andere Shortcuts mit der gleichen Tastenfolge).

Warnung: Normalerweise sollten Sie diese Funktion nicht verwenden müssen, da das Qt-Verknüpfungssystem die Verknüpfungen automatisch entfernt, wenn das übergeordnete Widget zerstört wird. Es ist am besten, QAction oder QShortcut zu verwenden, um Shortcuts zu handhaben, da diese einfacher zu benutzen sind als diese Low-Level-Funktion. Beachten Sie auch, dass dies eine teure Operation ist.

Siehe auch grabShortcut() und setShortcutEnabled().

void QWidget::removeAction(QAction *action)

Entfernt die Aktion action aus der Liste der Aktionen in diesem Widget.

Siehe auch insertAction(), actions(), und insertAction().

void QWidget::render(QPaintDevice *target, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))

Rendert die sourceRegion dieses Widgets in die target unter Verwendung von renderFlags, um zu bestimmen, wie gerendert werden soll. Das Rendern beginnt bei targetOffset in der target. Zum Beispiel:

QPixmap pixmap(widget->size());
widget->render(&pixmap);

Wenn sourceRegion eine Null-Region ist, verwendet diese Funktion QWidget::rect() als Region, d. h. das gesamte Widget.

Stellen Sie sicher, dass Sie QPainter::end() für den aktiven Painter des target Geräts (falls vorhanden) vor dem Rendern aufrufen. Ein Beispiel:

QPainter painter(this);
...
painter.end();
myWidget->render(this);

Hinweis: Um den Inhalt eines QOpenGLWidget zu erhalten, verwenden Sie stattdessen QOpenGLWidget::grabFramebuffer().

void QWidget::render(QPainter *painter, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))

Dies ist eine überladene Funktion.

Rendert das Widget in das painter's QPainter::device().

Die auf painter angewendeten Transformationen und Einstellungen werden beim Rendern verwendet.

Hinweis: Die painter muss aktiv sein. Unter macOS wird das Widget in eine QPixmap gerendert und dann von der painter gezeichnet.

Siehe auch QPainter::device().

[slot] void QWidget::repaint()

Zeichnet das Widget direkt neu, indem es paintEvent() sofort aufruft, es sei denn, Aktualisierungen sind deaktiviert oder das Widget ist ausgeblendet.

Wir empfehlen, repaint() nur dann zu verwenden, wenn Sie eine sofortige Neuzeichnung benötigen, zum Beispiel während einer Animation. In den meisten Fällen ist update() besser, da es Qt erlaubt, die Geschwindigkeit zu optimieren und das Flimmern zu minimieren.

Warnung: Wenn Sie repaint() in einer Funktion aufrufen, die wiederum von paintEvent() aufgerufen werden kann, kann es zu einer unendlichen Rekursion kommen. Die Funktion update() verursacht keine Rekursion.

Siehe auch update(), paintEvent(), und setUpdatesEnabled().

void QWidget::repaint(const QRect &rect)

Dies ist eine überladene Funktion.

In dieser Version wird ein Rechteck rect innerhalb des Widgets neu gezeichnet.

void QWidget::repaint(const QRegion &rgn)

Dies ist eine überladene Funktion.

In dieser Version wird ein Bereich rgn innerhalb des Widgets neu gezeichnet.

void QWidget::repaint(int x, int y, int w, int h)

Dies ist eine überladene Funktion.

Diese Version malt ein Rechteck (x, y, w, h) innerhalb des Widgets neu.

Wenn w negativ ist, wird es durch width() - x ersetzt, und wenn h negativ ist, wird es durch die Breite height() - y ersetzt.

void QWidget::resize(int w, int h)

Dies ist eine überladene Funktion.

Sie entspricht der Funktion resize(QSize(w, h)).

Hinweis: Setter-Funktion für die Eigenschaft size.

[virtual protected] void QWidget::resizeEvent(QResizeEvent *event)

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Widget-Größenänderungsereignisse zu empfangen, die im Parameter event übergeben werden. Wenn resizeEvent() aufgerufen wird, hat das Widget bereits seine neue Geometrie. Die alte Größe ist über QResizeEvent::oldSize() zugänglich.

Das Widget wird gelöscht und erhält unmittelbar nach der Verarbeitung des Größenänderungsereignisses ein Malereignis. Innerhalb dieses Handlers muss (oder sollte) nicht gezeichnet werden.

Siehe auch moveEvent(), event(), resize(), QResizeEvent, paintEvent(), und Scribble Example.

bool QWidget::restoreGeometry(const QByteArray &geometry)

Stellt die Geometrie und den Zustand der Widgets der obersten Ebene wieder her, die im Byte-Array geometry gespeichert sind. Gibt bei Erfolg true zurück, andernfalls false.

Wenn die wiederhergestellte Geometrie außerhalb des Bildschirms liegt, wird sie so geändert, dass sie innerhalb der verfügbaren Bildschirmgeometrie liegt.

Um eine mit QSettings gespeicherte Geometrie wiederherzustellen, können Sie Code wie den folgenden verwenden:

QSettings settings("MyCompany", "MyApp");
myWidget->restoreGeometry(settings.value("myWidget/geometry").toByteArray());

Einen Überblick über die Geometrieprobleme bei Fenstern finden Sie in der Dokumentation Fenstergeometrie.

Verwenden Sie QMainWindow::restoreState(), um die Geometrie und den Zustand von Symbolleisten und Docking-Widgets wiederherzustellen.

Siehe auch saveGeometry(), QSettings, QMainWindow::saveState(), und QMainWindow::restoreState().

QByteArray QWidget::saveGeometry() const

Speichert die aktuelle Geometrie und den Status für Widgets der obersten Ebene.

Um die Geometrie zu speichern, wenn das Fenster geschlossen wird, können Sie ein Schließereignis wie dieses implementieren:

void MyWidget::closeEvent(QCloseEvent *event)
{
    QSettings settings("MyCompany", "MyApp");
    settings.setValue("geometry", saveGeometry());
    QWidget::closeEvent(event);
}

Einen Überblick über Geometrieprobleme bei Fenstern finden Sie in der Dokumentation Fenstergeometrie.

Verwenden Sie QMainWindow::saveState(), um die Geometrie und den Zustand von Symbolleisten und Docking-Widgets zu speichern.

Siehe auch restoreGeometry(), QMainWindow::saveState(), und QMainWindow::restoreState().

QScreen *QWidget::screen() const

Gibt den Bildschirm zurück, auf dem sich das Widget befindet.

Siehe auch setScreen() und windowHandle().

void QWidget::scroll(int dx, int dy)

Scrollt das Widget einschließlich seiner Kinder dx Pixel nach rechts und dy nach unten. Sowohl dx als auch dy können negativ sein.

Nach dem Scrollen erhalten die Widgets Paint-Events für die Bereiche, die neu gezeichnet werden müssen. Bei Widgets, von denen Qt weiß, dass sie undurchsichtig sind, sind dies nur die neu freigelegten Teile. Wenn zum Beispiel ein opakes Widget 8 Pixel nach links gescrollt wird, muss nur ein 8 Pixel breiter Streifen am rechten Rand aktualisiert werden.

Da Widgets standardmäßig den Inhalt ihrer Eltern weitergeben, müssen Sie die Eigenschaft autoFillBackground setzen oder setAttribute() verwenden, um das Attribut Qt::WA_OpaquePaintEvent zu setzen, um ein Widget undurchsichtig zu machen.

Bei Widgets, die die Weitergabe von Inhalten verwenden, führt ein Bildlauf zu einer Aktualisierung des gesamten Bildlaufbereichs.

Siehe auch Transparency and Double Buffering.

void QWidget::scroll(int dx, int dy, const QRect &r)

Dies ist eine überladene Funktion.

Diese Version scrollt nur r und verschiebt nicht die Kinder des Widgets.

Wenn r leer oder ungültig ist, ist das Ergebnis undefiniert.

Siehe auch QScrollArea.

void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true)

Setzt das Attribut attribute für dieses Widget, wenn on wahr ist; andernfalls wird das Attribut gelöscht.

Siehe auch testAttribute().

void QWidget::setBackgroundRole(QPalette::ColorRole role)

Setzt die Hintergrundrolle des Widgets auf role.

Die Hintergrundrolle definiert den Pinsel aus dem palette des Widgets, der zum Rendern des Hintergrunds verwendet wird.

Wenn role gleich QPalette::NoRole ist, dann erbt das Widget die Hintergrundrolle seines Elternteils.

Beachten Sie, dass es den Stilen freisteht, eine beliebige Farbe aus der Palette zu wählen. Sie können die Palette ändern oder eine Stilvorlage festlegen, wenn Sie mit setBackgroundRole() nicht das gewünschte Ergebnis erzielen.

Siehe auch backgroundRole() und foregroundRole().

void QWidget::setBaseSize(int basew, int baseh)

Dies ist eine überladene Funktion.

Sie entspricht setBaseSize(QSize(basew, baseh)). Setzt die Basisgröße des Widgets auf Breite basew und Höhe baseh.

Hinweis: Setter-Funktion für die Eigenschaft baseSize.

void QWidget::setContentsMargins(int left, int top, int right, int bottom)

Legt die Ränder um den Inhalt des Widgets so fest, dass sie die Größen left, top, right, und bottom haben. Die Ränder werden vom Layoutsystem verwendet und können von Unterklassen verwendet werden, um den Bereich festzulegen, in dem gezeichnet werden soll (z. B. ohne den Rahmen).

Das Ändern der Ränder löst eine resizeEvent() aus.

Siehe auch contentsRect() und contentsMargins().

void QWidget::setContentsMargins(const QMargins &margins)

Dies ist eine überladene Funktion.

Die Funktion setContentsMargins legt die Ränder um den Inhalt des Widgets fest.

Setzt die Ränder um den Inhalt des Widgets so, dass sie die von margins festgelegten Größen haben. Die Ränder werden vom Layoutsystem verwendet und können von Unterklassen verwendet werden, um den Bereich festzulegen, in dem gezeichnet werden soll (z. B. ohne den Rahmen).

Das Ändern der Ränder löst eine resizeEvent() aus.

Siehe auch contentsRect() und contentsMargins().

[slot] void QWidget::setDisabled(bool disable)

Deaktiviert Widget-Eingabeereignisse, wenn disable wahr ist; andernfalls werden Eingabeereignisse aktiviert.

Siehe die Dokumentation enabled für weitere Informationen.

Siehe auch isEnabledTo(), QKeyEvent, QMouseEvent, und changeEvent().

void QWidget::setEditFocus(bool enable)

Wenn enable wahr ist, hat dieses Widget den Bearbeitungsfokus. In diesem Fall werden Qt::Key_Up und Qt::Key_Down normal an das Widget übergeben; andernfalls werden Qt::Key_Up und Qt::Key_Down verwendet, um den Fokus zu ändern.

Dieses Feature ist nur in Qt for Embedded Linux verfügbar.

Siehe auch hasEditFocus() und QApplication::navigationMode().

void QWidget::setFixedHeight(int h)

Setzt sowohl die minimale als auch die maximale Höhe des Widgets auf h, ohne die Breiten zu ändern. Wird der Einfachheit halber bereitgestellt.

Siehe auch sizeHint(), minimumSize(), maximumSize(), und setFixedSize().

void QWidget::setFixedSize(const QSize &s)

Setzt sowohl die minimale als auch die maximale Größe des Widgets auf s und verhindert damit, dass es jemals wächst oder schrumpft.

Dadurch werden die standardmäßigen Größenbeschränkungen, die durch QLayout festgelegt wurden, außer Kraft gesetzt.

Um die Beschränkungen aufzuheben, setzen Sie die Größe auf QWIDGETSIZE_MAX.

Wenn Sie möchten, dass das Widget eine feste Größe hat, die auf seinem Inhalt basiert, können Sie alternativ QLayout::setSizeConstraint(QLayout::SetFixedSize) aufrufen;

Siehe auch maximumSize und minimumSize.

void QWidget::setFixedSize(int w, int h)

Dies ist eine überladene Funktion.

Setzt die Breite des Widgets auf w und die Höhe auf h.

void QWidget::setFixedWidth(int w)

Setzt sowohl die minimale als auch die maximale Breite des Widgets auf w, ohne die Höhen zu ändern. Wird der Einfachheit halber bereitgestellt.

Siehe auch sizeHint(), minimumSize(), maximumSize(), und setFixedSize().

void QWidget::setFocus(Qt::FocusReason reason)

Gibt diesem Widget (oder seinem Fokus-Proxy) den Tastatureingabe-Fokus, wenn dieses Widget oder eines seiner Elternteile das active window ist. Das Argument reason wird an jedes Fokus-Ereignis übergeben, das von dieser Funktion gesendet wird; es wird verwendet, um eine Erklärung dafür zu geben, warum das Widget den Fokus erhalten hat. Wenn das Fenster nicht aktiv ist, erhält das Widget den Fokus, wenn das Fenster aktiv wird.

Zunächst wird ein Fokus-zu-ändern-Ereignis an das Fokus-Widget (falls vorhanden) gesendet, um ihm mitzuteilen, dass es den Fokus verlieren wird. Dann wird der Fokus gewechselt, ein focus out-Ereignis wird an das vorherige Fokuselement gesendet und ein focus in-Ereignis wird an das neue Element gesendet, um ihm mitzuteilen, dass es gerade den Fokus erhalten hat. (Es passiert nichts, wenn die Widgets mit und ohne Fokus identisch sind).

Hinweis: Auf eingebetteten Plattformen wird setFocus() nicht dazu führen, dass ein Eingabefeld durch die Eingabemethode geöffnet wird. Wenn Sie dies wünschen, müssen Sie selbst ein QEvent::RequestSoftwareInputPanel Ereignis an das Widget senden.

setFocus() gibt einem Widget den Fokus, unabhängig von seiner Fokus-Policy, aber löscht keinen Tastaturgrab (siehe grabKeyboard()).

Seien Sie sich bewusst, dass das Widget, wenn es versteckt ist, den Fokus nicht akzeptiert, bis es eingeblendet wird.

Warnung: Wenn Sie setFocus() in einer Funktion aufrufen, die ihrerseits von focusOutEvent() oder focusInEvent() aufgerufen werden kann, kann es zu einer unendlichen Rekursion kommen.

Siehe auch hasFocus(), clearFocus(), focusInEvent(), focusOutEvent(), setFocusPolicy(), focusWidget(), QApplication::focusWidget(), grabKeyboard(), grabMouse(), Tastaturfokus in Widgets, und QEvent::RequestSoftwareInputPanel.

[slot] void QWidget::setFocus()

Dies ist eine überladene Funktion.

Gibt den Tastatureingabefokus an dieses Widget (oder seinen Fokus-Proxy), wenn dieses Widget oder eines seiner Elternteile das active window ist.

void QWidget::setFocusProxy(QWidget *w)

Setzt den Fokus-Proxy des Widgets auf das Widget w. Wenn w nullptr ist, setzt die Funktion dieses Widget so zurück, dass es keinen Fokus-Proxy hat.

Einige Widgets können "den Fokus haben", aber ein untergeordnetes Widget, wie z.B. QLineEdit, erstellen, um den Fokus zu verwalten. In diesem Fall kann das Widget die Zeilenbearbeitung als seinen Fokus-Proxy festlegen.

setFocusProxy() legt das Widget fest, das tatsächlich den Fokus erhält, wenn "dieses Widget" ihn erhält. Wenn es einen Fokus-Proxy gibt, arbeiten setFocus() und hasFocus() mit dem Fokus-Proxy. Wenn "dieses Widget" das Fokus-Widget ist, dann verschiebt setFocusProxy() den Fokus auf den neuen Fokus-Proxy.

Siehe auch focusProxy().

void QWidget::setForegroundRole(QPalette::ColorRole role)

Setzt die Vordergrundrolle des Widgets auf role.

Die Vordergrundrolle definiert die Farbe aus der palette des Widgets, die zum Zeichnen des Vordergrunds verwendet wird.

Wenn role QPalette::NoRole ist, verwendet das Widget eine Vordergrundrolle, die mit der Hintergrundrolle kontrastiert.

Beachten Sie, dass es den Stilen freisteht, eine beliebige Farbe aus der Palette zu wählen. Sie können die Palette ändern oder eine Stilvorlage festlegen, wenn Sie mit setForegroundRole() nicht das gewünschte Ergebnis erzielen.

Siehe auch foregroundRole() und backgroundRole().

void QWidget::setGeometry(int x, int y, int w, int h)

Dies ist eine überladene Funktion.

Sie entspricht der Funktion setGeometry(QRect(x, y, w, h)).

Hinweis: Setter-Funktion für die Eigenschaft geometry.

void QWidget::setGraphicsEffect(QGraphicsEffect *effect)

Die Funktion setGraphicsEffect dient zum Einstellen des Grafikeffekts des Widgets.

Setzt effect als den Effekt des Widgets. Wenn bereits ein Effekt auf diesem Widget installiert ist, wird QWidget den bestehenden Effekt löschen, bevor der neue effect installiert wird.

Wenn effect der installierte Effekt auf einem anderen Widget ist, entfernt setGraphicsEffect() den Effekt von diesem Widget und installiert ihn auf diesem Widget.

QWidget übernimmt den Besitz von effect.

Hinweis: Diese Funktion wendet den Effekt auf sich selbst und alle seine Kinder an.

Hinweis: Grafikeffekte werden für OpenGL-basierte Widgets, wie QGLWidget, QOpenGLWidget und QQuickWidget nicht unterstützt.

Siehe auch graphicsEffect().

[slot] void QWidget::setHidden(bool hidden)

Convenience-Funktion, entspricht setVisible(!hidden).

Siehe auch isHidden().

void QWidget::setLayout(QLayout *layout)

Setzt den Layout-Manager für dieses Widget auf layout.

Wenn bereits ein Layout-Manager auf diesem Widget installiert ist, lässt QWidget Sie keinen weiteren installieren. Sie müssen zuerst den vorhandenen Layout-Manager löschen (zurückgegeben von layout()), bevor Sie setLayout() mit dem neuen Layout aufrufen können.

Wenn layout der Layout-Manager für ein anderes Widget ist, wird setLayout() das Layout reparieren und es zum Layout-Manager für dieses Widget machen.

Beispiel:

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(formWidget);
    setLayout(layout);

Eine Alternative zum Aufruf dieser Funktion besteht darin, dieses Widget an den Konstruktor des Layouts zu übergeben.

QWidget wird Eigentümer von layout.

Siehe auch layout() und Layout-Verwaltung.

void QWidget::setMask(const QBitmap &bitmap)

Bewirkt, dass nur die Pixel des Widgets sichtbar sind, für die bitmap ein entsprechendes 1-Bit hat. Wenn die Region Pixel außerhalb der rect() des Widgets enthält, können die Steuerelemente des Fenstersystems in diesem Bereich je nach Plattform sichtbar sein oder nicht.

Beachten Sie, dass dieser Effekt langsam sein kann, wenn der Bereich besonders komplex ist.

Der folgende Code zeigt, wie ein Bild mit einem Alphakanal verwendet werden kann, um eine Maske für ein Widget zu erzeugen:

    QLabel topLevelLabel;
    QPixmap pixmap(":/images/tux.png");
    topLevelLabel.setPixmap(pixmap);
    topLevelLabel.setMask(pixmap.mask());

Die in diesem Code gezeigte Beschriftung wird mit dem darin enthaltenen Bild maskiert, wodurch der Eindruck entsteht, dass ein unregelmäßig geformtes Bild direkt auf den Bildschirm gezeichnet wird.

Maskierte Widgets empfangen Mausereignisse nur auf ihren sichtbaren Teilen.

Siehe auch mask(), clearMask(), und windowOpacity().

void QWidget::setMask(const QRegion &region)

Dies ist eine überladene Funktion.

Bewirkt, dass nur die Teile des Widgets, die region überlappen, sichtbar sind. Wenn die Region Pixel außerhalb von rect() des Widgets enthält, können die Steuerelemente des Fenstersystems in diesem Bereich je nach Plattform sichtbar sein oder nicht.

Da QRegion die Erstellung beliebig komplexer Regionen erlaubt, können Widget-Masken so gestaltet werden, dass sie sich den unkonventionellsten Fensterformen anpassen und sogar die Anzeige von Widgets mit Löchern ermöglichen. Beachten Sie, dass dieser Effekt langsam sein kann, wenn die Region besonders komplex ist.

Widgetmasken werden verwendet, um dem Fenstersystem mitzuteilen, dass die Anwendung keine Mausereignisse für Bereiche außerhalb der Maske wünscht. Auf den meisten Systemen führen sie auch zu einer groben visuellen Beschneidung. Um glatte Fensterränder zu erhalten, verwenden Sie stattdessen einen transluzenten Hintergrund und eine Anti-Aliasing-Malerei, wie im Beispiel Transluzenter Hintergrund gezeigt.

Siehe auch windowOpacity.

void QWidget::setMaximumSize(int maxw, int maxh)

Dies ist eine überladene Funktion.

Diese Funktion entspricht der Funktion setMaximumSize(QSize(maxw, maxh)). Setzt die maximale Breite auf maxw und die maximale Höhe auf maxh.

Hinweis: Setter-Funktion für die Eigenschaft maximumSize.

void QWidget::setMinimumSize(int minw, int minh)

Dies ist eine überladene Funktion.

Diese Funktion entspricht setMinimumSize(QSize(minw, minh)). Setzt die Mindestbreite auf minw und die Mindesthöhe auf minh.

Hinweis: Setter-Funktion für die Eigenschaft minimumSize.

void QWidget::setParent(QWidget *parent)

Setzt das Elternteil des Widgets auf parent und setzt die Fensterflags zurück. Das Widget wird an die Position (0, 0) in seinem neuen Elternteil verschoben.

Wenn sich das neue übergeordnete Widget in einem anderen Fenster befindet, werden das reparierte Widget und seine Kinder an das Ende von tab chain des neuen übergeordneten Widgets angehängt, in der gleichen internen Reihenfolge wie zuvor. Wenn eines der verschobenen Widgets den Tastaturfokus hatte, ruft setParent() clearFocus() für dieses Widget auf.

Befindet sich das neue übergeordnete Widget im selben Fenster wie das alte übergeordnete Widget, ändert das Setzen des übergeordneten Widgets weder die Tabulatorreihenfolge noch den Tastaturfokus.

Wenn das "neue" übergeordnete Widget das alte übergeordnete Widget ist, bewirkt diese Funktion nichts.

Hinweis: Das Widget wird als Teil des Wechsels des übergeordneten Widgets unsichtbar, auch wenn es vorher sichtbar war. Sie müssen show() aufrufen, um das Widget wieder sichtbar zu machen.

Warnung: Es ist sehr unwahrscheinlich, dass Sie diese Funktion jemals brauchen werden. Wenn Sie ein Widget haben, das seinen Inhalt dynamisch ändert, ist es viel einfacher, QStackedWidget zu verwenden.

Siehe auch setWindowFlags().

void QWidget::setParent(QWidget *parent, Qt::WindowFlags f)

Dies ist eine überladene Funktion.

Diese Funktion nimmt auch Widget-Flags, f als Argument.

void QWidget::setScreen(QScreen *screen)

Setzt den Bildschirm, auf dem das Widget angezeigt werden soll, auf screen.

Die Einstellung des Bildschirms ist nur für Fenster sinnvoll. Falls erforderlich, wird das Fenster des Widgets auf screen neu erstellt.

Hinweis: Wenn der Bildschirm Teil eines virtuellen Desktops mit mehreren Bildschirmen ist, wird das Fenster nicht automatisch auf screen verschoben. Um das Fenster relativ zum Bildschirm zu platzieren, verwenden Sie die topLeft()-Position des Bildschirms.

Siehe auch screen() und QWindow::setScreen().

void QWidget::setShortcutAutoRepeat(int id, bool enable = true)

Wenn enable true ist, wird die automatische Wiederholung der Verknüpfung mit der angegebenen id aktiviert; andernfalls ist sie deaktiviert.

Siehe auch grabShortcut() und releaseShortcut().

void QWidget::setShortcutEnabled(int id, bool enable = true)

Wenn enable true ist, wird die Verknüpfung mit der angegebenen id aktiviert; andernfalls wird die Verknüpfung deaktiviert.

Warnung: Normalerweise sollten Sie diese Funktion nicht verwenden müssen, da das Qt-Verknüpfungssystem Verknüpfungen automatisch aktiviert/deaktiviert, wenn Widgets versteckt/sichtbar werden und den Fokus gewinnen oder verlieren. Es ist am besten, QAction oder QShortcut zu verwenden, um Verknüpfungen zu handhaben, da diese einfacher zu benutzen sind als diese Low-Level-Funktion.

Siehe auch grabShortcut() und releaseShortcut().

void QWidget::setSizeIncrement(int w, int h)

Dies ist eine überladene Funktion.

Setzt das x (Breite) Größeninkrement auf w und das y (Höhe) Größeninkrement auf h.

Hinweis: Setter-Funktion für die Eigenschaft sizeIncrement.

void QWidget::setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)

Dies ist eine überladene Funktion.

Setzt die Größenpolitik des Widgets auf horizontal und vertical, mit Standard-Stretch und ohne Höhe-für-Breite.

Hinweis: Setter-Funktion für die Eigenschaft sizePolicy.

Siehe auch QSizePolicy::QSizePolicy().

void QWidget::setStyle(QStyle *style)

Setzt den GUI-Stil des Widgets auf style. Der Besitz des Stilobjekts wird nicht übertragen.

Wenn kein Stil gesetzt ist, verwendet das Widget stattdessen den Stil der Anwendung QApplication::style().

Das Setzen des Stils eines Widgets hat keine Auswirkung auf bestehende oder zukünftige Kind-Widgets.

Warnung: Diese Funktion ist vor allem für Demonstrationszwecke nützlich, wenn Sie Qt's Styling-Möglichkeiten zeigen wollen. Echte Anwendungen sollten sie vermeiden und stattdessen einen einheitlichen GUI-Stil verwenden.

Warnung: Qt Style Sheets werden derzeit nicht für benutzerdefinierte QStyle Unterklassen unterstützt. Wir planen, dieses Problem in einer zukünftigen Version zu lösen.

Siehe auch style(), QStyle, QApplication::style(), und QApplication::setStyle().

[static] void QWidget::setTabOrder(QWidget *first, QWidget *second)

Setzt das Widget second in der Fokusreihenfolge hinter das Widget first.

Dadurch wird das Widget second aus seiner Fokuskette entfernt und nach dem Widget first eingefügt.

Beachten Sie, dass Sie die Kette wie folgt anordnen sollten, da die Tabulatorreihenfolge des Widgets second geändert wird:

setTabOrder(a, b); // a to b
setTabOrder(b, c); // a to b to c
setTabOrder(c, d); // a to b to c to d

und nicht wie hier:

// WRONG
setTabOrder(c, d); // c to d
setTabOrder(a, b); // a to b AND c to d
setTabOrder(b, c); // a to b to c, but not c to d

Wenn first oder second einen Fokus-Proxy hat, ersetzt setTabOrder() den Proxy korrekt.

Hinweis: Seit Qt 5.10: Ein Widget, das ein Kind als Fokus-Proxy hat, wird als ein zusammengesetztes Widget verstanden. Wenn eine Tabulator-Reihenfolge zwischen einem oder zwei zusammengesetzten Widgets gesetzt wird, wird die lokale Tabulator-Reihenfolge innerhalb jedes Widgets beibehalten. Das bedeutet, dass, wenn beide Widgets zusammengesetzte Widgets sind, die resultierende Tabulatorreihenfolge vom letzten Kind innerhalb von first bis zum ersten Kind innerhalb von second ist.

Siehe auch setFocusPolicy(), setFocusProxy(), und Tastaturfokus in Widgets.

[static, since 6.6] void QWidget::setTabOrder(std::initializer_list<QWidget *> widgets)

Dies ist eine überladene Funktion.

Legt die Tabulatorreihenfolge für die Widgets in der Liste widgets fest, indem sie QWidget::setTabOrder(QWidget *, QWidget *) für jedes aufeinanderfolgende Paar von Widgets aufruft.

Anstatt jedes Paar manuell zu setzen wie hier:

setTabOrder(a, b); // a to b
setTabOrder(b, c); // a to b to c
setTabOrder(c, d); // a to b to c to d

können Sie aufrufen:

setTabOrder({a, b, c, d}); // a to b to c to d

Der Aufruf erzeugt keine geschlossene Tabulator-Fokus-Schleife. Wenn es mehrere Widgets mit Qt::TabFocus Fokus-Policy gibt, wird der Tabulator auf d den Fokus zu einem dieser Widgets verschieben, nicht zurück zu a.

Diese Funktion wurde in Qt 6.6 eingeführt.

Siehe auch setFocusPolicy(), setFocusProxy(), und Tastaturfokus in Widgets.

void QWidget::setWindowFlag(Qt::WindowType flag, bool on = true)

Setzt das Fenster-Flag flag auf diesem Widget, wenn on wahr ist; andernfalls wird das Flag gelöscht.

Siehe auch setWindowFlags(), windowFlags(), und windowType().

void QWidget::setWindowRole(const QString &role)

Setzt die Rolle des Fensters auf role. Dies ist nur für Fenster unter X11 sinnvoll.

Siehe auch windowRole().

void QWidget::setWindowState(Qt::WindowStates windowState)

Setzt den Fensterstatus auf windowState. Der Fensterstatus ist eine ODER-Kombination aus Qt::WindowState: Qt::WindowMinimized, Qt::WindowMaximized, Qt::WindowFullScreen, und Qt::WindowActive.

Wenn das Fenster nicht sichtbar ist (d.h. isVisible() gibt false zurück), wird der Fensterstatus wirksam, wenn show() aufgerufen wird. Bei sichtbaren Fenstern erfolgt die Änderung sofort. Um beispielsweise zwischen dem Vollbildmodus und dem normalen Modus umzuschalten, verwenden Sie den folgenden Code:

w->setWindowState(w->windowState() ^ Qt::WindowFullScreen);

Um ein minimiertes Fenster wiederherzustellen und zu aktivieren (unter Beibehaltung seines maximierten und/oder bildschirmfüllenden Zustands), verwenden Sie den folgenden Code:

w->setWindowState((w->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);

Durch den Aufruf dieser Funktion wird das Widget ausgeblendet. Sie müssen show() aufrufen, um das Widget wieder sichtbar zu machen.

Hinweis: Auf einigen Fenstersystemen ist Qt::WindowActive nicht sofort verfügbar und kann in bestimmten Fällen ignoriert werden.

Wenn sich der Zustand des Fensters ändert, erhält das Widget eine changeEvent() vom Typ QEvent::WindowStateChange.

Siehe auch Qt::WindowState und windowState().

void QWidget::setupUi(QWidget *widget)

Richtet die Benutzeroberfläche für das angegebene widget ein.

Hinweis: Diese Funktion ist für Widgets verfügbar, die aus mit uic erstellten Benutzeroberflächenbeschreibungen abgeleitet sind.

Siehe auch Verwendung einer Designer UI-Datei in Ihrer Anwendung.

[slot] void QWidget::show()

Zeigt das Widget und seine untergeordneten Widgets an.

Für untergeordnete Fenster ist dies gleichbedeutend mit dem Aufruf von setVisible(true). Andernfalls ist es gleichbedeutend mit dem Aufruf von showFullScreen(), showMaximized() oder setVisible(true), je nach dem Standardverhalten der Plattform für die Fensterflags.

Siehe auch raise(), showEvent(), hide(), setVisible(), showMinimized(), showMaximized(), showNormal(), isVisible(), und windowFlags().

[virtual protected] void QWidget::showEvent(QShowEvent *event)

Dieser Event-Handler kann in einer Unterklasse neu implementiert werden, um Show-Ereignisse von Widgets zu empfangen, die mit dem Parameter event übergeben werden.

Nicht-spontane Show-Ereignisse werden an Widgets gesendet, unmittelbar bevor sie angezeigt werden. Die spontanen Show-Ereignisse von Fenstern werden danach geliefert.

Hinweis: Ein Widget erhält spontane Show- und Hide-Ereignisse, wenn sein Zuordnungsstatus vom Fenstersystem geändert wird, z. B. ein spontanes Hide-Ereignis, wenn der Benutzer das Fenster minimiert, und ein spontanes Show-Ereignis, wenn das Fenster wiederhergestellt wird. Nach dem Empfang eines spontanen Ausblendungsereignisses wird ein Widget weiterhin als sichtbar im Sinne von isVisible() betrachtet.

Siehe auch visible, event(), und QShowEvent.

[slot] void QWidget::showFullScreen()

Zeigt das Widget im Vollbildmodus an.

Der Aufruf dieser Funktion wirkt sich nur auf windows aus.

Um aus dem Vollbildmodus zurückzukehren, rufen Sie showNormal() oder close() auf.

Hinweis: Der Vollbildmodus funktioniert gut unter Windows, hat aber gewisse Probleme unter X. Diese Probleme sind auf Einschränkungen des ICCCM-Protokolls zurückzuführen, das die Kommunikation zwischen X11-Clients und dem Windowmanager spezifiziert. ICCCM versteht einfach nicht das Konzept von nicht dekorierten Vollbildfenstern. Daher ist das Beste, was Sie tun können, ein randloses Fenster anzufordern und es so zu platzieren und in der Größe zu verändern, dass es den gesamten Bildschirm ausfüllt. Je nach Fenstermanager kann dies funktionieren oder auch nicht. Das randlose Fenster wird mit MOTIF-Hinweisen angefordert, die zumindest teilweise von praktisch allen modernen Fenstermanagern unterstützt werden.

Eine Alternative wäre, den Fenstermanager komplett zu umgehen und ein Fenster mit dem Qt::X11BypassWindowManagerHint Flag zu erstellen. Dies bringt jedoch andere schwerwiegende Probleme mit sich, wie z.B. die Unterbrechung des Tastaturfokus und sehr seltsame Effekte bei Änderungen auf dem Desktop oder wenn der Benutzer andere Fenster hochzieht.

X11-Fenstermanager, die den modernen Post-ICCCM-Spezifikationen folgen, unterstützen den Vollbildmodus korrekt.

Unter macOS versetzt das Anzeigen eines Fensters im Vollbildmodus die gesamte Anwendung in den Vollbildmodus und stellt ihr einen eigenen Schreibtisch zur Verfügung. Wenn ein anderes Fenster angezeigt wird, während die Anwendung im Vollbildmodus läuft, wird dieses Fenster möglicherweise automatisch ebenfalls zum Vollbild. Um dies zu verhindern, beenden Sie den Vollbildmodus durch den Aufruf von showNormal() oder durch close() auf dem Vollbildfenster, bevor Sie ein anderes Fenster anzeigen.

Siehe auch showNormal(), showMaximized(), show(), isVisible(), und close().

[slot] void QWidget::showMaximized()

Zeigt das Widget maximiert an.

Der Aufruf dieser Funktion betrifft nur windows.

Unter X11 kann diese Funktion bei bestimmten Fenstermanagern nicht richtig funktionieren. Siehe die Dokumentation Window Geometry für eine Erklärung.

Siehe auch setWindowState(), showNormal(), showMinimized(), show(), hide(), und isVisible().

[slot] void QWidget::showMinimized()

Zeigt das Widget minimiert als Symbol an.

Der Aufruf dieser Funktion wirkt sich nur auf windows aus.

Siehe auch showNormal(), showMaximized(), show(), hide(), isVisible(), und isMinimized().

[slot] void QWidget::showNormal()

Stellt das Widget wieder her, nachdem es maximiert oder minimiert worden ist.

Der Aufruf dieser Funktion wirkt sich nur auf windows aus.

Siehe auch setWindowState(), showMinimized(), showMaximized(), show(), hide(), und isVisible().

void QWidget::stackUnder(QWidget *w)

Platziert das Widget unter w im Stapel des übergeordneten Widgets.

Damit dies funktioniert, müssen das Widget selbst und w Geschwister sein.

Siehe auch raise() und lower().

QStyle *QWidget::style() const

Siehe auch QWidget::setStyle(), QApplication::setStyle(), und QApplication::style().

[virtual protected] void QWidget::tabletEvent(QTabletEvent *event)

Dieser Event-Handler für das Ereignis event kann in einer Unterklasse neu implementiert werden, um Tablet-Ereignisse für das Widget zu empfangen.

Wenn Sie diesen Handler neu implementieren, ist es sehr wichtig, dass Sie ignore() das Ereignis, wenn Sie es nicht behandeln, so dass die Eltern des Widgets es interpretieren können.

Die Standardimplementierung ignoriert das Ereignis.

Wenn die Tablettenverfolgung ausgeschaltet ist, treten Tablettenbewegungsereignisse nur dann auf, wenn der Stift in Kontakt mit dem Tablett ist oder mindestens eine Stifttaste gedrückt wird, während der Stift bewegt wird. Wenn die Tablettenverfolgung eingeschaltet ist, treten Tablettenbewegungsereignisse auch dann auf, wenn der Stift in der Nähe des Tabletts schwebt, ohne dass Tasten gedrückt werden.

Siehe auch QEvent::ignore(), QEvent::accept(), event(), setTabletTracking(), und QTabletEvent.

bool QWidget::testAttribute(Qt::WidgetAttribute attribute) const

Gibt true zurück, wenn das Attribut attribute für dieses Widget gesetzt ist; andernfalls wird false zurückgegeben.

Siehe auch setAttribute().

bool QWidget::underMouse() const

Gibt true zurück, wenn sich das Widget unter dem Mauszeiger befindet; andernfalls wird false zurückgegeben.

Dieser Wert wird bei Drag&Drop-Vorgängen nicht richtig aktualisiert.

Siehe auch enterEvent() und leaveEvent().

void QWidget::ungrabGesture(Qt::GestureType gesture)

Meldet das Widget von einem bestimmten gesture Typ ab.

Siehe auch grabGesture() und QGestureEvent.

[slot] void QWidget::update()

Aktualisiert das Widget, es sei denn, Updates sind deaktiviert oder das Widget ist versteckt.

Diese Funktion führt nicht zu einem sofortigen Neuanstrich, sondern plant ein Malereignis für die Verarbeitung, wenn Qt zur Hauptereignisschleife zurückkehrt. Dies erlaubt Qt, mehr Geschwindigkeit und weniger Flimmern zu erreichen als bei einem Aufruf von repaint().

Ein mehrmaliger Aufruf von update() resultiert normalerweise in nur einem paintEvent()-Aufruf.

Qt löscht normalerweise den Bereich des Widgets vor dem Aufruf von paintEvent(). Wenn das Qt::WA_OpaquePaintEvent Widget-Attribut gesetzt ist, ist das Widget dafür verantwortlich, alle seine Pixel mit einer opaken Farbe zu malen.

Siehe auch repaint(), paintEvent(), setUpdatesEnabled(), und Analog Clock.

void QWidget::update(const QRect &rect)

Dies ist eine überladene Funktion.

Diese Version aktualisiert ein Rechteck rect innerhalb des Widgets.

void QWidget::update(const QRegion &rgn)

Dies ist eine überladene Funktion.

In dieser Version wird ein Bereich rgn innerhalb des Widgets neu gezeichnet.

void QWidget::update(int x, int y, int w, int h)

Dies ist eine überladene Funktion.

Diese Version aktualisiert ein Rechteck (x, y, w, h) innerhalb des Widgets.

void QWidget::updateGeometry()

Benachrichtigt das Layoutsystem, dass sich dieses Widget geändert hat und möglicherweise eine andere Geometrie benötigt.

Rufen Sie diese Funktion auf, wenn sich sizeHint() oder sizePolicy() geändert haben.

Für explizit ausgeblendete Widgets ist updateGeometry() ein No-op. Das Layoutsystem wird benachrichtigt, sobald das Widget angezeigt wird.

[protected slot] void QWidget::updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll)

Aktualisiert den Mikrofokus des Widgets und informiert die Eingabemethoden, dass sich der durch query angegebene Zustand geändert hat.

QRegion QWidget::visibleRegion() const

Gibt den nicht verdeckten Bereich zurück, in dem Malereignisse auftreten können.

Bei sichtbaren Widgets ist dies ein Näherungswert für den Bereich, der nicht von anderen Widgets bedeckt wird; andernfalls ist dies ein leerer Bereich.

Die Funktion repaint() ruft diese Funktion bei Bedarf auf, so dass Sie sie im Allgemeinen nicht aufrufen müssen.

[virtual protected] void QWidget::wheelEvent(QWheelEvent *event)

Dieser Event-Handler für das Ereignis event kann in einer Unterklasse neu implementiert werden, um Rad-Ereignisse für das Widget zu empfangen.

Wenn Sie diesen Handler neu implementieren, ist es sehr wichtig, dass Sie ignore() das Ereignis, wenn Sie es nicht behandeln, so dass die Eltern des Widgets es interpretieren können.

Die Standardimplementierung ignoriert das Ereignis.

Siehe auch QEvent::ignore(), QEvent::accept(), event(), und QWheelEvent.

WId QWidget::winId() const

Gibt den Fenstersystembezeichner des Widgets zurück.

Im Prinzip portabel, aber wenn Sie es verwenden, sind Sie wahrscheinlich dabei, etwas nicht-Portables zu tun. Seien Sie vorsichtig.

Wenn ein Widget nicht nativ (fremd) ist und winId() für dieses Widget aufgerufen wird, erhält dieses Widget ein natives Handle.

Dieser Wert kann sich während der Laufzeit ändern. Ein Ereignis des Typs QEvent::WinIdChange wird an das Widget gesendet, wenn sich der Window System Identifier ändert.

Siehe auch find().

QWidget *QWidget::window() const

Gibt das Fenster für dieses Widget zurück, d.h. das nächste Vorgänger-Widget, das einen Fenstersystem-Rahmen hat (oder haben könnte).

Wenn das Widget ein Fenster ist, wird das Widget selbst zurückgegeben.

Typische Verwendung ist das Ändern des Fenstertitels:

aWidget->window()->setWindowTitle("New Window Title");

Siehe auch isWindow().

QWindow *QWidget::windowHandle() const

Wenn dies ein natives Widget ist, wird das zugehörige QWindow zurückgegeben. Andernfalls wird null zurückgegeben.

Native Widgets umfassen Toplevel-Widgets, QGLWidget und Child-Widgets, auf denen winId() aufgerufen wurde.

Siehe auch winId() und screen().

[signal] void QWidget::windowIconChanged(const QIcon &icon)

Dieses Signal wird ausgegeben, wenn sich das Symbol des Fensters geändert hat, mit dem neuen icon als Argument.

Hinweis: Benachrichtigungssignal für die Eigenschaft windowIcon.

QString QWidget::windowRole() const

Gibt die Rolle des Fensters oder eine leere Zeichenkette zurück.

Siehe auch setWindowRole(), windowIcon, und windowTitle.

Qt::WindowStates QWidget::windowState() const

Gibt den aktuellen Fensterstatus zurück. Der Fensterstatus ist eine ODER-Kombination aus Qt::WindowState: Qt::WindowMinimized, Qt::WindowMaximized, Qt::WindowFullScreen, und Qt::WindowActive.

Siehe auch Qt::WindowState und setWindowState().

[signal] void QWidget::windowTitleChanged(const QString &title)

Dieses Signal wird ausgegeben, wenn sich der Titel des Fensters geändert hat, mit der neuen title als Argument.

Hinweis: Benachrichtigungssignal für die Eigenschaft windowTitle.

Qt::WindowType QWidget::windowType() const

Gibt den Fenstertyp dieses Widgets zurück. Dies ist identisch mit windowFlags() & Qt::WindowType_Mask.

Siehe auch windowFlags.

Makro-Dokumentation

QWIDGETSIZE_MAX

Definiert die maximale Größe für ein QWidget Objekt.

Die größte zulässige Größe für ein Widget ist QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX), d. h. QSize (16777215,16777215).

Siehe auch QWidget::setMaximumSize().

© 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.