def createView(title, model): view = QtGui.QTableView() view.setModel(model) view.setItemDelegate(QtSql.QSqlRelationalDelegate(view)) view.setWindowTitle(title) return view
def create_table(self): self.tableWidget = QtGui.QTableView(self.centralwidget) self.tableWidget.setItemDelegate( QtSql.QSqlRelationalDelegate(self.tableWidget)) self.tableWidget.setSelectionMode(QtGui.QTableView.SingleSelection) self.tableWidget.setSelectionBehavior(QtGui.QTableView.SelectRows) self.tableWidget.resizeColumnsToContents() self.tableWidget.resizeRowsToContents() self.tableWidget.horizontalHeader().setStretchLastSection(True) self.model = QModel(self) self.tableWidget.setModel(self.model)
def __init__(self): super(Dialogo_Filtrar_Entes, self).__init__() self.dialogo = QtGui.QDialog() self.dialogo.setModal(True) self.dialogo.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.ui = Ui_Dialogo_Filtrar_Entes(self.dialogo) self.modeloBaseDatos = QtSql.QSqlRelationalTableModel(self, db) self.modeloBaseDatos.setTable("entes") self.modeloBaseDatos.setEditStrategy( QtSql.QSqlRelationalTableModel.OnFieldChange) #la segunda columna de entes es una clave foranea, especificamente idminsiterio de la tabla minsiterios y queremos #colocar en este modelo la columna nombre de esa tabla self.modeloBaseDatos.setRelation( 2, QtSql.QSqlRelation('ministerios', 'idministerio', 'nombre')) self.modeloBaseDatos.select() #Creando el modelo para filtrar data self.filtro = QtGui.QSortFilterProxyModel() self.filtro.setSourceModel(self.modeloBaseDatos) self.filtro.setFilterKeyColumn(1) #Se coloca el modelo del proxy en lugar del modelo de base de datos self.ui.tableView.setModel(self.filtro) self.ui.tableView.hideColumn(0) self.ui.tableView.hideColumn(2) self.ui.tableView.setItemDelegate( QtSql.QSqlRelationalDelegate(self.ui.tableView)) self.ui.tableView.setSortingEnabled(True) self.listaEntesFiltrados = [ ] #self.ui.tableView.selectionModel().selectedIndexes() #print(self.listaEntesFiltrados) #print("numero = " + str(self.filtro.rowCount())) for n in range(self.filtro.rowCount()): index = self.filtro.index(n, 1) self.listaEntesFiltrados.append(str(self.filtro.data(index))) self.ui.lineEdit.textChanged.connect(self.filtro.setFilterWildcard) self.ui.lineEdit.textChanged.connect(self.filtrarLista) self.ui.comboBox.currentIndexChanged.connect(self.cambiarFiltro)
def create_table(self): self.tableWidget = QtGui.QTableView(self.centralwidget) self.tableWidget.setItemDelegate( QtSql.QSqlRelationalDelegate(self.tableWidget)) self.tableWidget.setSelectionMode(QtGui.QTableView.SingleSelection) self.tableWidget.setSelectionBehavior(QtGui.QTableView.SelectRows) self.tableWidget.resizeColumnsToContents() self.tableWidget.resizeRowsToContents() self.tableWidget.horizontalHeader().setStretchLastSection(True) self.tableWidget.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.Fixed) self.tableWidget.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.Fixed) self.tableWidget.horizontalHeader().setResizeMode( 2, QtGui.QHeaderView.ResizeToContents) self.tableWidget.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) self.model = QModel(self) self.tableWidget.setModel(self.model)