Change the way categories are added
This commit is contained in:
parent
a31f754cfd
commit
37bc515712
@ -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__":
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user