Advertisement
Guest User

Untitled

a guest
Mar 6th, 2021
704
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.83 KB | None | 0 0
  1. from PyQt5 import uic, QtWidgets, QtGui, QtCore, Qt
  2. from PyQt5.QtGui import QStandardItemModel, QStandardItem
  3. from PyQt5.QtWidgets import QComboBox, QVBoxLayout, QTableWidgetItem, QDateEdit, QStyledItemDelegate,QItemDelegate, QAbstractItemView, QWidget, QApplication
  4. from PyQt5.QtCore import QDate, QTime, Qt, QDateTime, QSortFilterProxyModel
  5. from PyQt5.QtCore import pyqtSlot
  6. import sys
  7. import sqlite3
  8. import datetime
  9. from datetime import datetime, date, timedelta
  10. import sys
  11.  
  12. class combobox(QComboBox):
  13.     def __init__(self, parent):
  14.         super().__init__(parent)
  15.         #self.setStyleSheet('font-size: 25px')
  16.         self.addItems(['Débito', 'Crédito'])
  17.         self.currentIndexChanged.connect(self.getComboValue)
  18.  
  19.     def getComboValue(self):
  20.         print(self.currentText())
  21.         return self.currentText()
  22.  
  23.  
  24. class App(QWidget):
  25.     def __init__(self):
  26.         super().__init__()
  27.  
  28.         self.tela = uic.loadUi('gui.ui', self)
  29.         self.setWindowTitle('----BUDGET---- rev0.1')
  30.         self.listar.clicked.connect(Listar.tela)
  31.         self.update.clicked.connect(update)
  32.         self.btn_inserir.clicked.connect(insert)
  33.  
  34.         tipodb = []
  35.         dates = []
  36.         crebito = ['Débito', 'Crédito']
  37.  
  38.         banco = sqlite3.connect(database='budget1.db')
  39.  
  40.         cursor = banco.cursor()
  41.         cursortipo = banco.cursor()
  42.         cursordate = banco.cursor()
  43.  
  44.         cursor.execute("SELECT * FROM b1")
  45.         cursortipo.execute("SELECT tipo FROM b1")
  46.         cursordate.execute("SELECT date FROM b1")
  47.  
  48.         dados_lidos = cursor.fetchall()
  49.         dados_tipo = cursortipo.fetchall()
  50.         dados_date = cursordate.fetchall()
  51.  
  52.         self.filter_proxy_model = QSortFilterProxyModel()
  53.         i = len(dados_lidos)
  54.         self.model = QStandardItemModel(i, 6)
  55.         #self.model.setHorizontalHeaderLabels(['ID', 'Data', 'Descrição', 'Valor', 'Tipo'])
  56.  
  57.         for rows in range(0, len(dados_lidos)):
  58.             tipodb.append(dados_tipo[rows][0])
  59.             dates.append(dados_date[rows][0])
  60.             for columns in range(0, 5):
  61.                 item = QStandardItem(str(dados_lidos[rows][columns]))
  62.                 self.model.setItem(rows, columns, item)
  63.  
  64.         self.filter_proxy_model.setSourceModel(self.model)
  65.         self.filter_proxy_model.setFilterCaseSensitivity(Qt.CaseInsensitive)
  66.         self.filter_proxy_model.setFilterKeyColumn(-1)
  67.         self.tela.searchBox.textChanged.connect(self.filter_proxy_model.setFilterRegExp)
  68.         self.tela.janelao.setModel(self.filter_proxy_model)
  69.         self.tela.janelao.setColumnWidth(0, 30)
  70.         self.tela.janelao.setColumnWidth(1, 82)
  71.         self.tela.janelao.setColumnWidth(2, 180)
  72.         self.tela.janelao.setColumnWidth(3, 40)
  73.         self.tela.janelao.setColumnWidth(4, 63)
  74.  
  75.         for row in range(len(dados_lidos)):
  76.             combo = combobox(self)
  77.             index_combo = self.tela.janelao.model().index(row, 5)
  78.             self.tela.janelao.setIndexWidget(index_combo, combo)
  79.             combo.setCurrentText(tipodb[row])
  80.            
  81.             dateedit = QtWidgets.QDateEdit(calendarPopup=True)
  82.             date = dates[row]
  83.             date = datetime.strptime(date, '%Y-%m-%d').date()
  84.             converted = QDate(date.year, date.month, date.day)
  85.             dateedit.setDate(converted)
  86.             index_date = self.tela.janelao.model().index(row, 1)  
  87.             self.tela.janelao.setIndexWidget(index_date, dateedit)
  88.  
  89.  
  90.  
  91. class Listar(App):
  92.     def __init__(self):
  93.         App.__init__(self)
  94.         pass
  95.     def tela(self):
  96.  
  97.         banco = sqlite3.connect(database='budget1.db')
  98.         cursor = banco.cursor()
  99.         cursor.execute("SELECT * FROM b1")
  100.         dados_lidos = cursor.fetchall()
  101.  
  102.         m = App()
  103.         m.model.setHorizontalHeaderLabels(['ID', 'Data', 'Descrição', 'Valor', 'Tipo'])
  104.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement