QDial Class
Die Klasse „QDial“ stellt ein rundes Schieberegler-Steuerelement bereit (wie einen Tachometer oder ein Potentiometer). Mehr...
| Header: | #include <QDial> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Erbt von: | QAbstractSlider |
Eigenschaften
- notchSize : int
- notchTarget : qreal
- notchesVisible : bool
- wrapping : bool
Öffentliche Funktionen
| QDial(QWidget *parent = nullptr) | |
| virtual | ~QDial() |
| int | notchSize() const |
| qreal | notchTarget() const |
| bool | notchesVisible() const |
| void | setNotchTarget(double target) |
| bool | wrapping() const |
Neu implementierte öffentliche Funktionen
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
Öffentliche Slots
| void | setNotchesVisible(bool visible) |
| void | setWrapping(bool on) |
Geschützte Funktionen
| virtual void | initStyleOption(QStyleOptionSlider *option) const |
Neu implementierte geschützte Funktionen
| virtual bool | event(QEvent *e) override |
| virtual void | mouseMoveEvent(QMouseEvent *e) override |
| virtual void | mousePressEvent(QMouseEvent *e) override |
| virtual void | mouseReleaseEvent(QMouseEvent *e) override |
| virtual void | paintEvent(QPaintEvent *pe) override |
| virtual void | resizeEvent(QResizeEvent *e) override |
| virtual void | sliderChange(QAbstractSlider::SliderChange change) override |
Ausführliche Beschreibung

