Compare commits

..

2 Commits

Author SHA1 Message Date
8d660ea8c2 Reset sorting to normal 2024-01-05 13:15:33 +01:00
be3f3b604e Fix delete category 2024-01-05 13:12:42 +01:00
3 changed files with 18 additions and 9 deletions

View File

@ -41,11 +41,10 @@ class MainWindow(QMainWindow):
# Set up QTableView model
self._pandas_model = PandasModel(self)
self._proxyModel = QSortFilterProxyModel(self)
self._proxyModel.setSourceModel(self._pandas_model)
self._table_view.setModel(self._proxyModel)
self._proxyModel.setDynamicSortFilter(True)
self._proxyModel.setSortRole(Qt.ItemDataRole.EditRole)
self._proxy_model = QSortFilterProxyModel(self)
self._proxy_model.setSourceModel(self._pandas_model)
self._table_view.setModel(self._proxy_model)
self._proxy_model.setSortRole(Qt.ItemDataRole.EditRole)
# Set event handlers
@ -110,6 +109,9 @@ class MainWindow(QMainWindow):
def _update_categories_from_dataframe(self):
df = self._pandas_model.get_dataframe()
if 'category' not in df.columns:
df['category'] = [' '] * len(df.index)
df_categories = df['category'].unique()
current_categories = [self._list_widget.item(x).text() for x
in range(self._list_widget.count())]
@ -185,10 +187,15 @@ class MainWindow(QMainWindow):
f"Are you sure you want to delete"
f" category '{selected_item.text()}'?")
df = self._pandas_model.get_dataframe()
if 'category' not in df.columns:
df['category'] = [' '] * len(df.index)
if button == QMessageBox.StandardButton.Yes:
self._list_widget.takeItem(self._list_widget.row(selected_item))
df = self.get_statement_data()
df.loc[df['category'] == selected_item.text(), 'category'] = ' '
self._list_widget.takeItem(self._list_widget.row(selected_item))
self._pandas_model.set_dataframe(df)
def _handle_clear_click(self):
self._assign_category(' ')
@ -201,7 +208,6 @@ class MainWindow(QMainWindow):
df = self._pandas_model.get_dataframe()
df.loc[row_indices, 'category'] = category
self._pandas_model.set_dataframe(df)
def _handle_apply_click(self):

View File

@ -1,7 +1,7 @@
import numpy
import pandas as pd
from PyQt6 import QtCore
from PyQt6.QtCore import Qt, QModelIndex
from PyQt6.QtCore import Qt, QModelIndex, QSortFilterProxyModel
def _get_str_dataframe(df: pd.DataFrame) -> pd.DataFrame:

View File

@ -129,6 +129,9 @@
<property name="sortingEnabled">
<bool>true</bool>
</property>
<attribute name="horizontalHeaderShowSortIndicator" stdset="0">
<bool>true</bool>
</attribute>
<attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool>
</attribute>