99import copy
1010import traceback
1111import time
12- from PyQt5 import QtCore , QtWidgets , QtGui
13- from qgis .PyQt .QtWidgets import QMessageBox , QTableWidgetItem
12+ from qgis .PyQt .QtCore import Qt , QSize
13+ from qgis .PyQt .QtGui import QStandardItem , QStandardItemModel , QBrush , QColor
14+
15+ from qgis .PyQt .QtWidgets import (QMessageBox , QWidget , QButtonGroup , QLabel , QLineEdit ,
16+ QRadioButton , QCheckBox , QGroupBox , QComboBox , QVBoxLayout )
1417from ..widgets .run_analyse import RunAnalyseDialog
1518from ..support_scripts .__init__ import isfloat , isint , TR
1619from ..support_scripts .add_field import AddField
@@ -48,8 +51,8 @@ def __init__(self: Self, parent_widget, tables_to_analyse: list[list[str]]) -> N
4851 self .tables = tables_to_analyse
4952 self .cb = []
5053 self .harvest_tbls = {}
51- self .scrollWidget = QtWidgets . QWidget ()
52- self .radio_group = QtWidgets . QButtonGroup ()
54+ self .scrollWidget = QWidget ()
55+ self .radio_group = QButtonGroup ()
5356 self .overlapping_tables = {}
5457 self .layout_dict = {}
5558 self .top_right_panel = []
@@ -280,8 +283,8 @@ def _set_checkbox_layout(self, qbox, analyse_params, col, nbr):
280283
281284 """
282285 if None in analyse_params ['distinct_values' ]:
283- QtWidgets . QLabel ('Include No Data:' , qbox ).move (380 , 15 )
284- cb_none = QtWidgets . QCheckBox ('' , qbox )
286+ QLabel ('Include No Data:' , qbox ).move (380 , 15 )
287+ cb_none = QCheckBox ('' , qbox )
285288 cb_none .move (434 , 34 )
286289 cb_none .setChecked (True )
287290 analyse_params ['distinct_values' ].remove (None )
@@ -294,24 +297,24 @@ def _set_checkbox_layout(self, qbox, analyse_params, col, nbr):
294297 self .layout_dict [col ]['checked' ] = []
295298 self .layout_dict [col ]['checked_items' ] = []
296299 names = analyse_params ['distinct_values' ]
297- model = QtGui . QStandardItemModel (len (names ), 1 )
298- firstItem = QtGui . QStandardItem ("---- Select ----" )
299- firstItem .setBackground (QtGui . QBrush (QtGui . QColor (200 , 200 , 200 )))
300+ model = QStandardItemModel (len (names ), 1 )
301+ firstItem = QStandardItem ("---- Select ----" )
302+ firstItem .setBackground (QBrush (QColor (200 , 200 , 200 )))
300303 firstItem .setSelectable (False )
301304 model .setItem (0 , 0 , firstItem )
302305 name_text = ''
303306 for i , name in enumerate (names ):
304- item = QtGui . QStandardItem (name )
307+ item = QStandardItem (name )
305308 name_text += name + ' '
306309 item .setFlags (
307- QtCore . Qt .ItemIsUserCheckable | QtCore . Qt .ItemIsEnabled )
308- item .setData (QtCore . Qt .Checked , QtCore . Qt .CheckStateRole )
310+ Qt .ItemFlag . ItemIsUserCheckable | Qt . ItemFlag .ItemIsEnabled )
311+ item .setData (Qt .CheckState . Checked , Qt . ItemDataRole .CheckStateRole )
309312 self .layout_dict [col ]['checked' ].append (name )
310313 self .layout_dict [col ]['checked_items' ].append (item )
311314 model .setItem (i + 1 , 0 , item )
312- param_label = QtWidgets . QLabel (name_text , self .top_right_panel [nbr ])
315+ param_label = QLabel (name_text , self .top_right_panel [nbr ])
313316 param_label .move (10 , 20 )
314- QComb = QtWidgets . QComboBox (qbox )
317+ QComb = QComboBox (qbox )
315318 QComb .setModel (model )
316319 QComb .move (83 , 34 )
317320 self .layout_dict [col ]['model' ] = model
@@ -331,8 +334,8 @@ def _set_number_layout(self, qbox, analyse_params, col, nbr):
331334
332335 """
333336 if None in analyse_params ['distinct_values' ]:
334- QtWidgets . QLabel ('Include No Data:' , qbox ).move (380 , 15 )
335- cb_none = QtWidgets . QCheckBox ('' , qbox )
337+ QLabel ('Include No Data:' , qbox ).move (380 , 15 )
338+ cb_none = QCheckBox ('' , qbox )
336339 cb_none .move (434 , 34 )
337340 cb_none .setChecked (True )
338341 analyse_params ['distinct_values' ].remove (None )
@@ -341,17 +344,17 @@ def _set_number_layout(self, qbox, analyse_params, col, nbr):
341344 self .layout_dict [col ]['None' ] = False
342345 if len (analyse_params ['distinct_values' ]) == 0 :
343346 analyse_params ['distinct_values' ] = [0 , 1 ]
344- QtWidgets . QLabel ('Min:' , qbox ).move (93 , 34 )
345- min_value = QtWidgets . QLineEdit (str (np .nanmin (analyse_params ['distinct_values' ])), qbox )
347+ QLabel ('Min:' , qbox ).move (93 , 34 )
348+ min_value = QLineEdit (str (np .nanmin (analyse_params ['distinct_values' ])), qbox )
346349 min_value .move (118 , 32 )
347350 min_value .setFixedWidth (80 )
348- org_min = QtWidgets . QLabel ('({v})' .format (v = str (np .nanmin (analyse_params ['distinct_values' ]))), qbox )
351+ org_min = QLabel ('({v})' .format (v = str (np .nanmin (analyse_params ['distinct_values' ]))), qbox )
349352 org_min .move (120 , 15 )
350- QtWidgets . QLabel ('Max:' , qbox ).move (263 , 34 )
351- max_value = QtWidgets . QLineEdit (str (np .nanmax (analyse_params ['distinct_values' ])), qbox )
353+ QLabel ('Max:' , qbox ).move (263 , 34 )
354+ max_value = QLineEdit (str (np .nanmax (analyse_params ['distinct_values' ])), qbox )
352355 max_value .move (295 , 32 )
353356 max_value .setFixedWidth (80 )
354- org_max = QtWidgets . QLabel ('({v})' .format (v = str (np .nanmax (analyse_params ['distinct_values' ]))), qbox )
357+ org_max = QLabel ('({v})' .format (v = str (np .nanmax (analyse_params ['distinct_values' ]))), qbox )
355358 org_max .move (292 , 15 )
356359 self .layout_dict [col ]['type' ] = 'max_min'
357360 self .layout_dict [col ]['min' ] = np .nanmin (analyse_params ['distinct_values' ])
@@ -361,11 +364,11 @@ def _set_number_layout(self, qbox, analyse_params, col, nbr):
361364 self .layout_dict [col ]['max_text' ] = max_value
362365 self .layout_dict [col ]['max_label_text' ] = org_max
363366 if isfloat (max_value .text ()):
364- param_label = QtWidgets . QLabel ('Min: ' + str (
367+ param_label = QLabel ('Min: ' + str (
365368 round (float (min_value .text ()), 2 )) + ' Max: ' + str (
366369 round (float (max_value .text ()), 2 )), self .top_right_panel [nbr ])
367370 else :
368- param_label = QtWidgets . QLabel (
371+ param_label = QLabel (
369372 'Min: ' + str (min_value .text ()) + ' Max: ' + str (
370373 max_value .text ()), self .top_right_panel [nbr ])
371374 param_label .move (10 , 20 )
@@ -400,11 +403,11 @@ def _update_layout(self, analyse_params, col):
400403 if name in name_text :
401404 continue
402405 i += 1
403- item = QtGui . QStandardItem (name )
406+ item = QStandardItem (name )
404407 name_text += name + ' '
405408 item .setFlags (
406- QtCore . Qt .ItemIsUserCheckable | QtCore . Qt .ItemIsEnabled )
407- item .setData (QtCore . Qt .Checked , QtCore . Qt .CheckStateRole )
409+ Qt .ItemFlag . ItemIsUserCheckable | Qt . ItemFlag .ItemIsEnabled )
410+ item .setData (Qt .CheckState . Checked , Qt . ItemDataRole .CheckStateRole )
408411 self .layout_dict [col ]['checked' ].append (name )
409412 self .layout_dict [col ]['checked_items' ].append (item )
410413 model .setItem (i , 0 , item )
@@ -422,9 +425,9 @@ def default_layout(self):
422425 'blue' , 'red' , 'green' , 'blue' , 'red' , 'green' , 'blue' , 'red' ]
423426 #for key in mplib_colors.cnames.keys():
424427 # colors.append(key)
425- scroll_area_layout = QtWidgets . QVBoxLayout ()
426- constraint_area = QtWidgets . QWidget ()
427- constraint_layout = QtWidgets . QVBoxLayout ()
428+ scroll_area_layout = QVBoxLayout ()
429+ constraint_area = QWidget ()
430+ constraint_layout = QVBoxLayout ()
428431 first_radio = True
429432 harvest_nbr = 0
430433 nbr = - 1
@@ -471,23 +474,23 @@ def default_layout(self):
471474 self .layout_dict [table ['index_col' ]]['harvest' ].append (
472475 self .overlapping_tables [key ]['ha' ])
473476 ## set top right data basic data
474- self .top_right_panel .append (QtWidgets . QGroupBox ())
475- self .top_right_panel [nbr ].setMinimumSize (QtCore . QSize (30 , 35 ))
477+ self .top_right_panel .append (QGroupBox ())
478+ self .top_right_panel [nbr ].setMinimumSize (QSize (30 , 35 ))
476479 self .top_right_panel [nbr ].setStyleSheet ("border:0px;" )
477- param_label = QtWidgets . QLabel (table ['index_col' ].replace ('_' , ' ' ), self .top_right_panel [nbr ])
480+ param_label = QLabel (table ['index_col' ].replace ('_' , ' ' ), self .top_right_panel [nbr ])
478481 param_label .move (10 , 5 )
479482 constraint_layout .addWidget (self .top_right_panel [nbr ])
480483
481484 ## Set bottom group basic data
482- qbox = QtWidgets . QGroupBox ()
485+ qbox = QGroupBox ()
483486 qbox .setTitle (table ['index_col' ].replace ('_' , ' ' ))
484- qbox .setMinimumSize (QtCore . QSize (100 , 55 ))
487+ qbox .setMinimumSize (QSize (100 , 55 ))
485488 qbox .setStyleSheet ('QWidget{color:' + colors [nbr ] + '}' )
486489 scroll_area_layout .addWidget (qbox )
487- QtWidgets . QLabel ('Show:' , qbox ).move (10 , 15 )
488- QtWidgets . QLabel ('Limit:' , qbox ).move (50 , 34 )
490+ QLabel ('Show:' , qbox ).move (10 , 15 )
491+ QLabel ('Limit:' , qbox ).move (50 , 34 )
489492
490- self .cb .append (QtWidgets . QRadioButton ('' , qbox ))
493+ self .cb .append (QRadioButton ('' , qbox ))
491494 if first_radio :
492495 self .cb [nbr ].setChecked (True )
493496 first_radio = False
@@ -764,12 +767,12 @@ def plot_data(self, result, values):
764767 self .canvas = FigureCanvas (fig )
765768 self .dlg .mplvl .addWidget (self .canvas )
766769 self .canvas .draw ()
767- model = QtGui . QStandardItemModel ()
770+ model = QStandardItemModel ()
768771 model .setRowCount (len (filtered_data [0 ]))
769772 model .setColumnCount (3 )
770- model .setHorizontalHeaderItem (0 , QtGui . QStandardItem (self .column_investigated .replace ('_' , ' ' )))
771- model .setHorizontalHeaderItem (1 , QtGui . QStandardItem (self .tr ('Average yield' )))
772- model .setHorizontalHeaderItem (2 , QtGui . QStandardItem (self .tr ('Yield samples' )))
773+ model .setHorizontalHeaderItem (0 , QStandardItem (self .column_investigated .replace ('_' , ' ' )))
774+ model .setHorizontalHeaderItem (1 , QStandardItem (self .tr ('Average yield' )))
775+ model .setHorizontalHeaderItem (2 , QStandardItem (self .tr ('Yield samples' )))
773776 for i , m_yield in enumerate (filtered_data [0 ]):
774777 try :
775778 current_value = filtered_data [1 ][i ].replace ("'" , "" )
@@ -780,11 +783,11 @@ def plot_data(self, result, values):
780783 current_value = filtered_data [1 ][i ]
781784 current_count = filtered_data [2 ][i ]
782785 m_yield = round (m_yield , 2 )
783- item1 = QtGui . QStandardItem ()
786+ item1 = QStandardItem ()
784787 item1 .setText (str (current_value ))
785- item2 = QtGui . QStandardItem ()
788+ item2 = QStandardItem ()
786789 item2 .setText (str (m_yield ))
787- item3 = QtGui . QStandardItem ()
790+ item3 = QStandardItem ()
788791 item3 .setText (str (current_count ))
789792 model .setItem (i , 0 , item1 )
790793 model .setItem (i , 1 , item2 )
0 commit comments