com.trolltech.qt.gui
Class QRegExpValidator

java.lang.Object
  extended by com.trolltech.qt.internal.QSignalEmitterInternal
      extended by com.trolltech.qt.QSignalEmitter
          extended by com.trolltech.qt.QtJambiObject
              extended by com.trolltech.qt.core.QObject
                  extended by com.trolltech.qt.gui.QValidator
                      extended by com.trolltech.qt.gui.QRegExpValidator
All Implemented Interfaces:
QtJambiInterface

public class QRegExpValidator
extends QValidator

The QRegExpValidator class is used to check a string against a regular expression. QRegExpValidator uses a regular expression (regexp) to determine whether an input string is Acceptable , Intermediate , or Invalid . The regexp can either be supplied when the QRegExpValidator is constructed, or at a later time.

When QRegExpValidator determines whether a string is Acceptable or not, the regexp is treated as if it begins with the start of string assertion (^) and ends with the end of string assertion ($); the match is against the entire input string, or from the given position if a start position greater than zero is given.

If a string is a prefix of an Acceptable string, it is considered Intermediate . For example, "" and "A" are Intermediate for the regexp [A-Z][0-9] (whereas "_" would be Invalid ).

For a brief introduction to Qt's regexp engine, see QRegExp.

Example of use:

    // regexp: optional '-' followed by between 1 and 3 digits
    QRegExp rx = new QRegExp("-?\\d{1,3}");
    QValidator validator = new QRegExpValidator(rx, this);

    QLineEdit edit = new QLineEdit(this);
    edit.setValidator(validator);
Below we present some examples of validators. In practice they would normally be associated with a widget as in the example above.
    // integers 1 to 9999
    QRegExp rx = new QRegExp("[1-9]\\d{0,3}");
    // the validator treats the regexp as "^[1-9]\\d{0,3}$"
    QRegExpValidator v = new QRegExpValidator(rx, null);
    String s;
    int pos = 0;

    s = "0";     v.validate(new QValidator.QValidationData(s, pos));    // returns Invalid
    s = "12345"; v.validate(new QValidator.QValidationData(s, pos));    // returns Invalid
    s = "1";     v.validate(new QValidator.QValidationData(s, pos));    // returns Acceptable

    rx.setPattern("\\S+");            // one or more non-whitespace characters
    v.setRegExp(rx);
    s = "myfile.txt";  v.validate(new QValidator.QValidationData(s, pos)); // Returns Acceptable
    s = "my file.txt"; v.validate(new QValidator.QValidationData(s, pos)); // Returns Invalid

    // A, B or C followed by exactly five digits followed by W, X, Y or Z
    rx.setPattern("[A-C]\\d{5}[W-Z]");
    v.setRegExp(rx);
    s = "a12345Z"; v.validate(new QValidator.QValidationData(s, pos));        // Returns Invalid
    s = "A12345Z"; v.validate(new QValidator.QValidationData(s, pos));        // Returns Acceptable
    s = "B12";     v.validate(new QValidator.QValidationData(s, pos));        // Returns Intermediate

    // match most 'readme' files
    rx.setPattern("read\\S?me(\\.(txt|asc|1st))?");
    rx.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive);
    v.setRegExp(rx);
    s = "readme";      v.validate(new QValidator.QValidationData(s, pos)); // Returns Acceptable
    s = "README.1ST";  v.validate(new QValidator.QValidationData(s, pos)); // Returns Acceptable
    s = "read me.txt"; v.validate(new QValidator.QValidationData(s, pos)); // Returns Invalid
    s = "readm";       v.validate(new QValidator.QValidationData(s, pos)); // Returns Intermediate

See also:
QRegExp, QIntValidator, QDoubleValidator, and Settings Editor Example.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.trolltech.qt.gui.QValidator
QValidator.QValidationData, QValidator.State
 
Nested classes/interfaces inherited from class com.trolltech.qt.QSignalEmitter
QSignalEmitter.AbstractSignal, QSignalEmitter.PrivateSignal0, QSignalEmitter.PrivateSignal1, QSignalEmitter.PrivateSignal2, QSignalEmitter.PrivateSignal3, QSignalEmitter.PrivateSignal4, QSignalEmitter.PrivateSignal5, QSignalEmitter.PrivateSignal6, QSignalEmitter.PrivateSignal7, QSignalEmitter.PrivateSignal8, QSignalEmitter.PrivateSignal9, QSignalEmitter.Signal0, QSignalEmitter.Signal1, QSignalEmitter.Signal2, QSignalEmitter.Signal3, QSignalEmitter.Signal4, QSignalEmitter.Signal5, QSignalEmitter.Signal6, QSignalEmitter.Signal7, QSignalEmitter.Signal8, QSignalEmitter.Signal9
 
Nested classes/interfaces inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
com.trolltech.qt.internal.QSignalEmitterInternal.AbstractSignalInternal
 
Field Summary
 
Fields inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
currentSender
 
Constructor Summary
QRegExpValidator(QObject parent)
          Constructs a validator with a parent object that accepts any string (including an empty one) as valid.
QRegExpValidator(QRegExp rx, QObject parent)
          Constructs a validator with a parent object that accepts all strings that match the regular expression rx.
 
Method Summary
 QRegExp regExp()
          This property holds the regular expression used for validation.
 void setRegExp(QRegExp rx)
          This property holds the regular expression used for validation.
 
Methods inherited from class com.trolltech.qt.gui.QValidator
fixup, locale, setLocale, validate
 
Methods inherited from class com.trolltech.qt.core.QObject
childEvent, children, connectSlotsByName, customEvent, disposeLater, dumpObjectInfo, dumpObjectTree, dynamicPropertyNames, event, eventFilter, findChild, findChild, findChild, findChildren, findChildren, findChildren, findChildren, indexOfProperty, installEventFilter, isWidgetType, killTimer, moveToThread, objectName, parent, properties, property, removeEventFilter, setObjectName, setParent, setProperty, startTimer, timerEvent, toString, userProperty
 
Methods inherited from class com.trolltech.qt.QtJambiObject
dispose, disposed, equals, finalize, reassignNativeResources, tr, tr, tr
 
Methods inherited from class com.trolltech.qt.QSignalEmitter
blockSignals, disconnect, disconnect, signalsBlocked, signalSender, thread
 
Methods inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
__qt_signalInitialization
 
Methods inherited from class java.lang.Object
clone, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.trolltech.qt.QtJambiInterface
disableGarbageCollection, nativeId, nativePointer, reenableGarbageCollection, setJavaOwnership
 

Constructor Detail

QRegExpValidator

public QRegExpValidator(QObject parent)
Constructs a validator with a parent object that accepts any string (including an empty one) as valid.


QRegExpValidator

public QRegExpValidator(QRegExp rx,
                        QObject parent)
Constructs a validator with a parent object that accepts all strings that match the regular expression rx.

The match is made against the entire string; e.g. if the regexp is [A-Fa-f0-9]+ it will be treated as ^[A-Fa-f0-9]+$.

Method Detail

regExp

public final QRegExp regExp()
This property holds the regular expression used for validation. By default, this property contains a regular expression with the pattern .* that matches any string.


setRegExp

public final void setRegExp(QRegExp rx)
This property holds the regular expression used for validation. By default, this property contains a regular expression with the pattern .* that matches any string.