#include <QtGui>
class QUppercaseValidator : public QValidator
{
public:
QUppercaseValidator(QObject *parent) : QValidator(parent) {}
virtual State validate(QString &s, int &) const { fixup(s); return Acceptable; }
virtual void fixup(QString &s) const { s = s.toUpper(); }
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QLineEdit *edit1 = new QLineEdit;
QLineEdit *edit2 = new QLineEdit;
QLabel *label = new QLabel;
edit2->setValidator(new QUppercaseValidator(edit2));
QObject::connect(edit1, SIGNAL(textChanged(QString)), edit2, SLOT(setText(QString)));
QObject::connect(edit2, SIGNAL(textEdited(QString)), label, SLOT(setText(QString)));
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(edit1);
layout->addWidget(edit2);
layout->addWidget(label);
w.setLayout(layout);
w.show();
return a.exec();
}