37
37
# 1.0.7: added support for "Apply" button
38
38
# 1.0.6: code cleaning
39
39
40
- __version__ = '1.0.7 '
40
+ __version__ = '1.0.9 '
41
41
__license__ = __doc__
42
42
43
43
DEBUG = False
56
56
QPixmap , QTabWidget , QApplication , QStackedWidget ,
57
57
QDateEdit , QDateTimeEdit , QFont , QFontComboBox ,
58
58
QFontDatabase , QGridLayout )
59
- from PyQt4 .QtCore import (Qt , SIGNAL , SLOT , QSize , QString ,
59
+ from PyQt4 .QtCore import (Qt , SIGNAL , SLOT , QObject , QSize ,
60
60
pyqtSignature , pyqtProperty )
61
- from datetime import date
61
+ import datetime
62
62
63
63
64
64
class ColorButton (QPushButton ):
@@ -102,7 +102,8 @@ def text_to_qcolor(text):
102
102
Avoid warning from Qt when an invalid QColor is instantiated
103
103
"""
104
104
color = QColor ()
105
- if isinstance (text , QString ):
105
+ if isinstance (text , QObject ):
106
+ # actually a QString, which is not provided by the new PyQt4 API:
106
107
text = str (text )
107
108
if not isinstance (text , (unicode , str )):
108
109
return color
@@ -272,24 +273,19 @@ def setup(self):
272
273
field .setCurrentIndex (selindex )
273
274
elif isinstance (value , bool ):
274
275
field = QCheckBox (self )
275
- if value :
276
- field .setCheckState (Qt .Checked )
277
- else :
278
- field .setCheckedState (Qt .Unchecked )
279
-
276
+ field .setCheckState (Qt .Checked if value else Qt .Unchecked )
280
277
elif isinstance (value , float ):
281
278
field = QLineEdit (repr (value ), self )
282
279
elif isinstance (value , int ):
283
280
field = QSpinBox (self )
281
+ field .setRange (- 1e9 , 1e9 )
284
282
field .setValue (value )
285
- field .setMaximum (1e9 )
286
- elif isinstance (value , date ):
287
- if hasattr (value , 'hour' ):
288
- field = QDateTimeEdit (self )
289
- field .setDateTime (value )
290
- else :
291
- field = QDateEdit (self )
292
- field .setDate (value )
283
+ elif isinstance (value , datetime .datetime ):
284
+ field = QDateTimeEdit (self )
285
+ field .setDateTime (value )
286
+ elif isinstance (value , datetime .date ):
287
+ field = QDateEdit (self )
288
+ field .setDate (value )
293
289
else :
294
290
field = QLineEdit (repr (value ), self )
295
291
self .formlayout .addRow (label , field )
@@ -318,11 +314,10 @@ def get(self):
318
314
value = float (field .text ())
319
315
elif isinstance (value , int ):
320
316
value = int (field .value ())
321
- elif isinstance (value , date ):
322
- if hasattr (value , 'hour' ):
323
- value = field .dateTime ().toPyDateTime ()
324
- else :
325
- value = field .date ().toPyDate ()
317
+ elif isinstance (value , datetime .datetime ):
318
+ value = field .dateTime ().toPyDateTime ()
319
+ elif isinstance (value , datetime .date ):
320
+ value = field .date ().toPyDate ()
326
321
else :
327
322
value = eval (str (field .text ()))
328
323
valuelist .append (value )
@@ -459,7 +454,7 @@ def fedit(data, title="", comment="", icon=None, parent=None, apply=None):
459
454
# Create a QApplication instance if no instance currently exists
460
455
# (e.g. if the module is used directly from the interpreter)
461
456
if QApplication .startingUp ():
462
- QApplication ([])
457
+ _app = QApplication ([])
463
458
464
459
dialog = FormDialog (data , title , comment , icon , parent , apply )
465
460
if dialog .exec_ ():
@@ -481,7 +476,8 @@ def create_datalist_example():
481
476
('font' , ('Arial' , 10 , False , True )),
482
477
('color' , '#123409' ),
483
478
('bool' , True ),
484
- ('datetime' , date (2010 , 10 , 10 )),
479
+ ('date' , datetime .date (2010 , 10 , 10 )),
480
+ ('datetime' , datetime .datetime (2010 , 10 , 10 )),
485
481
]
486
482
487
483
def create_datagroup_example ():
0 commit comments