QFrame Class
Die Klasse „QFrame“ ist die Basisklasse für Widgets, die einen Rahmen haben können. Mehr dazu...
| Header: | #include <QFrame> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Erbt von: | QWidget |
| Vererbt an: | QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget sowie QToolBox |
Öffentliche Typen
| enum | Shadow { Plain, Raised, Sunken } |
| enum | Shape { NoFrame, Box, Panel, StyledPanel, HLine, …, WinPanel } |
| enum | StyleMask { Shadow_Mask, Shape_Mask } |
Eigenschaften
|
|
Öffentliche Funktionen
| QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) | |
| virtual | ~QFrame() |
| QRect | frameRect() const |
| QFrame::Shadow | frameShadow() const |
| QFrame::Shape | frameShape() const |
| int | frameStyle() const |
| int | frameWidth() const |
| int | lineWidth() const |
| int | midLineWidth() const |
| void | setFrameRect(const QRect &) |
| void | setFrameShadow(QFrame::Shadow) |
| void | setFrameShape(QFrame::Shape) |
| void | setFrameStyle(int style) |
| void | setLineWidth(int) |
| void | setMidLineWidth(int) |
Neu implementierte öffentliche Funktionen
| virtual QSize | sizeHint() const override |
Geschützte Funktionen
| virtual void | initStyleOption(QStyleOptionFrame *option) const |
Neu implementierte geschützte Funktionen
| virtual void | changeEvent(QEvent *ev) override |
| virtual bool | event(QEvent *e) override |
| virtual void | paintEvent(QPaintEvent *) override |
Ausführliche Beschreibung
QMenu Dies wird verwendet, um das Menü über den umgebenden Bildschirm „herauszuheben“. QProgressBar hat ein „vertieftes“ Erscheinungsbild. QLabel hat ein flaches Erscheinungsbild. Die Rahmen solcher Widgets können geändert werden.
QLabel label(...);
label.setFrameStyle(QFrame::Panel | QFrame::Raised);
label.setLineWidth(2);
QProgressBar pbar(...);
label.setFrameStyle(QFrame::NoFrame);Die Klasse `QFrame` kann auch direkt zum Erstellen einfacher Platzhalterrahmen ohne Inhalt verwendet werden.
Der Rahmenstil wird durch einen frame shape und einen shadow style festgelegt, die dazu dienen, den Rahmen optisch von den umgebenden Widgets abzugrenzen. Diese Eigenschaften können gemeinsam mit der Funktion setFrameStyle() gesetzt und mit frameStyle() ausgelesen werden.
Die Rahmenformen sind „ NoFrame “, „ Box “, „ Panel “, „ StyledPanel “, „ HLine “ und „ VLine “; die Schattenstile sind „ Plain “, „ Raised “ und „ Sunken “.
Ein Rahmen-Widget verfügt über drei Attribute, die die Dicke des Rahmens beschreiben: lineWidth, midLineWidth und frameWidth.
- Die Linienbreite ist die Breite des Rahmenrandes. Sie kann angepasst werden, um das Erscheinungsbild des Rahmens individuell zu gestalten.
- Die Mittellinienbreite gibt die Breite einer zusätzlichen Linie in der Mitte des Rahmens an, die eine dritte Farbe verwendet, um einen besonderen 3D-Effekt zu erzielen. Beachten Sie, dass eine Mittellinie nur für Rahmen mit den Attributen „ Box “, „ HLine “ und „ VLine “ gezeichnet wird, die erhaben oder vertieft sind.
- Die Rahmenbreite wird durch den Rahmenstil bestimmt, und die Funktion ` frameWidth()` wird verwendet, um den für den verwendeten Stil definierten Wert abzurufen.
Der Abstand zwischen dem Rahmen und seinem Inhalt kann mit der Funktion ` QWidget::setContentsMargins()` angepasst werden.
Diese Tabelle zeigt einige Kombinationen aus Stilen und Linienbreiten:

