- All (478)
- jom (0)
- Qt Linguist (7)
- Qt Eclipse Integration (9)
- Qt Designer (7)
- Qt Creator (4)
- Qt build system: qmake (31)
- Qt build system: configure (3)
- Qt Assistant (5)
- Printing (4)
- Porting from Qt 3 to Qt 4 (1)
- Plugins (7)
- Qt Visual Studio AddIn (2)
- Qt/MFC Migration (2)
- QtScript (3)
- MDI (2)
- XML (1)
- Widgets (22)
- WebKit (5)
- Tools and Containers (2)
- Threads (2)
- Text Handling (10)
- SQL (6)
- QtTest (1)
- QtService (1)
- Platform: Windows (49)
- Platform: Unix (16)
- Platform: Mac OS X (18)
- Image Formats (2)
- I/O (2)
- Graphicsview (8)
- Font handling (9)
- Event System (18)
- Drag and Drop (4)
- Dialogs (6)
- Desktop integration (3)
- ActiveQt (3)
- Itemviews (60)
- Layout (4)
- Qt Quick (10)
- Qt SDK (1)
- Licensing (2)
- Platform: Embedded Linux (38)
- Painting (32)
- OpenGL (4)
- Object Model (6)
- Network (5)
- Multimedia (3)
- Miscellanous (23)
- Main Window (19)
- Look and Feel (23)
- Development (0)
- Getting Involved (0)
- Routines (0)
I can still insert numbers outside the range specified with a QDoubleValidator on a QLineEdit, is this a bug?
The validator will return an Intermediate [doc.qt.nokia.com] value for text that is a double but outside the range. The line edit will accept the intermediate values since it means that only a bit of editing is required to fix the value. This is because you might want to do something like pasting a number with 10 decimals with a validator that only allows 2 and then remove some of them.
The example below reimplements validate() [qt.nokia.com] to make the validator more strict:
- #include <qapplication.h>
- #include <qmainwindow.h>
- #include <qvalidator.h>
- #include <qlineedit.h>
- {
- public:
- parent = 0, const char* name = 0 )
- {}
- {
- if ( input.isEmpty() || input == "." )
- return Intermediate;
- return Invalid;
- }
- return Acceptable;
- }
- };
- {
- Q_OBJECT
- public:
- {
- setCentralWidget( edit );
- edit->setValidator( new MyDoubleValidator( 0.0, 1.0, 3, edit ) );
- }
- };
- #include "main.moc"
- int main( int argc, char **argv )
- {
- Widget w;
- w.show();
- return a.exec();
- }

2 comments
July 7, 2010
Lab Rat
to accept negative numbers one should replace:
with:
March 22, 2011
Lab Rat
I changed to the following to allow either positive or negative, depending on the set bounds: