Seite 1 von 1

QLineEdit mit QRegExp: Warum blauer Rand um Editfeld?

Verfasst: 22. September 2014 18:56
von mireiner
Hallo,

bin QT Neuling und arbeite unter Windows 7 mit Qt 5.3.2 und Qt Creator.

In einem Dialog ist ein QLineEdit Feld. Nachdem letzterem ein QRegExp Pattern zugewiesen wurde, erscheint bei Ausführung des Dialogs ein blasses blaues Rechteck im Editfeld.

Code: Alles auswählen

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);

    QRegExp rx("[A-Z]{1,7}");
    QValidator *validator = new QRegExpValidator(rx, ui->NameEdit);

    //QLineEdit *edit -> in Dialog.h deklariert
    edit = new QLineEdit(ui->NameEdit);
    edit->setValidator(validator);
}
Dialog.png
Dialog.png (5.09 KiB) 3912 mal betrachtet
Was hat dieses blaue Rechteck zu bedeuten und was ist zu tun, damit es nicht mehr erscheint?

Grüße,
Bernd

Re: QLineEdit mit QRegExp: Warum blauer Rand um Editfeld?

Verfasst: 22. September 2014 22:02
von veeman
Das GUI hast du im Creator zussamengeklickt!?

Dann erstellst du mit der folgenden Zeile ein QLinEdit innerhalb eines QLineEdits:

Code: Alles auswählen

edit = new QLineEdit(ui->NameEdit);
edit->setValidator(validator);
Ein einfaches setzen des Validators reicht aus.

Code: Alles auswählen

ui->NameEdit->setValidator(validator);

Re: QLineEdit mit QRegExp: Warum blauer Rand um Editfeld?

Verfasst: 22. September 2014 23:07
von mireiner
Hallo Veeman,

ja, die Dialogbox mit dem QLineEdit Eingabefeld wurde mit dem Designer von QT Creator v3.2.1 erzeugt.

Habe den Code nach Deinen Vorgaben geändert und es funktioniert jetzt einwandfrei - das war die Lösung!

Als Anfänger versuche ich die Bedienungsoberfläche meines Programms der Einfachheit halber so weit wie möglich im QT Designer zu erstellen. Bin aber immer noch unsicher, falls ich einmal selbst manuell Code hinzufügen muss, wie in diesem Fall.

Danke für die Hilfe!

Grüße,
Bernd