Change the way categories are added

This commit is contained in:
Andreas Tsouchlos 2024-01-03 16:09:57 +01:00
parent a31f754cfd
commit 37bc515712
2 changed files with 28 additions and 13 deletions

View File

@ -7,13 +7,13 @@ from PyQt6.QtWidgets import QApplication
from banking_breakdown.ui.generated_wrapper import GeneratedWindowWrapper
def show_main_window(ui_file, categories: typing.Sequence[str] = None,
def show_main_window(categories: typing.Sequence[str] = None,
df: pd.DataFrame = None):
if categories is None:
categories = []
app = QApplication(sys.argv)
window = GeneratedWindowWrapper(ui_file, categories)
window = GeneratedWindowWrapper()
if categories is not None:
window.add_categories(categories)
if df is not None:
window.set_statement_data(df)
@ -30,7 +30,7 @@ def main():
df = get_stripped_statement("../../res/banking_statement_2023.csv")
show_main_window("../../res/main_window.ui", categories, df)
show_main_window(categories, df)
if __name__ == "__main__":

View File

@ -1,4 +1,5 @@
import typing
from functools import partial
import pandas as pd
from PyQt6.QtWidgets import QMainWindow, QTableView
@ -61,27 +62,41 @@ class PandasModel(QtCore.QAbstractTableModel):
class GeneratedWindowWrapper(QMainWindow):
def __init__(self, ui_file: str, categories: typing.Sequence):
def __init__(self):
super(GeneratedWindowWrapper, self).__init__()
self._window = Ui_MainWindow()
self._window.setupUi(self)
# Set up window
# Set window behavior
self._window.statementTableView.setSelectionBehavior(
QTableView.SelectionBehavior.SelectRows)
self._set_categories(categories)
# Populate categories
def _set_categories(self, categories: typing.Sequence[str]):
model = QtGui.QStandardItemModel()
self._window.categoryListView.setModel(model)
self._category_model = QtGui.QStandardItemModel()
self._window.categoryListView.setModel(self._category_model)
# Onclick handlers
self._window.createCategoryButton.clicked.connect(
self._handle_create_click)
def add_categories(self, categories: typing.Sequence[str]):
for category in categories:
item = QtGui.QStandardItem(category)
model.appendRow(item)
self._category_model.appendRow(item)
def set_statement_data(self, df: pd.DataFrame):
model = PandasModel(df)
self._window.statementTableView.setModel(model)
def _handle_create_click(self):
self.add_categories(['asdf'])
def _handle_delete_click(self):
pass
def _handle_apply_click(self):
pass