From 2901badfe5b3a7edb1f11eb4c0be4f8ceaf6b50d Mon Sep 17 00:00:00 2001 From: ccppi Date: Fri, 26 Jul 2024 14:19:17 +0200 Subject: [PATCH] working color, but update from proxy does not change in database --- lib/gui.py | 46 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/lib/gui.py b/lib/gui.py index 32d50bc..6f095a1 100644 --- a/lib/gui.py +++ b/lib/gui.py @@ -1,6 +1,6 @@ -from PySide6.QtWidgets import QApplication, QWidget, QMainWindow, QTableWidget, QVBoxLayout, QTableWidgetItem, QPushButton, QHBoxLayout, QTableView, QLineEdit, QDialog, QLabel, QTextEdit, QCheckBox, QComboBox +from PySide6.QtWidgets import QApplication, QWidget, QMainWindow, QTableWidget, QVBoxLayout, QTableWidgetItem, QPushButton, QHBoxLayout, QTableView, QLineEdit, QDialog, QLabel, QTextEdit, QCheckBox, QComboBox, QStyledItemDelegate from PySide6.QtWebEngineWidgets import QWebEngineView -from PySide6.QtCore import QUrl,Qt,QSortFilterProxyModel, qDebug, QSize,QObject,QThread,Signal +from PySide6.QtCore import QUrl,Qt,QSortFilterProxyModel, qDebug, QSize,QObject,QThread,Signal,QAbstractTableModel from PySide6.QtSql import QSqlDatabase, QSqlTableModel, QSqlQueryModel, QSqlQuery from PySide6 import QtGui from db import addFineFilter @@ -12,13 +12,33 @@ DBFILE = "../db/sqlite3.db" Cantons = ["AG","ZH","BE","SG","SO"] -class TableModel(QAbstractTableModel): - def __init__(self, data): - super(TableModel, self).__init__() - self._data = data - def data(self, index, role): - if role == Qt.BackgroundRole: - return QtGui.QColor('#9C0006') +class ColorDelegate(QStyledItemDelegate): + currentRow = 0 + starred = 0 + def initStyleOption(self,option,index): + super().initStyleOption(option,index) + data = index.data() + + try: + value = float(data) + except: + print("error not an integer") + else: + print("data:",data) + self.currentRow = index.row() + print("row: ",self.currentRow) + if value == 1: + self.starred = 1 + #option.backgroundBrush = QtGui.QColor("green") + else: + self.starred = 0 + #option.backgroundBrush = QtGui.QColor("grey") + if self.starred == 1: + option.backgroundBrush = QtGui.QColor("red") + else: + option.backgroundBrush = QtGui.QColor("white") + + class ValidationWorker(QObject): finished = Signal() @@ -70,6 +90,10 @@ class MainWindow(QMainWindow): self.view = QTableView() self.view.setModel(self.model) + + delegate = ColorDelegate(self.view) + self.view.setItemDelegate(delegate) + self.setProxyViewSettings() self.view.clicked.connect(self.cell_clicked) @@ -193,8 +217,8 @@ class MainWindow(QMainWindow): self.model.setTable("") self.model.setQuery(cmd +" ;") - self.proxymodel2 = QSortFilterProxyModel(self) - self.proxymodel2.setSourceModel(self.model) + #self.proxymodel2 = QSortFilterProxyModel(self) + #self.proxymodel2.setSourceModel(self.model) self.view.setModel(self.proxymodel2) self.setProxyViewSettings() class PWPrompt(QDialog):