Most tanulgatom a C++/Qt párost, és elakadtam egy apró problémában.
Van ugye a Qt4 által hozott számológép példa, ami lineedit-tel oldja meg a kijelzést. Na most én ezt elkezdtem átírni úgy, hogy QLCDNumber widgetet használjon.
Ahol elakadtam, az a decimális pont kijelzése. Mivel az eredeti példa közvetlen használta a lineedit text property-jét, így nem cachelt a háttérben stringbe. Így viszont nem tudom megmondani, hogy amikor a pont-ot beüti, akkor mi történjen.
A legnagyobb gondom a pont button eseményének a lekezelése.
Az eredeti (QLineEdit-es) kód ez:
Code:
void Calculator::pointClicked()
{
if (waitingForOperand)
display->setText(„0”);
if (!display->text().contains(„.”))
display->setText(display->text() + tr(„.”));
waitingForOperand = false;
}
Ugye itt ő ki tudja használni, hogy gyak. egy stringet macerál. A QLCDNumber viszont csak int és double értékeket tud visszaadni.
Valami ötlet kellene hogy mit tegyek…
Első ötletem az volt, hogy detektálom a sorvégi 0-t (ugye QString tmp = QString::number(display->value()); ), de ez elbukik azon, hogy ha véletlen másodszor nyomja meg a .-ot egy nulla után, akkor már gáz van.
legutóbbi hsz