QDial wird verwendet, wenn der Benutzer einen Wert innerhalb eines programmierbaren Bereichs steuern muss und dieser Bereich entweder zyklisch verläuft (beispielsweise bei Winkeln von 0 bis 359 Grad) oder das Dialoglayout ein quadratisches Widget erfordert.
Da QDial von ` QAbstractSlider` erbt, verhält sich das Drehfeld ähnlich wie ein ` slider`. Wenn ` wrapping()` auf `false` gesetzt ist (Standardeinstellung), gibt es keinen wirklichen Unterschied zwischen einem Schieberegler und einem Drehfeld. Beide verfügen über dieselben Signale, Slots und Mitgliedsfunktionen. Welches Sie verwenden, hängt von den Erwartungen Ihrer Benutzer und von der Art der Anwendung ab.
Das Drehfeld sendet zunächst kontinuierlich das Signal „ valueChanged()“, während der Schieberegler bewegt wird; Sie können die Häufigkeit der Signalausgabe verringern, indem Sie die Eigenschaft „ tracking “ deaktivieren. Das Signal „ sliderMoved()“ wird auch dann kontinuierlich ausgesendet, wenn die Nachführung deaktiviert ist.
Das Drehfeld sendet außerdem die Signale „ sliderPressed()“ und „ sliderReleased()“, wenn die Maustaste gedrückt und losgelassen wird. Beachten Sie, dass sich der Wert des Drehfelds ändern kann, ohne dass diese Signale gesendet werden, da der Wert auch über die Tastatur und das Mausrad geändert werden kann.
Im Gegensatz zum Schieberegler versucht QDial, eine „angemessene“ Anzahl von Raststufen zu zeichnen, anstatt nur eine pro Zeilenschritt. Wenn möglich, beträgt die Anzahl der gezeichneten Rastermarkierungen eine pro Zeilenschritt; stehen jedoch nicht genügend Pixel zur Verfügung, um jede einzelne zu zeichnen, überspringt QDial Rastermarkierungen, um zu versuchen, eine gleichmäßige Anordnung zu erzielen (z. B. durch Zeichnen jeder zweiten oder dritten Rastermarkierung).
Wie der Schieberegler stellt auch das Drehfeld die Funktion „ QAbstractSlider “ setValue() als Slot zur Verfügung.
pageStepDie Tastatursteuerung des Drehreglers ist recht einfach: Die Pfeiltasten „ left “ / „up “ und „ right “ / „down “ passen den „ value “ des Drehreglers um die definierten Werte „ singleStep “, „ Page Up “ und „ Page Down “ an, während die Tasten „ Home “ und „ End “ den Wert auf die definierten Werte „ minimum “ und „ maximum “ setzen.
Wenn Sie das Mausrad zur Einstellung des Drehreglers verwenden, wird der Schrittwert durch den kleineren Wert aus wheelScrollLines multipliziert mit singleStep und pageStep bestimmt.
Siehe auch „ QScrollBar“ , „ QSpinBox “, „ QSlider “ und das Beispiel zu Schiebereglern.
Dokumentation zu den Eigenschaften
[read-only] notchSize : int
Diese Eigenschaft enthält die aktuelle Kerbengröße
Die Kerbengröße wird in Bereichs-Steuereinheiten und nicht in Pixeln angegeben und so berechnet, dass sie ein Vielfaches von singleStep() ist, was zu einer Kerbengröße auf dem Bildschirm im Bereich von notchTarget() führt.
Zugriffsfunktionen:
| int | notchSize() const |
Siehe auch notchTarget() und singleStep().
notchTarget : qreal
Diese Eigenschaft gibt die Zielanzahl an Pixeln zwischen den Kerben an
Der Kerben-Zielwert ist die Anzahl der Pixel, die „ QDial “ zwischen den einzelnen Kerben einzufügen versucht.
Die tatsächliche Größe kann von der Zielgröße abweichen.
Der Standardwert für den Kerzenabstand beträgt 3,7 Pixel.
Zugriffsfunktionen:
| qreal | notchTarget() const |
| void | setNotchTarget(double target) |
notchesVisible : bool
Diese Eigenschaft gilt unabhängig davon, ob die Markierungen angezeigt werden
Ist die Eigenschaft auf „ true “ gesetzt, wird eine Reihe von Markierungen um das Zifferblatt gezeichnet, um den verfügbaren Wertebereich anzuzeigen; andernfalls werden keine Markierungen angezeigt.
Standardmäßig ist diese Eigenschaft deaktiviert.
Zugriffsfunktionen:
| bool | notchesVisible() const |
| void | setNotchesVisible(bool visible) |
wrapping : bool
Diese Eigenschaft gibt an, ob der Zeilenumbruch aktiviert ist
Ist der Wert „true“, ist der Zeilenumbruch aktiviert; andernfalls wird am unteren Rand des Drehreglers ein Abstand eingefügt, um die Endpunkte des gültigen Wertebereichs voneinander zu trennen.
Ist diese Option aktiviert, kann der Pfeil in jedem beliebigen Winkel auf dem Drehregler ausgerichtet werden. Ist sie deaktiviert, ist der Pfeil auf den oberen Teil des Drehreglers beschränkt; wird er in den Leerraum am unteren Rand des Drehreglers gedreht, wird er am nächstgelegenen Ende des gültigen Wertebereichs fixiert.
Standardmäßig ist diese Eigenschaft auf „ false “ gesetzt.
Zugriffsfunktionen:
| bool | wrapping() const |
| void | setWrapping(bool on) |
Dokumentation zu den Member-Funktionen
[explicit] QDial::QDial(QWidget *parent = nullptr)
Erstellt ein Zifferblatt.
Das Argument „ parent “ wird an den Konstruktor von „ QAbstractSlider “ übergeben.
[virtual noexcept] QDial::~QDial()
Zerstört das Zifferblatt.
[override virtual protected] bool QDial::event(QEvent *e)
Umsetzt: ` QAbstractSlider::event(QEvent *e)`.
[virtual protected] void QDial::initStyleOption(QStyleOptionSlider *option) const
Initialisieren Sie ` option ` mit den Werten aus dieser Datei: QDial. Diese Methode ist für Unterklassen nützlich, wenn diese ein ` QStyleOptionSlider` benötigen, aber nicht alle Informationen selbst eingeben möchten.
Siehe auch ` QStyleOption::initFrom()`.
[override virtual] QSize QDial::minimumSizeHint() const
Implementiert eine Zugriffsfunktion für die Eigenschaft „ QWidget::minimumSizeHint “ neu.
[override virtual protected] void QDial::mouseMoveEvent(QMouseEvent *e)
Implementiert: ` QWidget::mouseMoveEvent` (`QMouseEvent *event`).
[override virtual protected] void QDial::mousePressEvent(QMouseEvent *e)
Implementiert: ` QWidget::mousePressEvent` (`QMouseEvent *event`).
[override virtual protected] void QDial::mouseReleaseEvent(QMouseEvent *e)
Implementiert: ` QWidget::mouseReleaseEvent` (`QMouseEvent *event`).
[override virtual protected] void QDial::paintEvent(QPaintEvent *pe)
Implementiert: QWidget::paintEvent(QPaintEvent *event).
[override virtual protected] void QDial::resizeEvent(QResizeEvent *e)
Implementiert: ` QWidget::resizeEvent(QResizeEvent *event)`.
[override virtual] QSize QDial::sizeHint() const
Implementiert eine Zugriffsfunktion für die Eigenschaft „ QWidget::sizeHint “ neu.
[override virtual protected] void QDial::sliderChange(QAbstractSlider::SliderChange change)
Implementiert erneut: QAbstractSlider::sliderChange(QAbstractSlider::SliderChange change).
© 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.