Tôi bắt đầu học Qt4 Model/View Programming và tôi có câu hỏi mới bắt đầu.Cột ảo trong QTableView?
Tôi có ứng dụng đơn giản mà hiển thị bảng sqlite trong 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_())
đây như thế nào cơ sở dữ liệu trông giống như:
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");
Vì vậy, tôi nhận được một cái gì đó như:
+---+---+-----+
| a | b | c |
+---+---+-----+
| 1 | 2 | xxx |
+---+---+-----+
| 6 | 7 | yyy |
+---+---+-----+
Có thể sửa đổi Model
để có trong QTableView
giống như cột ảo? Ví dụ:
+---+---+-----+-----+
| a | b | sum | c |
+---+---+-----+-----+
| 1 | 2 | 3 | xxx |
+---+---+-----+-----+
| 6 | 7 | 13 | yyy |
+---+---+-----+-----+
Hoặc có lẽ tôi nên làm theo cách khác?
Cảm ơn bạn về ví dụ này. Nó hoạt động tốt! – Adam