QLineEdit mit QRegExp: Warum blauer Rand um Editfeld?

Alles rund um die Programmierung mit Qt
Antworten
mireiner
Beiträge: 8
Registriert: 20. September 2014 22:03

QLineEdit mit QRegExp: Warum blauer Rand um Editfeld?

Beitrag 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) 3911 mal betrachtet
Was hat dieses blaue Rechteck zu bedeuten und was ist zu tun, damit es nicht mehr erscheint?

Grüße,
Bernd
veeman
Beiträge: 280
Registriert: 3. Oktober 2012 01:43
Kontaktdaten:

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

Beitrag 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);
mireiner
Beiträge: 8
Registriert: 20. September 2014 22:03

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

Beitrag 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
Antworten