Portál AbcLinuxu, 7. listopadu 2025 15:24
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.

Omlouvam se za velke zobecnovani. Osobni zkusenost mam jen s gtkmm, SDL (+OpenGL) a letmo s Xlib. Qt jsem nikdy nepouzival a o GDI jsem jen cetl.
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.