Portál AbcLinuxu, 10. května 2025 02:12
Tak proč chcete GDI (což je grafické rozhraní Windows)?
Gtk+ nebo Qt nutně použít nemusíte, ale je to podstatně pohodlnější než používat přímo nízkoúrovňové knihovny.
velikost písmaQPainter
QFont font; font.setPixelSize(...); painter.setFont(font); painter.drawText(...);QtQuick
Text { id: prihlasovaciText font.pixelSize: ... text: "..." }
barvu, velikost podkladového obdélníku pod textemQPainter
QColor color(Qt::blue); painter.fillRect(QRect(0, 0, 100, 100), color);QtQuick
Rectangle { x: 0; y: 0; width: 100; height: 100 color: "blue" }
kliknutím do nějakého regionu je nutné změnit vykreslovaný text, například implicitně by bylo zobrazené např. "přihlášení - ok", po kliku by se zobrazovalo "přihlášení proběhlo v hhmm", v principu jde o zjištění zda-li vstupní souřadnice kliku (POINT) je v tomto prostoru měnitelnéhoQPushButton
QPushButton *button = new QPushButton("Klik"); connect(button, SIGNAL(clicked()), SLOT(osetriKliknutie())); void MojeOkno::osetriKliknutie() { ... }QtQuick
MouseArea { onClicked: prihlasovaciText.text = "Prihlaseny"; }
zjistit zda-li se zdrojový string "vleze" na celou šířku monitoruQPainter
QFontMetrics metrics(font); auto size = metrics.boundingRect("Text");QtQuick Vlastnosti width a height u elementu Text.
veškeré rozměry budou definovány v procentechQPainter Ošetrené programovo (
width() * percenta / 100) QtQuick
Rectangle { width: parent.width * precentualnaSirka / 100; x: parent.width * percentualnyPosun / 100; }
omezit blikání při vykreslování, využít doublebuffering (v gdi vykreslení do dočasné bitmapy)V Qt je double buffering automaticky zapnutý, netreba sa o to vôbec starať.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.