summaryrefslogtreecommitdiffstats
path: root/python/pyqt/examples3/SQL/sqltable4.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/pyqt/examples3/SQL/sqltable4.py')
-rwxr-xr-xpython/pyqt/examples3/SQL/sqltable4.py118
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()
-
-