From e22c4b8c9d17db366b17619d87249d6b50523382 Mon Sep 17 00:00:00 2001 From: Gene Dan Date: Wed, 29 Jan 2025 17:30:03 -0600 Subject: [PATCH] FEAT: Continue work on ratio selection widget. --- faslr/model/ratio.py | 55 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 4 deletions(-) diff --git a/faslr/model/ratio.py b/faslr/model/ratio.py index d62abc5..d9ebcec 100644 --- a/faslr/model/ratio.py +++ b/faslr/model/ratio.py @@ -1,22 +1,69 @@ """ Module that contains base classes for ratio selections, e.g., development factor or a priori loss ratio selections. """ +from __future__ import annotations + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from pandas import DataFrame + +from faslr.model.average import FAverageBox + +from PyQt6.QtCore import Qt + +from PyQt6.QtGui import QStandardItemModel from PyQt6.QtWidgets import ( - QWidget + QPushButton, + QWidget, + QVBoxLayout ) class FRatioSelectionWidget(QWidget): - def __init__(self): + def __init__( + self, + ratios: DataFrame = None, + averages: DataFrame = None + ): """ Containing widget for FRatioSelectionModel/View. """ super().__init__() - def open_average_box(self): + # Main layout. + self.layout = QVBoxLayout() + self.setLayout(self.layout) - pass + # Space above the table(s) where we can put auxiliary buttons, such as one to add averages. + self.tool_space = QWidget() + self.tool_layout = QVBoxLayout() + self.tool_space.setLayout(self.tool_layout) + self.add_average_button = QPushButton("Available Averages") + + # Dialog box to select averages. + self.average_box = FAverageBox(data=averages) + self.tool_layout.addWidget( + self.add_average_button, + alignment=Qt.AlignmentFlag.AlignRight + ) + self.layout.addWidget(self.tool_space) + self.add_average_button.clicked.connect(self.open_average_box) #noqa + + + def open_average_box(self): + + self.average_box.show() + + +class FRatioSelectionModel(QStandardItemModel): + def __init__( + self, + ratios: DataFrame + ): + super().__init__() + pass