Ho iniziato ad imparare Qt4 Model/View Programming e ho una domanda per principianti.Colonna virtuale in QTableView?
devo semplice applicazione che mostrano tabella sqlite in QTableView
:
class Model(QtSql.QSqlTableModel):
def __init__(self, parent=None):
super(Model, self).__init__(parent)
self.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange)
self.setTable("test")
self.select()
class App(QtGui.QMainWindow):
def __init__(self, model):
QtGui.QMainWindow.__init__(self)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.tableView.setModel(model)
if __name__ == "__main__":
myDb = QtSql.QSqlDatabase.addDatabase("QSQLITE")
myDb.setDatabaseName("test.db")
if not myDb.open():
print 'FIXME'
model = Model()
app = QtGui.QApplication(sys.argv)
window = App(model)
window.show()
sys.exit(app.exec_())
Ecco come banca dati si presenta come:
sqlite> create table test (a INTEGER, b INTEGER, c STRING);
sqlite> insert into test VALUES(1, 2, "xxx");
sqlite> insert into test VALUES(6, 7, "yyy");
Così sto ottenendo qualcosa di simile:
+---+---+-----+
| a | b | c |
+---+---+-----+
| 1 | 2 | xxx |
+---+---+-----+
| 6 | 7 | yyy |
+---+---+-----+
È possibile modificare Model
da avere in QTableView
qualcosa come la colonna virtuale? Ad esempio qualcosa come:
+---+---+-----+-----+
| a | b | sum | c |
+---+---+-----+-----+
| 1 | 2 | 3 | xxx |
+---+---+-----+-----+
| 6 | 7 | 13 | yyy |
+---+---+-----+-----+
O forse dovrei farlo in qualche altro modo?
Grazie per questo esempio. Funziona bene! – Adam