diff options
Diffstat (limited to 'python/pyqt/examples3/SQL/sqltable4.py')
-rwxr-xr-x | python/pyqt/examples3/SQL/sqltable4.py | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/python/pyqt/examples3/SQL/sqltable4.py b/python/pyqt/examples3/SQL/sqltable4.py deleted file mode 100755 index 4fa6ed06..00000000 --- a/python/pyqt/examples3/SQL/sqltable4.py +++ /dev/null @@ -1,118 +0,0 @@ -#!/usr/bin/env python - -#**************************************************************************** -#** $Id$ -#** -#** Copyright (C) 1992-1998 Troll Tech AS. All rights reserved. -#** -#** This file is part of an example program for PyQt. This example -#** program may be used, distributed and modified without limitation. -#** -#*****************************************************************************/ - -import sys -from qt import * -from qtsql import * - -from dbconnect import createConnection - -TRUE = 1 -FALSE = 0 - -class CustomTable(QDataTable): - def __init__(self, cursor, autoPopulate = FALSE, parent = None, name = None): - QDataTable.__init__(self, cursor, autoPopulate, parent, name) - - def paintField(self, p, field, cr, b): - if not field: - return - fn = str(field.name()) - if fn in ("salary", "monsalary"): - v = field.value().toDouble() - if v < 0: - p.setPen(QColor("red")) - value = QString(u"%.2f \u20ac" % v) - #print unicode(value).encode("iso-8859-15") - p.drawText(2, 2, cr.width()-6, cr.height()-4, - Qt.AlignRight|Qt.AlignVCenter, value) - elif fn == "statusid": - query = QSqlQuery("SELECT name FROM status WHERE id=%s" % - field.value().toString()) - value = "" - if query.next(): - value = query.value(0).toString() - p.drawText(2, 2, cr.width()-4, cr.height()-4, - self.fieldAlignment(field), value) - else: - QDataTable.paintField(self, p, field, cr, b) - - -class StatusPicker(QComboBox): - def __init__(self, parent = None, name = None): - QComboBox.__init__(self, parent, name) - cur = QSqlCursor("status") - cur.select(cur.index("id")) - while cur.next(): - self.insertItem(cur.value("name").toString(), cur.value("id").toInt()) - - -class CustomSqlEditorFactory(QSqlEditorFactory): - def __init__(self): - QSqlEditorFactory.__init__(self) - - def createEditor(self, parent, field): - try: - if str(field.name()) == "statusid": - return StatusPicker(parent) - except AttributeError: - pass - return QSqlEditorFactory.createEditor(self, parent, field) - - -class StaffCursor(QSqlCursor): - def __init__(self): - QSqlCursor.__init__(self, "staff") - monSalary = QSqlFieldInfo("monsalary", QVariant.Double) - self.append(monSalary) - self.setCalculated(monSalary.name(), TRUE) - - def calculateField(self, name): - if str(name) == "monsalary": - return QVariant(self.value("salary").toDouble() / 12) - return QVariant(QString.null) - - -class Table(CustomTable): - def __init__(self): - #self.staffCursor = QSqlCursor("staff") - self.staffCursor = StaffCursor() - QDataTable.__init__(self, self.staffCursor) - self.propMap = QSqlPropertyMap() - self.editorFactory = CustomSqlEditorFactory() - self.propMap.insert("StatusPicker", "statusid") - self.installPropertyMap(self.propMap) - self.installEditorFactory(self.editorFactory) - for cn, ch in (("forename", "Forename"), - ("surname", "Surname" ), - ("salary", "Annual Salary"), - ("monsalary","Monthly Salary"), - ("statusid", "Status")): - self.addColumn(cn, ch) - self.order = QStringList("surname") - self.order.append("forename") - self.setSort(self.order) - self.refresh() - - -if __name__=='__main__': - app = QApplication(sys.argv) - #app.setFont(QFont("Verdana", 11)) - - if createConnection(): - t = Table() - app.setMainWidget(t) - t.resize(600, 250) - t.show() - app.exec_loop() - - |