QFrame Class
Die Klasse QFrame ist die Basisklasse der Widgets, die einen Rahmen haben können. Mehr...
Kopfzeile: | #include <QFrame> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Vererbt: | QWidget |
Vererbt von: | QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget, und 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) |
Reimplementierte öffentliche Funktionen
virtual QSize | sizeHint() const override |
Geschützte Funktionen
virtual void | initStyleOption(QStyleOptionFrame *option) const |
Reimplementierte geschützte Funktionen
virtual void | changeEvent(QEvent *ev) override |
virtual bool | event(QEvent *e) override |
virtual void | paintEvent(QPaintEvent *) override |
Detaillierte Beschreibung
QMenu verwendet dies, um das Menü über den umgebenden Bildschirm "anzuheben". QProgressBar hat ein "versunkenes" Aussehen. QLabel hat ein flaches Aussehen. Die Rahmen von Widgets wie diesen 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 zur Erstellung einfacher Platzhalterrahmen ohne Inhalt verwendet werden.
Der Stil des Rahmens wird durch eine frame shape und eine shadow style spezifiziert, die zur visuellen Abgrenzung des Rahmens von den umgebenden Widgets verwendet wird. Diese Eigenschaften können zusammen mit der Funktion setFrameStyle() eingestellt 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 hat drei Attribute, die die Dicke des Rahmens beschreiben: lineWidth, midLineWidth, und frameWidth.
- Die Linienbreite ist die Breite des Rahmens. Sie kann geändert werden, um das Erscheinungsbild des Rahmens anzupassen.
- Die Breite der Mittellinie gibt die Breite einer zusätzlichen Linie in der Mitte des Rahmens an, die eine dritte Farbe verwendet, um einen speziellen 3D-Effekt zu erzielen. Beachten Sie, dass eine Mittellinie nur bei den Rahmen Box, HLine und VLine gezeichnet wird, die erhöht 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 zu erhalten.
Der Rand zwischen dem Rahmen und dem Inhalt des Rahmens kann mit der Funktion QWidget::setContentsMargins() angepasst werden.
Diese Tabelle zeigt einige der Kombinationen von Stilen und Zeilenbreiten:
Mitglied Typ Dokumentation
enum QFrame::Shadow
Dieser Enum-Typ definiert die Arten von Schatten, die verwendet werden, um Rahmen einen 3D-Effekt zu verleihen.
Konstante | Wert | Beschreibung |
---|---|---|
QFrame::Plain | 0x0010 | der Rahmen und der Inhalt erscheinen in einer Ebene mit der Umgebung; wird mit der Farbe der Palette QPalette::WindowText gezeichnet (ohne 3D-Effekt) |
QFrame::Raised | 0x0020 | der Rahmen und der Inhalt erscheinen erhaben; zeichnet eine erhabene 3D-Linie unter Verwendung der hellen und dunklen Farben der aktuellen Farbgruppe |
QFrame::Sunken | 0x0030 | der Rahmen und der Inhalt erscheinen versenkt; zeichnet eine 3D-Senkungslinie unter Verwendung der hellen und dunklen Farben der aktuellen Farbgruppe |
Shadow interagiert mit QFrame::Shape, lineWidth() und midLineWidth(). Siehe das Bild 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 seinen Inhalt |
QFrame::Panel | 0x0002 | QFrame zeichnet ein Feld, um den Inhalt erhöht oder vertieft erscheinen zu lassen |
QFrame::StyledPanel | 0x0006 | zeichnet ein rechteckiges Feld mit einem Aussehen, das 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 einrahmt (nützlich als Trennlinie) |
QFrame::WinPanel | 0x0003 | zeichnet ein rechteckiges Feld, das erhöht oder vertieft sein kann, wie die Felder in Windows 2000. Die Angabe dieser Form setzt die Linienbreite auf 2 Pixel. WinPanel wird aus Kompatibilitätsgründen bereitgestellt. Für die Unabhängigkeit vom GUI-Stil empfehlen wir stattdessen die Verwendung von StyledPanel. |
Wenn es nicht QStyle aufruft, interagiert Shape mit QFrame::Shadow, lineWidth() und midLineWidth(), um das Gesamtergebnis zu erzeugen. Siehe das Bild der Rahmen in der Dokumentation der Hauptklasse.
Siehe auch QFrame::Shadow, QFrame::style(), und QStyle::drawPrimitive().
enum QFrame::StyleMask
Diese Aufzählung definiert zwei Konstanten, die verwendet werden können, um die beiden Komponenten von frameStyle() zu extrahieren:
Konstante | Wert | Beschreibung |
---|---|---|
QFrame::Shadow_Mask | 0x00f0 | Der Shadow Teil von frameStyle() |
QFrame::Shape_Mask | 0x000f | Der Shape -Teil von frameStyle() |
Normalerweise brauchen Sie diese nicht zu verwenden, da frameShadow() und frameShape() bereits die Teile Shadow und Shape von frameStyle() extrahieren.
Siehe auch frameStyle() und setFrameStyle().
Dokumentation der Eigenschaften
frameRect : QRect
Diese Eigenschaft enthält das Rechteck des Rahmens
Das Rechteck des Rahmens ist das Rechteck, in dem der Rahmen gezeichnet wird. Standardmäßig ist dies das gesamte Widget. Die Einstellung 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)), dann entspricht das resultierende Rahmenrechteck dem widget rectangle.
Zugriffsfunktionen:
QRect | frameRect() const |
void | setFrameRect(const QRect &) |
frameShadow : Shadow
Diese Eigenschaft enthält den Wert des Rahmenschattens aus dem Rahmenstil
Funktionen zugreifen:
QFrame::Shadow | frameShadow() const |
void | setFrameShadow(QFrame::Shadow) |
Siehe auch frameStyle() und frameShape().
frameShape : Shape
Diese Eigenschaft enthält den Wert der Rahmenform aus dem Rahmenstil
Zugriffsfunktionen:
QFrame::Shape | frameShape() const |
void | setFrameShape(QFrame::Shape) |
Siehe auch frameStyle() und frameShadow().
[read-only]
frameWidth : const int
Diese Eigenschaft bestimmt die Breite des Rahmens, der gezeichnet wird.
Beachten Sie, dass die Rahmenbreite von frame style abhängt, nicht nur von der Linienbreite und der Mittellinienbreite. Zum Beispiel hat der durch NoFrame angegebene Stil immer eine Rahmenbreite von 0, während der Stil Panel eine Rahmenbreite hat, die der Linienbreite entspricht.
Zugriffsfunktionen:
int | frameWidth() const |
Siehe auch lineWidth(), midLineWidth(), und frameStyle().
lineWidth : int
Diese Eigenschaft enthält die Zeilenbreite
Beachten Sie, dass die gesamte Zeilenbreite 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 Mitgliedsfunktionen
[explicit]
QFrame::QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
Konstruiert 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)
Reimplements: QWidget::changeEvent(QEvent *Event).
[override virtual protected]
bool QFrame::event(QEvent *e)
Reimplements: 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 dieser QFrame. Diese Methode ist nützlich für Unterklassen, wenn sie eine QStyleOptionFrame benötigen, aber nicht alle Informationen selbst eingeben wollen.
Siehe auch QStyleOption::initFrom().
[override virtual protected]
void QFrame::paintEvent(QPaintEvent *)
Reimplements: QWidget::paintEvent(QPaintEvent *event).
void QFrame::setFrameStyle(int style)
Setzt den Rahmenstil auf style.
style ist das bitweise ODER zwischen einer Rahmenform und einem Rahmenschattenstil. Siehe das Bild der Rahmen in der Dokumentation der Hauptklasse.
Die Rahmenformen sind in QFrame::Shape und die Schattenstile in QFrame::Shadow angegeben.
Wenn eine Mittellinienbreite größer als 0 angegeben wird, wird eine zusätzliche Linie für Raised oder Sunken Box , HLine und VLine Rahmen gezeichnet. Die mittlere Farbe der aktuellen Farbgruppe wird für das Zeichnen von Mittellinien verwendet.
Siehe auch frameStyle().
[override virtual]
QSize QFrame::sizeHint() const
Reimplantiert eine Zugriffsfunktion für die Eigenschaft: QWidget::sizeHint.
© 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.