Mitgliedstyp Dokumentation
enum QFrame::Shadow
Dieser Enum-Typ definiert die Schattenarten, die verwendet werden, um Bildern einen 3D-Effekt zu verleihen.
| Konstante | Wert | Beschreibung |
|---|---|---|
QFrame::Plain | 0x0010 | Der Rahmen und der Inhalt erscheinen auf gleicher Ebene mit der Umgebung; die Darstellung erfolgt mit der Farbe „ QPalette::WindowText “ aus der Palette (ohne 3D-Effekt) |
QFrame::Raised | 0x0020 | Der Rahmen und der Inhalt erscheinen erhaben; es wird eine erhabene 3D-Linie unter Verwendung der hellen und dunklen Farben der aktuellen Farbgruppe gezeichnet |
QFrame::Sunken | 0x0030 | Der Rahmen und der Inhalt erscheinen vertieft; zeichnet eine vertiefte 3D-Linie unter Verwendung der hellen und dunklen Farben der aktuellen Farbgruppe |
„Shadow“ interagiert mit „ QFrame::Shape “, „ lineWidth()“ und „ midLineWidth()“. Siehe die Abbildung der Rahmen in der Dokumentation der Hauptklasse.
Siehe auch „ QFrame::Shape“ , „ lineWidth()“ und „ midLineWidth()“.
enum QFrame::Shape
Dieser Enum-Typ definiert die verfügbaren Rahmenformen.
| Konstante | Wert | Beschreibung |
|---|---|---|
QFrame::NoFrame | 0 | QFrame Zeichnet nichts |
QFrame::Box | 0x0001 | QFrame zeichnet einen Rahmen um den Inhalt |
QFrame::Panel | 0x0002 | QFrame zeichnet ein Feld, um den Inhalt erhaben oder vertieft erscheinen zu lassen |
QFrame::StyledPanel | 0x0006 | Zeichnet ein rechteckiges Feld, dessen Aussehen vom aktuellen GUI-Stil abhängt. Es kann erhaben oder vertieft sein. |
QFrame::HLine | 0x0004 | QFrame Zeichnet eine horizontale Linie, die nichts umrahmt (nützlich als Trennlinie) |
QFrame::VLine | 0x0005 | QFrame zeichnet eine vertikale Linie, die nichts umrahmt (nützlich als Trennlinie) |
QFrame::WinPanel | 0x0003 | zeichnet ein rechteckiges Feld, das wie in Windows 2000 erhaben oder vertieft sein kann. Bei Angabe dieser Form wird die Linienbreite auf 2 Pixel festgelegt. WinPanel wird aus Kompatibilitätsgründen bereitgestellt. Für Unabhängigkeit vom GUI-Stil empfehlen wir stattdessen die Verwendung von StyledPanel. |
Wenn es ` QStyle` nicht aufruft, interagiert `Shape` mit ` QFrame::Shadow`, der Methode ` lineWidth()` und der Methode ` midLineWidth()`, um das Gesamtergebnis zu erzeugen. Siehe die Abbildung der Rahmen in der Dokumentation der Hauptklasse.
Siehe auch ` QFrame::Shadow`, ` QFrame::style()` und ` QStyle::drawPrimitive()`.
enum QFrame::StyleMask
Diese Enumeration definiert zwei Konstanten, mit denen die beiden Komponenten von ` frameStyle()` extrahiert werden können:
| Konstante | Wert | Beschreibung |
|---|---|---|
QFrame::Shadow_Mask | 0x00f0 | Der „ Shadow “-Teil von „ frameStyle()“ |
QFrame::Shape_Mask | 0x000f | Der Teil „ Shape “ von „ frameStyle “ () |
Normalerweise müssen Sie diese nicht verwenden, da frameShadow() und frameShape() bereits die Teile Shadow und Shape aus frameStyle() extrahieren.
Siehe auch frameStyle() und setFrameStyle().
Dokumentation zu den Eigenschaften
frameRect : QRect
Diese Eigenschaft enthält das Rechteck des Rahmens
Das Rahmenrechteck ist das Rechteck, in dem der Rahmen gezeichnet wird. Standardmäßig entspricht dies dem gesamten Widget. Das Festlegen des Rechtecks führt nicht zu einer Aktualisierung des Widgets. Das Rahmenrechteck wird automatisch angepasst, wenn sich die Größe des Widgets ändert.
Wenn Sie das Rechteck auf ein Null-Rechteck setzen (z. B. ` QRect` (0, 0, 0, 0)), entspricht das resultierende Rahmenrechteck dem Wert ` widget rectangle`.
Zugriffsfunktionen:
| QRect | frameRect() const |
| void | setFrameRect(const QRect &) |
frameShadow : Shadow
Diese Eigenschaft enthält den Wert für den Rahmen-Schatten aus dem Rahmenstil
Zugriffsfunktionen:
| QFrame::Shadow | frameShadow() const |
| void | setFrameShadow(QFrame::Shadow) |
Siehe auch frameStyle() und frameShape().
frameShape : Shape
Diese Eigenschaft enthält den Wert für die Rahmenform aus dem Rahmenstil
Zugriffsfunktionen:
| QFrame::Shape | frameShape() const |
| void | setFrameShape(QFrame::Shape) |
Siehe auch „ frameStyle()“ und „ frameShadow()“.
[read-only] frameWidth : int
Diese Eigenschaft gibt die Breite des gezeichneten Rahmens an.
Beachten Sie, dass die Rahmenbreite vom „ frame style “ abhängt und nicht nur von der Linienbreite und der Mittellinienbreite. Beispielsweise hat der durch „ NoFrame “ festgelegte Stil immer eine Rahmenbreite von 0, während der Stil „ Panel “ eine Rahmenbreite aufweist, die der Linienbreite entspricht.
Zugriffsfunktionen:
| int | frameWidth() const |
Siehe auch lineWidth(), midLineWidth() und frameStyle().
lineWidth : int
Diese Eigenschaft legt die Linienbreite fest
Beachten Sie, dass die Gesamtlinienbreite für Rahmen, die als Trennzeichen verwendet werden (HLine und VLine), durch frameWidth festgelegt wird.
Der Standardwert ist 1.
Zugriffsfunktionen:
| int | lineWidth() const |
| void | setLineWidth(int) |
Siehe auch midLineWidth und frameWidth.
midLineWidth : int
Diese Eigenschaft gibt die Breite der Mittellinie an
Der Standardwert ist 0.
Zugriffsfunktionen:
| int | midLineWidth() const |
| void | setMidLineWidth(int) |
Siehe auch lineWidth und frameWidth.
Dokumentation der Member-Funktionen
[explicit] QFrame::QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
Erstellt ein Rahmen-Widget mit dem Rahmenstil „ NoFrame “ und einer Rahmenbreite von 1 Pixel.
Die Argumente „ parent “ und „ f “ werden an den Konstruktor „ QWidget “ übergeben.
[virtual noexcept] QFrame::~QFrame()
Zerstört den Rahmen.
[override virtual protected] void QFrame::changeEvent(QEvent *ev)
Umsetzt: ` QWidget::changeEvent(QEvent *event)`.
[override virtual protected] bool QFrame::event(QEvent *e)
Umsetzt: ` QWidget::event(QEvent *event)`.
int QFrame::frameStyle() const
Gibt den Rahmenstil zurück.
Der Standardwert ist „ QFrame::Plain “.
Siehe auch „ setFrameStyle()“, „ frameShape()“ und „ frameShadow()“.
[virtual protected] void QFrame::initStyleOption(QStyleOptionFrame *option) const
Initialisiert ` option ` mit den Werten aus diesem ` QFrame`. Diese Methode ist für Unterklassen nützlich, wenn sie ein ` QStyleOptionFrame ` benötigen, aber nicht alle Informationen selbst eingeben möchten.
Siehe auch ` QStyleOption::initFrom()`.
[override virtual protected] void QFrame::paintEvent(QPaintEvent *)
Umsetzt: ` QWidget::paintEvent` (`QPaintEvent *event`).
void QFrame::setFrameStyle(int style)
Legt den Rahmenstil auf „ style “ fest.
„ style “ ist das bitweise ODER aus einer Rahmenform und einem Rahmenschattenstil. Siehe die Abbildung der Rahmen in der Dokumentation der Hauptklasse.
Die Rahmenformen sind unter QFrame::Shape und die Schattenstile unter QFrame::Shadow aufgeführt.
Wenn eine Mittellinienbreite größer als 0 angegeben wird, wird bei den Rahmen „ Raised “ oder „ Sunken “ Box, „ HLine “ und „ VLine “ eine zusätzliche Linie gezeichnet. Für das Zeichnen der Mittellinien wird die Mittelfarbe der aktuellen Farbgruppe verwendet.
Siehe auch „ frameStyle()“.
[override virtual] QSize QFrame::sizeHint() const
Implementiert eine Zugriffsfunktion für die Eigenschaft „ QWidget::sizeHint “ neu.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.