Bonjour,
Comment pourrais je imposer un masque à la ligne entrée par un utilisateur dans un QTextEdit de telle façon que l'utilisateur doit entrer une donnée valide?
La donné valide est de type adresse ip ou adresse MAC.
En fait, je dispose d'un QTableWidget telles que certaines de ces cellules sont de type personnalisé TextEditIPView qui hérite de QTextEdit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "TextEditIPView.h"
 
#include <iostream.h>
 
TextEditIPView::TextEditIPView(QWidget *parent) :
    QTextEdit(parent) {
    connect(this, SIGNAL(textChanged()), this, SLOT(SetInputMask()));
}
 
void TextEditIPView::dragEnterEvent(QDragEnterEvent *event) {
    if (event->mimeData()->hasFormat("text/plain")) {
        event->acceptProposedAction();
    }
}
 
void TextEditIPView::dropEvent(QDropEvent *event) {
    const QMimeData *data = event->mimeData();
    QWidget* source = event->source();
    if (data->hasText()) {
        XbelTree* xbel = (XbelTree *) (source);
        QString p = xbel->parent(data->text());
        if ((p == tr("IPAddressRange")) || (p == tr("IPAddressTable")) || (p
                == tr("IPAddress")) || (p == tr("Network"))) {
            append(data->text());
            event->accept();
        }
    } else
        event->ignore();
}
 
void TextEditIPView::SetInputMask() {
    QRegExpValidator * ip = new QRegExpValidator(
            *(AddressCheck::ApplyrxIPMask()),this);
    QRegExpValidator * mac = new QRegExpValidator(
            *(AddressCheck::ApplyrxMACMask()),this);
    QString text;
    text = this->toPlainText();
    QStringList List = text.split("\n");
    QString word;
    int length;
    length = List.length();
    word = List.at(List.length() - 1);
    this->moveCursor(QTextCursor::End);
 
}