def createView(title, model): view = QtGui.QTableView() view.setModel(model) view.setItemDelegate(QtSql.QSqlRelationalDelegate(view)) view.setWindowTitle(title) return view
def __init__(self, model, tabName, parent=None): super(TableBase, self).__init__(parent) self.name = tabName self.view = QtGui.QTableView() self.view.setModel(model) self.view.setItemDelegateForColumn(0, AutoIncrement(self.view)) self.view.setSelectionBehavior(QtGui.QTableView.SelectRows) self.view.setAlternatingRowColors(True) self.view.setSortingEnabled(True) self.view.setItemDelegate(QtSql.QSqlRelationalDelegate(self.view)) ##Секция кнопок и их связей self.insertButton = QtGui.QPushButton(u"Вставить") self.insertButton.clicked.connect(self.insert) self.removeButton = QtGui.QPushButton(u"Удалить") self.removeButton.clicked.connect(self.remove) self.updateButton = QtGui.QPushButton(u"Обновить") self.updateButton.clicked.connect(self.update) self.saveButton = QtGui.QPushButton(u"Сохранить") self.saveButton.clicked.connect(self.save) self.undoButton = QtGui.QPushButton(u"Отменить") self.undoButton.clicked.connect(self.undo) self.popMenu = QtGui.QMenu(self.view) self.popMenu.addAction(u"Вставить", self.insert) self.popMenu.addAction(u"Удалить", self.remove) self.popMenu.addSeparator() self.popMenu.addAction(u"Обновить", self.update) self.popMenu.addAction(u"Сохранить", self.save) self.popMenu.addAction(u"Отменить", self.undo) self.view.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.connect( self.view, QtCore.SIGNAL("customContextMenuRequested(const QPoint &)"), self.onContextMenu) viewselectionModel = self.view.selectionModel() viewselectionModel.selectionChanged.connect(self.updateActions) self.view.model().dataChanged.connect(self.dataChanged) self.hasUndo = False ##Сетка объектов на экране buttonsLayout = QtGui.QHBoxLayout() buttonsLayout.addWidget(self.insertButton) buttonsLayout.addWidget(self.removeButton) buttonsLayout.addStretch(1) buttonsLayout.addWidget(self.updateButton) buttonsLayout.addWidget(self.saveButton) buttonsLayout.addWidget(self.undoButton) self.mainLayout = QtGui.QVBoxLayout(self) self.mainLayout.addWidget(self.view) self.mainLayout.addLayout(buttonsLayout, 1) self.readSettings() self.updateActions()