MaratD
И данные в представлениях могут быть разные. Например, в одном представлении ФАМИЛИИ, а в другом ДАТА РОЖДЕНИЯ?
Ты можешь эти данные не из базы брать, а прямо внутри модели создавать. А представление будет их отображать, не зная, откуда они взяты. Модель их просто передаёт представлению, когда представление запрашивает их у модели.
Вот пример, где одна модель подключена к нескольким представлениям:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PyQt4 import QtGui, QtCore
import sys
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
model = QtGui.QStringListModel(self)
strings = QtCore.QStringList(['abc1', 'def2', 'ghi3'])
model.setStringList(strings)
view = QtGui.QListView(self)
view.setModel(model)
combo = QtGui.QComboBox(self)
combo.setModel(model)
tree = QtGui.QTreeView(self)
tree.setModel(model)
layout = QtGui.QHBoxLayout(self)
layout.addWidget(view)
layout.addWidget(combo)
layout.addWidget(tree)
self.setLayout(layout)
self.setGeometry(300, 300, 400, 300)
self.setWindowTitle('Model')
self.show()
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()