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
|
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):
|
df: pd.DataFrame = None):
|
||||||
if categories is None:
|
|
||||||
categories = []
|
|
||||||
|
|
||||||
app = QApplication(sys.argv)
|
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:
|
if df is not None:
|
||||||
window.set_statement_data(df)
|
window.set_statement_data(df)
|
||||||
@ -30,7 +30,7 @@ def main():
|
|||||||
|
|
||||||
df = get_stripped_statement("../../res/banking_statement_2023.csv")
|
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__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import typing
|
import typing
|
||||||
|
from functools import partial
|
||||||
|
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
from PyQt6.QtWidgets import QMainWindow, QTableView
|
from PyQt6.QtWidgets import QMainWindow, QTableView
|
||||||
@ -61,27 +62,41 @@ class PandasModel(QtCore.QAbstractTableModel):
|
|||||||
|
|
||||||
|
|
||||||
class GeneratedWindowWrapper(QMainWindow):
|
class GeneratedWindowWrapper(QMainWindow):
|
||||||
def __init__(self, ui_file: str, categories: typing.Sequence):
|
def __init__(self):
|
||||||
super(GeneratedWindowWrapper, self).__init__()
|
super(GeneratedWindowWrapper, self).__init__()
|
||||||
|
|
||||||
self._window = Ui_MainWindow()
|
self._window = Ui_MainWindow()
|
||||||
self._window.setupUi(self)
|
self._window.setupUi(self)
|
||||||
|
|
||||||
# Set up window
|
# Set window behavior
|
||||||
|
|
||||||
self._window.statementTableView.setSelectionBehavior(
|
self._window.statementTableView.setSelectionBehavior(
|
||||||
QTableView.SelectionBehavior.SelectRows)
|
QTableView.SelectionBehavior.SelectRows)
|
||||||
|
|
||||||
self._set_categories(categories)
|
# Populate categories
|
||||||
|
|
||||||
def _set_categories(self, categories: typing.Sequence[str]):
|
self._category_model = QtGui.QStandardItemModel()
|
||||||
model = QtGui.QStandardItemModel()
|
self._window.categoryListView.setModel(self._category_model)
|
||||||
self._window.categoryListView.setModel(model)
|
|
||||||
|
|
||||||
|
# Onclick handlers
|
||||||
|
|
||||||
|
self._window.createCategoryButton.clicked.connect(
|
||||||
|
self._handle_create_click)
|
||||||
|
|
||||||
|
def add_categories(self, categories: typing.Sequence[str]):
|
||||||
for category in categories:
|
for category in categories:
|
||||||
item = QtGui.QStandardItem(category)
|
item = QtGui.QStandardItem(category)
|
||||||
model.appendRow(item)
|
self._category_model.appendRow(item)
|
||||||
|
|
||||||
def set_statement_data(self, df: pd.DataFrame):
|
def set_statement_data(self, df: pd.DataFrame):
|
||||||
model = PandasModel(df)
|
model = PandasModel(df)
|
||||||
self._window.statementTableView.setModel(model)
|
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