from PyQt5 import uic, QtWidgets, QtGui, QtCore, Qt from PyQt5.QtGui import QStandardItemModel, QStandardItem from PyQt5.QtWidgets import QComboBox, QVBoxLayout, QTableWidgetItem, QDateEdit, QStyledItemDelegate,QItemDelegate, QAbstractItemView, QWidget, QApplication from PyQt5.QtCore import QDate, QTime, Qt, QDateTime, QSortFilterProxyModel from PyQt5.QtCore import pyqtSlot import sys import sqlite3 import datetime from datetime import datetime, date, timedelta import sys class combobox(QComboBox): def __init__(self, parent): super().__init__(parent) #self.setStyleSheet('font-size: 25px') self.addItems(['Débito', 'Crédito']) self.currentIndexChanged.connect(self.getComboValue) def getComboValue(self): print(self.currentText()) return self.currentText() class App(QWidget): def __init__(self): super().__init__() self.tela = uic.loadUi('gui.ui', self) self.setWindowTitle('----BUDGET---- rev0.1') self.listar.clicked.connect(Listar.tela) self.update.clicked.connect(update) self.btn_inserir.clicked.connect(insert) tipodb = [] dates = [] crebito = ['Débito', 'Crédito'] banco = sqlite3.connect(database='budget1.db') cursor = banco.cursor() cursortipo = banco.cursor() cursordate = banco.cursor() cursor.execute("SELECT * FROM b1") cursortipo.execute("SELECT tipo FROM b1") cursordate.execute("SELECT date FROM b1") dados_lidos = cursor.fetchall() dados_tipo = cursortipo.fetchall() dados_date = cursordate.fetchall() self.filter_proxy_model = QSortFilterProxyModel() i = len(dados_lidos) self.model = QStandardItemModel(i, 6) #self.model.setHorizontalHeaderLabels(['ID', 'Data', 'Descrição', 'Valor', 'Tipo']) for rows in range(0, len(dados_lidos)): tipodb.append(dados_tipo[rows][0]) dates.append(dados_date[rows][0]) for columns in range(0, 5): item = QStandardItem(str(dados_lidos[rows][columns])) self.model.setItem(rows, columns, item) self.filter_proxy_model.setSourceModel(self.model) self.filter_proxy_model.setFilterCaseSensitivity(Qt.CaseInsensitive) self.filter_proxy_model.setFilterKeyColumn(-1) self.tela.searchBox.textChanged.connect(self.filter_proxy_model.setFilterRegExp) self.tela.janelao.setModel(self.filter_proxy_model) self.tela.janelao.setColumnWidth(0, 30) self.tela.janelao.setColumnWidth(1, 82) self.tela.janelao.setColumnWidth(2, 180) self.tela.janelao.setColumnWidth(3, 40) self.tela.janelao.setColumnWidth(4, 63) for row in range(len(dados_lidos)): combo = combobox(self) index_combo = self.tela.janelao.model().index(row, 5) self.tela.janelao.setIndexWidget(index_combo, combo) combo.setCurrentText(tipodb[row]) dateedit = QtWidgets.QDateEdit(calendarPopup=True) date = dates[row] date = datetime.strptime(date, '%Y-%m-%d').date() converted = QDate(date.year, date.month, date.day) dateedit.setDate(converted) index_date = self.tela.janelao.model().index(row, 1) self.tela.janelao.setIndexWidget(index_date, dateedit) class Listar(App): def __init__(self): App.__init__(self) pass def tela(self): banco = sqlite3.connect(database='budget1.db') cursor = banco.cursor() cursor.execute("SELECT * FROM b1") dados_lidos = cursor.fetchall() m = App() m.model.setHorizontalHeaderLabels(['ID', 'Data', 'Descrição', 'Valor', 'Tipo'])