QPaintDevice Class
Die Klasse QPaintDevice ist die Basisklasse für Objekte, die mit QPainter bemalt werden können. Mehr...
Kopfzeile: | #include <QPaintDevice> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Vererbt von: | QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, QPixmap, QSvgGenerator, und QWidget |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QPaintDevice ist Teil der Malerei-Klassen.
Öffentliche Typen
enum | PaintDeviceMetric { PdmWidth, PdmHeight, PdmWidthMM, PdmHeightMM, PdmNumColors, …, PdmDevicePixelRatioF_EncodedB } |
Öffentliche Funktionen
virtual | ~QPaintDevice() |
int | colorCount() const |
int | depth() const |
qreal | devicePixelRatio() const |
qreal | devicePixelRatioF() const |
int | height() const |
int | heightMM() const |
int | logicalDpiX() const |
int | logicalDpiY() const |
virtual QPaintEngine * | paintEngine() const = 0 |
bool | paintingActive() const |
int | physicalDpiX() const |
int | physicalDpiY() const |
int | width() const |
int | widthMM() const |
Geschützte Funktionen
QPaintDevice() | |
virtual int | metric(QPaintDevice::PaintDeviceMetric metric) const |
Detaillierte Beschreibung
Ein Malgerät ist eine Abstraktion eines zweidimensionalen Raums, auf dem mit einem QPainter gezeichnet werden kann. Sein Standardkoordinatensystem hat seinen Ursprung an der oberen linken Position. X steigt nach rechts und Y steigt nach unten. Die Einheit ist ein Pixel.
Die Zeichenfunktionen von QPaintDevice werden derzeit von den Unterklassen QWidget, QImage, QPixmap, QPicture und QPrinter implementiert.
Um die Unterstützung für ein neues Backend zu implementieren, müssen Sie von QPaintDevice ableiten und die virtuelle Funktion paintEngine() neu implementieren, um QPainter mitzuteilen, welche Paint-Engine zum Zeichnen auf diesem speziellen Gerät verwendet werden soll. Beachten Sie, dass Sie auch eine entsprechende Paint-Engine erstellen müssen, um auf dem Gerät zeichnen zu können, d.h. von QPaintEngine ableiten und dessen virtuelle Funktionen neu implementieren.
Warnung: Qt setzt voraus, dass ein QGuiApplication Objekt existiert, bevor ein Malgerät erstellt werden kann. Malgeräte greifen auf Ressourcen des Fenstersystems zu, und diese Ressourcen werden nicht initialisiert, bevor ein Anwendungsobjekt erstellt wird.
Die Klasse QPaintDevice bietet mehrere Funktionen, die die verschiedenen Gerätemetriken zurückgeben: Die Funktion depth() gibt die Bittiefe (Anzahl der Bitebenen) zurück. Die Funktion height() gibt die Höhe des Geräts in Standard-Koordinatensystem-Einheiten zurück (z. B. Pixel für QPixmap und QWidget), während heightMM() die Höhe des Geräts in Millimetern zurückgibt. Analog dazu geben die Funktionen width() und widthMM() die Breite des Geräts in Standardkoordinatensystemeinheiten bzw. in Millimetern zurück. Alternativ kann die geschützte Funktion metric() verwendet werden, um die metrischen Informationen abzurufen, indem man die gewünschte PaintDeviceMetric als Argument angibt.
Die Funktionen logicalDpiX() und logicalDpiY() geben die horizontale und vertikale Auflösung des Geräts in Dots per Inch zurück. Die Funktionen physicalDpiX() und physicalDpiY() geben ebenfalls die Auflösung des Geräts in Punkten pro Zoll zurück, aber beachten Sie, dass, wenn die logische und die physikalische Auflösung voneinander abweichen, die entsprechende QPaintEngine die Zuordnung vornehmen muss. Schließlich gibt die Funktion colorCount() die Anzahl der verschiedenen Farben zurück, die für das Malgerät verfügbar sind.
Siehe auch QPaintEngine, QPainter, Koordinatensystem, und Paint System.
Dokumentation der Mitgliedstypen
enum QPaintDevice::PaintDeviceMetric
Beschreibt die verschiedenen Metriken eines Farbgeräts.
Konstante | Wert | Beschreibung |
---|---|---|
QPaintDevice::PdmWidth | 1 | Die Breite des Malgeräts in Standard-Koordinatensystemeinheiten (z. B. Pixel für QPixmap und QWidget). Siehe auch width(). |
QPaintDevice::PdmHeight | 2 | Die Höhe des Malgeräts in Standardkoordinatensystemeinheiten (z. B. Pixel für QPixmap und QWidget). Siehe auch height(). |
QPaintDevice::PdmWidthMM | 3 | Die Breite des Malgeräts in Millimetern. Siehe auch widthMM(). |
QPaintDevice::PdmHeightMM | 4 | Die Höhe des Malgeräts in Millimetern. Siehe auch heightMM(). |
QPaintDevice::PdmNumColors | 5 | Die Anzahl der verschiedenen Farben, die für die Malvorrichtung verfügbar sind. Siehe auch colorCount(). |
QPaintDevice::PdmDepth | 6 | Die Bittiefe (Anzahl der Bitebenen) des Malgeräts. Siehe auch depth(). |
QPaintDevice::PdmDpiX | 7 | Die horizontale Auflösung des Geräts in Dots per Inch. Siehe auch logicalDpiX(). |
QPaintDevice::PdmDpiY | 8 | Die vertikale Auflösung des Geräts in Dots per Inch (Punkte pro Zoll). Siehe auch logicalDpiY(). |
QPaintDevice::PdmPhysicalDpiX | 9 | Die horizontale Auflösung des Geräts in Dots per Inch (Punkte pro Zoll). Siehe auch physicalDpiX(). |
QPaintDevice::PdmPhysicalDpiY | 10 | Die vertikale Auflösung des Geräts in Dots per Inch (Punkte pro Zoll). Siehe auch physicalDpiY(). |
QPaintDevice::PdmDevicePixelRatio | 11 | Das Gerätepixelverhältnis für das Gerät. Übliche Werte sind 1 für normal-dpi Displays und 2 für hoch-dpi "Retina" Displays. |
QPaintDevice::PdmDevicePixelRatioScaled | 12 | Das skalierte Gerätepixelverhältnis für das Gerät. Dies ist identisch mit PdmDevicePixelRatio, mit der Ausnahme, dass der Wert mit einem konstanten Faktor skaliert wird, um Malgeräte mit gebrochenen Skalierungsfaktoren zu unterstützen. Der verwendete konstante Skalierungsfaktor ist devicePixelRatioFScale(). Dieser Enum-Wert wurde in Qt 5.6 eingeführt. |
QPaintDevice::PdmDevicePixelRatioF_EncodedA (since Qt 6.8) | 13 | Dieses Enum-Element wird zusammen mit dem entsprechenden B -Element für das Gerätepixelverhältnis des Geräts als kodierter double Gleitkommawert verwendet. Eine QPaintDevice Unterklasse, die gebrochene DPR-Werte unterstützt, sollte die Unterstützung für diese beiden Enum-Elemente in ihrem Override der Funktion metric() implementieren. Der Rückgabewert wird als das Ergebnis der Funktion encodeMetricF() erwartet. |
QPaintDevice::PdmDevicePixelRatioF_EncodedB (since Qt 6.8) | 14 | Siehe PdmDevicePixelRatioF_EncodedA. |
Siehe auch metric() und devicePixelRatio().
Dokumentation der Mitgliedsfunktionen
[noexcept protected]
QPaintDevice::QPaintDevice()
Konstruiert ein Malgerät. Dieser Konstruktor kann nur von Unterklassen von QPaintDevice aufgerufen werden.
[virtual noexcept]
QPaintDevice::~QPaintDevice()
Zerstört das Malgerät und gibt die Ressourcen des Fenstersystems frei.
int QPaintDevice::colorCount() const
Gibt die Anzahl der verschiedenen Farben zurück, die für das Malgerät verfügbar sind. Wenn die Anzahl der verfügbaren Farben zu groß ist, um durch den Datentyp int dargestellt zu werden, wird stattdessen INT_MAX zurückgegeben.
int QPaintDevice::depth() const
Gibt die Bittiefe (Anzahl der Bitebenen) des Malgeräts zurück.
qreal QPaintDevice::devicePixelRatio() const
Gibt das Pixelverhältnis für das Gerät zurück.
Übliche Werte sind 1 für Displays mit normaler Pixeldichte und 2 für "Retina"-Displays mit hoher Pixeldichte.
qreal QPaintDevice::devicePixelRatioF() const
Gibt das Gerätepixelverhältnis für das Gerät als Fließkommazahl zurück.
int QPaintDevice::height() const
Gibt die Höhe des Malgeräts in Standardkoordinatensystemeinheiten zurück (z. B. Pixel für QPixmap und QWidget).
Siehe auch heightMM().
int QPaintDevice::heightMM() const
Gibt die Höhe des Malgeräts in Millimetern zurück. Aufgrund von Plattformbeschränkungen ist es möglicherweise nicht möglich, mit dieser Funktion die tatsächliche physische Größe eines Widgets auf dem Bildschirm zu bestimmen.
Siehe auch height().
int QPaintDevice::logicalDpiX() const
Gibt die horizontale Auflösung des Geräts in Dots per Inch zurück, die bei der Berechnung der Schriftgröße verwendet wird. Für X11 ist dies in der Regel die gleiche, wie sie von widthMM() berechnet werden kann.
Beachten Sie, dass, wenn logicalDpiX() nicht mit physicalDpiX() übereinstimmt, die entsprechende QPaintEngine die Zuordnung der Auflösung vornehmen muss.
Siehe auch logicalDpiY() und physicalDpiX().
int QPaintDevice::logicalDpiY() const
Gibt die vertikale Auflösung des Geräts in Dots per Inch zurück, die bei der Berechnung der Schriftgröße verwendet wird. Für X11 ist dies in der Regel die gleiche, die mit heightMM() berechnet werden kann.
Beachten Sie, dass, wenn logicalDpiY() nicht mit physicalDpiY() übereinstimmt, die entsprechende QPaintEngine die Zuordnung der Auflösung vornehmen muss.
Siehe auch logicalDpiX() und physicalDpiY().
[virtual protected]
int QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const
Gibt die metrischen Informationen für das angegebene Malgerät metric zurück.
Siehe auch PaintDeviceMetric.
[pure virtual]
QPaintEngine *QPaintDevice::paintEngine() const
Gibt einen Zeiger auf die Paint-Engine zurück, die zum Zeichnen auf dem Gerät verwendet wird.
bool QPaintDevice::paintingActive() const
Gibt true
zurück, wenn das Gerät gerade bemalt wird, d. h. jemand hat QPainter::begin(), aber noch nicht QPainter::end() für dieses Gerät aufgerufen; andernfalls wird false
zurückgegeben.
Siehe auch QPainter::isActive().
int QPaintDevice::physicalDpiX() const
Gibt die horizontale Auflösung des Geräts in Dots per Inch zurück. Beim Drucken zum Beispiel bezieht sich diese Auflösung auf die physische Auflösung des Druckers. Der logische DPI hingegen bezieht sich auf die Auflösung, die von der aktuellen Paint Engine verwendet wird.
Beachten Sie, dass, wenn physicalDpiX() nicht mit logicalDpiX() übereinstimmt, die entsprechende QPaintEngine die Zuordnung der Auflösung vornehmen muss.
Siehe auch physicalDpiY() und logicalDpiX().
int QPaintDevice::physicalDpiY() const
Gibt die horizontale Auflösung des Geräts in Dots per Inch zurück. Beim Drucken zum Beispiel bezieht sich diese Auflösung auf die physische Auflösung des Druckers. Der logische DPI hingegen bezieht sich auf die Auflösung, die von der aktuellen Paint Engine verwendet wird.
Beachten Sie, dass, wenn der physicalDpiY() nicht mit dem logicalDpiY() übereinstimmt, die entsprechende QPaintEngine die Zuordnung der Auflösung vornehmen muss.
Siehe auch physicalDpiX() und logicalDpiY().
int QPaintDevice::width() const
Gibt die Breite des Malgeräts in Standardkoordinatensystemeinheiten zurück (z. B. Pixel für QPixmap und QWidget).
Siehe auch widthMM().
int QPaintDevice::widthMM() const
Gibt die Breite des Malgeräts in Millimetern zurück. Aufgrund von Plattformbeschränkungen ist es möglicherweise nicht möglich, mit dieser Funktion die tatsächliche physische Größe eines Widgets auf dem Bildschirm zu bestimmen.
Siehe auch width().
© 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.