Sziasztok!
Qt4 programocska írásakor a következő problémába ütköztem:
Akarok egy olyan saját TextEdit osztályt létrehozni, ami úgy működne, hogy figyelem, hogy írt-e be valamit, és ha igen akkor egy bizonyos algoritmus alapján eldönteném, hogy hol kell pirosra színezni a szöveget. (A piros rész jelentené, hogy hol hibás már a bevitt szöveg.)
Mivel kezdő vagyok. Lefőttem. Szegmens hibával leáll a programom.
A saját TextEdit osztályom így néz ki:
class QRegExpValidator;
class QpjCheckTextEdit : public QTextEdit
{
Q_OBJECT
public:
QpjCheckTextEdit(QWidget* parent = 0);
private slots:
void formatText();
private:
QRegExpValidator* validator;
};
QpjCheckTextEdit::QpjCheckTextEdit(QWidget* parent)
: QTextEdit(parent)
{
QRegExp regExp;
validator = new QRegExpValidator(regExp, this);
QString pattern("[A-Za-z][1-9][0-9]{0,2}");
regExp.setPattern(pattern);
connect(this->document(), SIGNAL(contentsChanged()),
this, SLOT (formatText())
);
setText("Hello <font color=red>World!</font>");
}
void QpjCheckTextEdit::formatText()
{
insertPlainText(" not OK ");
}
Az igazi tervem, az az hogy engedek beírni mindent, de pirossal kiszínezném, onnan a szöveget, ahonnan már a bevitt minta szerint rossz. A példában csak próbáltam egyáltalán beszúrni valamit a már meglévő szöveghez, ha a felhasználó módosít valamit a szövegen.
Mit kellene tennem, hogy közelebb jussak a megoldáshoz?