gui-utilities 1.3.36__py3-none-any.whl → 1.3.48__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of gui-utilities might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  from PyQt6.QtCore import Qt, QObject, QEvent, QSize
2
- from PyQt6.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QLineEdit, QComboBox, QDialog, QToolButton, QWidgetAction, QCheckBox, QTableWidget, QHeaderView
3
- from PyQt6.QtGui import QIcon
2
+ from PyQt6.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QLineEdit, QComboBox, QDialog, QToolButton, QWidgetAction, QCheckBox, QTableWidget, QHeaderView, QApplication, QStyle, QStyledItemDelegate
3
+ from PyQt6.QtGui import QIcon, QTextDocument
4
4
  import re
5
5
  import requests
6
6
  import importlib.resources
@@ -9,8 +9,18 @@ main_dir = importlib.resources.files("gui_utilities")
9
9
  icons_dir = main_dir / "icons"
10
10
  tlds_path = main_dir / "tlds"
11
11
 
12
- def create_window(title, background_color = "#1e1e1e"):
13
- window = QWidget()
12
+ def latex_to_html(expression):
13
+ html_expression = expression
14
+ html_expression = re.sub(r"\\frac\{(.*?)\}\{(.*?)\}", r"<span style='font-size:90%;'>\1⁄\2</span>", html_expression)
15
+ html_expression = re.sub(r"_\{([^}]+)\}", r"<sub>\1</sub>", html_expression)
16
+ html_expression = re.sub(r"\^\{([^}]+)\}", r"<sup>\1</sup>", html_expression)
17
+ html_expression = re.sub(r"_([a-zA-Z0-9]+)", r"<sub>\1</sub>", html_expression)
18
+ html_expression = re.sub(r"\^([a-zA-Z0-9]+)", r"<sup>\1</sup>", html_expression)
19
+ html_expression = html_expression.replace(" ", "&nbsp;")
20
+ return html_expression
21
+
22
+ def create_window(title, background_color = "#1e1e1e", parent = None):
23
+ window = QWidget(parent)
14
24
  window.setObjectName("window")
15
25
  window.setWindowTitle(title)
16
26
  window.setStyleSheet(f"#window {{background-color: {background_color};}}")
@@ -33,7 +43,9 @@ def create_menu(
33
43
  title_padding_bottom = None,
34
44
  title_border_width = 0,
35
45
  title_border_color = "#ffffff",
36
- title_border_radius = 0
46
+ title_border_radius = 0,
47
+ math_expression = False,
48
+ title_alignment = Qt.AlignmentFlag.AlignCenter
37
49
  ):
38
50
  main_layout = QVBoxLayout()
39
51
  main_layout.setContentsMargins(25, 25, 25, 25)
@@ -50,7 +62,9 @@ def create_menu(
50
62
  padding_bottom = title_padding_bottom,
51
63
  border_width = title_border_width,
52
64
  border_color = title_border_color,
53
- border_radius = title_border_radius
65
+ border_radius = title_border_radius,
66
+ math_expression = math_expression,
67
+ alignment = title_alignment
54
68
  ))
55
69
  body_layout = QHBoxLayout()
56
70
  main_layout.addLayout(body_layout)
@@ -102,7 +116,9 @@ def create_header(
102
116
  title_padding_bottom = None,
103
117
  title_border_width = 0,
104
118
  title_border_color = "#ffffff",
105
- title_border_radius = 0
119
+ title_border_radius = 0,
120
+ math_expression = False,
121
+ title_alignment = Qt.AlignmentFlag.AlignCenter
106
122
  ):
107
123
  main_layout = QVBoxLayout()
108
124
  main_layout.setContentsMargins(margin_left, margin_top, margin_right, margin_bottom)
@@ -119,7 +135,9 @@ def create_header(
119
135
  padding_bottom = title_padding_bottom,
120
136
  border_width = title_border_width,
121
137
  border_color = title_border_color,
122
- border_radius = title_border_radius
138
+ border_radius = title_border_radius,
139
+ math_expression = math_expression,
140
+ alignment = title_alignment
123
141
  )
124
142
  main_layout.addLayout(title_layout)
125
143
  main_layout.addStretch()
@@ -138,11 +156,12 @@ def create_title(
138
156
  padding_bottom = None,
139
157
  border_width = 0,
140
158
  border_color = "#ffffff",
141
- border_radius = 0
159
+ border_radius = 0,
160
+ math_expression = False,
161
+ alignment = Qt.AlignmentFlag.AlignCenter
142
162
  ):
143
163
  title_layout = QHBoxLayout()
144
164
  title_layout.setContentsMargins(0, 0, 0, 25)
145
- title_layout.setAlignment(Qt.AlignmentFlag.AlignCenter)
146
165
  title_label = create_label(
147
166
  text = text,
148
167
  font_family = font_family,
@@ -157,7 +176,9 @@ def create_title(
157
176
  padding_bottom = padding_bottom,
158
177
  border_width = border_width,
159
178
  border_color = border_color,
160
- border_radius = border_radius
179
+ border_radius = border_radius,
180
+ math_expression = math_expression,
181
+ alignment = alignment
161
182
  )
162
183
  title_layout.addWidget(title_label)
163
184
  return title_layout
@@ -184,9 +205,19 @@ def create_label(
184
205
  disabled_background_color = "transparent",
185
206
  disabled_border_width = 0,
186
207
  disabled_border_color = "#4a4a4a",
208
+ math_expression = False,
209
+ transparent_for_mouse = False,
210
+ alignment = None,
211
+ word_wrap = False,
187
212
  parent = None
188
213
  ):
189
- label = QLabel(text, parent)
214
+ if math_expression:
215
+ label = QLabel(latex_to_html(text), parent)
216
+ label.setTextFormat(Qt.TextFormat.RichText)
217
+ else: label = QLabel(text, parent)
218
+ if transparent_for_mouse: label.setAttribute(Qt.WidgetAttribute.WA_TransparentForMouseEvents, True)
219
+ if alignment: label.setAlignment(alignment)
220
+ if word_wrap: label.setWordWrap(True)
190
221
  padding_left_value = padding_left if padding_left is not None else padding
191
222
  padding_top_value = padding_top if padding_top is not None else padding
192
223
  padding_right_value = padding_right if padding_right is not None else padding
@@ -243,10 +274,12 @@ def create_button(
243
274
  disabled_background_color = "#2d2d2d",
244
275
  disabled_border_width = 2,
245
276
  disabled_border_color = "#4a4a4a",
246
- maximum_width = 360
277
+ maximum_width = 360,
278
+ math_expression = False,
279
+ parent = None
247
280
  ):
248
- button = QPushButton()
249
- button.setMaximumWidth(maximum_width)
281
+ button = QPushButton(parent)
282
+ if maximum_width is not None: button.setMaximumWidth(maximum_width)
250
283
  main_layout = QVBoxLayout()
251
284
  button.setLayout(main_layout)
252
285
  main_layout.setContentsMargins(0, 0, 0, 0)
@@ -260,9 +293,11 @@ def create_button(
260
293
  padding_top = padding_top,
261
294
  padding_right = padding_right,
262
295
  padding_bottom = padding_bottom,
263
- disabled_border_width = disabled_border_width
296
+ disabled_border_width = disabled_border_width,
297
+ transparent_for_mouse = True,
298
+ alignment = Qt.AlignmentFlag.AlignCenter,
299
+ math_expression = math_expression
264
300
  )
265
- label.setAlignment(Qt.AlignmentFlag.AlignCenter)
266
301
  label.setWordWrap(True)
267
302
  main_layout.addWidget(label)
268
303
  button.setFixedHeight(main_layout.sizeHint().height() + 2 * border_width)
@@ -332,9 +367,10 @@ def create_text_box(
332
367
  focused_show_text_icon_url = str(icons_dir / "focused_show_text_icon.png"),
333
368
  focused_hide_text_icon_url = str(icons_dir / "focused_hide_text_icon.png"),
334
369
  hide_text = False,
335
- math_expression = False
370
+ math_expression = False,
371
+ parent = None
336
372
  ):
337
- text_box = QLineEdit()
373
+ text_box = QLineEdit(parent)
338
374
  padding_left_value = padding_left if padding_left is not None else padding
339
375
  padding_top_value = padding_top if padding_top is not None else padding
340
376
  padding_right_value = padding_right if padding_right is not None else padding
@@ -368,36 +404,6 @@ def create_text_box(
368
404
  }}
369
405
  """
370
406
  text_box.setStyleSheet(style_sheet)
371
-
372
- def latex_to_html(expression):
373
- html_expression = expression
374
- html_expression = re.sub(r"\\frac\{(.*?)\}\{(.*?)\}", r"<span style='font-size:90%;'>\1⁄\2</span>", html_expression)
375
- html_expression = re.sub(r"([a-zA-Z])_(\d+)", r"\1<sub>\2</sub>", html_expression)
376
- html_expression = re.sub(r"([a-zA-Z0-9])\^(\d+)", r"\1<sup>\2</sup>", html_expression)
377
- html_expression = html_expression.replace(" ", "&nbsp;")
378
- return html_expression
379
-
380
- if not math_expression: text_box.setPlaceholderText(placeholder_text)
381
- else:
382
- html_placeholder = latex_to_html(placeholder_text)
383
- placeholder_label = create_label(
384
- text = html_placeholder,
385
- font_color = placeholder_font_color,
386
- font_family = font_family,
387
- font_size = font_size,
388
- background_color = "transparent",
389
- hover_background_color = "transparent",
390
- disabled_background_color = "transparent",
391
- parent = text_box
392
- )
393
- placeholder_label.setTextFormat(Qt.TextFormat.RichText)
394
- placeholder_label.show()
395
-
396
- def update_placeholder_visibility():
397
- placeholder_label.setVisible(text_box.text() == "")
398
-
399
- text_box.textChanged.connect(update_placeholder_visibility)
400
- update_placeholder_visibility()
401
407
  if hide_text:
402
408
  show_text_icon = QIcon(show_text_icon_url)
403
409
  hide_text_icon = QIcon(hide_text_icon_url)
@@ -411,38 +417,83 @@ def create_text_box(
411
417
  toggle_text_visibility_button.setIconSize(QSize(25, 25))
412
418
  toggle_text_visibility_action = QWidgetAction(text_box)
413
419
  toggle_text_visibility_action.setDefaultWidget(toggle_text_visibility_button)
414
- style_sheet = f"""
415
- QToolButton {{
420
+ text_box.addAction(toggle_text_visibility_action, QLineEdit.ActionPosition.TrailingPosition)
421
+ toggle_text_visibility_button.setStyleSheet("""
422
+ QToolButton {
416
423
  background-color: transparent;
417
424
  border: none;
418
425
  margin-right: 10px;
419
- }}
420
- """
421
- toggle_text_visibility_button.setStyleSheet(style_sheet)
422
- text_box.addAction(toggle_text_visibility_action, QLineEdit.ActionPosition.TrailingPosition)
423
-
426
+ }
427
+ """)
428
+
424
429
  def update_icon():
425
430
  is_password = text_box.echoMode() == QLineEdit.EchoMode.Password
426
431
  if text_box.hasFocus(): icon = focused_hide_text_icon if is_password else focused_show_text_icon
427
432
  else: icon = hide_text_icon if is_password else show_text_icon
428
433
  toggle_text_visibility_button.setIcon(icon)
429
-
434
+
430
435
  def toggle_visibility():
431
436
  if text_box.echoMode() == QLineEdit.EchoMode.Password: text_box.setEchoMode(QLineEdit.EchoMode.Normal)
432
437
  else: text_box.setEchoMode(QLineEdit.EchoMode.Password)
433
438
  update_icon()
434
-
439
+
435
440
  toggle_text_visibility_button.clicked.connect(toggle_visibility)
436
441
 
437
- class FocusWatcher(QObject):
442
+ class _IconFocusWatcher(QObject):
443
+
444
+ def __init__(self, watched, on_focus_change):
445
+ super().__init__(watched)
446
+ self._watched = watched
447
+ self._on_focus_change = on_focus_change
448
+
438
449
  def eventFilter(self, watched, event):
439
- if event.type() in (QEvent.Type.FocusIn, QEvent.Type.FocusOut): update_icon()
450
+ if watched is self._watched and event.type() in (QEvent.Type.FocusIn, QEvent.Type.FocusOut):
451
+ if callable(self._on_focus_change): self._on_focus_change()
440
452
  return super().eventFilter(watched, event)
453
+
454
+ icon_focus_watcher = _IconFocusWatcher(text_box, update_icon)
455
+ text_box.installEventFilter(icon_focus_watcher)
456
+ setattr(text_box, "_icon_focus_watcher", icon_focus_watcher)
457
+
458
+ placeholder_label = create_label(
459
+ text = placeholder_text,
460
+ font_family = font_family,
461
+ font_size = font_size,
462
+ font_color = placeholder_font_color,
463
+ font_weight = font_weight,
464
+ padding = padding,
465
+ padding_left = padding_left,
466
+ padding_top = padding_top,
467
+ padding_right = padding_right,
468
+ padding_bottom = padding_bottom,
469
+ math_expression = math_expression,
470
+ transparent_for_mouse = True,
471
+ parent = text_box
472
+ )
473
+ placeholder_label.move(0, 2)
474
+
475
+ def update_placeholder_visibility():
476
+ has_text = bool(text_box.text().strip())
477
+ has_focus = text_box.hasFocus()
478
+ placeholder_label.setVisible(not has_text and not has_focus)
479
+ if hide_text: update_icon()
480
+
481
+ class _PlaceholderFocusWatcher(QObject):
441
482
 
442
- focus_watcher = FocusWatcher(text_box, on_focus_change = update_icon)
443
- text_box.installEventFilter(focus_watcher)
444
- setattr(text_box, "focus_watcher", focus_watcher)
445
- update_icon()
483
+ def __init__(self, watched, on_focus_change):
484
+ super().__init__(watched)
485
+ self._watched = watched
486
+ self._on_focus_change = on_focus_change
487
+
488
+ def eventFilter(self, watched, event):
489
+ if watched is self._watched and event.type() in (QEvent.Type.FocusIn, QEvent.Type.FocusOut):
490
+ if callable(self._on_focus_change): self._on_focus_change()
491
+ return super().eventFilter(watched, event)
492
+
493
+ placeholder_focus_watcher = _PlaceholderFocusWatcher(text_box, update_placeholder_visibility)
494
+ text_box.installEventFilter(placeholder_focus_watcher)
495
+ setattr(text_box, "_placeholder_focus_watcher", placeholder_focus_watcher)
496
+ update_placeholder_visibility()
446
497
  return text_box
447
498
 
448
499
  def create_combo_box(
@@ -472,21 +523,108 @@ def create_combo_box(
472
523
  dropdown_background_color = "#1e1e1e",
473
524
  dropdown_selection_background_color = "#0078d7",
474
525
  dropdown_border_width = 1,
475
- dropdown_border_color = "#5c5c5c"
526
+ dropdown_border_color = "#5c5c5c",
527
+ math_expression = False,
528
+ parent = None
476
529
  ):
477
- combo_box = QComboBox()
478
- combo_box.setPlaceholderText(f"{placeholder_text}")
479
- combo_box.addItems(items)
480
- combo_box.setCurrentIndex(-1)
481
-
530
+ combo_box = QComboBox(parent)
531
+ combo_box.setAccessibleName("combo_box")
482
532
  padding_left_value = padding_left if padding_left is not None else padding
483
533
  padding_top_value = padding_top if padding_top is not None else padding
484
534
  padding_right_value = padding_right if padding_right is not None else padding
485
535
  padding_bottom_value = padding_bottom if padding_bottom is not None else padding
536
+ if math_expression:
537
+ placeholder_label = create_label(
538
+ text = placeholder_text,
539
+ font_family = font_family,
540
+ font_size = font_size,
541
+ font_color = placeholder_font_color,
542
+ padding = padding,
543
+ padding_left = padding_left,
544
+ padding_top = padding_top,
545
+ padding_right = padding_right,
546
+ padding_bottom = padding_bottom,
547
+ math_expression = True,
548
+ transparent_for_mouse = True,
549
+ parent = combo_box
550
+ )
551
+ placeholder_label.move(0, 2)
486
552
 
553
+ def update_placeholder_visibility():
554
+ has_selection = combo_box.currentIndex() != -1
555
+ placeholder_label.setVisible(not has_selection)
556
+
557
+ combo_box.currentIndexChanged.connect(update_placeholder_visibility)
558
+ update_placeholder_visibility()
559
+
560
+ class RichTextDelegate(QStyledItemDelegate):
561
+ def __init__(
562
+ self,
563
+ parent = None,
564
+ font_color = "#ffffff",
565
+ selection_font_color = "#ffffff"
566
+ ):
567
+ super().__init__(parent)
568
+ self.font_color = font_color
569
+ self.selection_font_color = selection_font_color
570
+
571
+ def paint(self, painter, option, index):
572
+ if option.state & QStyle.StateFlag.State_Selected: text_color = self.selection_font_color
573
+ else: text_color = self.font_color
574
+ document = QTextDocument()
575
+ html = f"<span style = \"color:{text_color};\">{index.data(Qt.ItemDataRole.DisplayRole)}</span>"
576
+ document.setHtml(html)
577
+ option.text = ""
578
+ QApplication.style().drawControl(QStyle.ControlElement.CE_ItemViewItem, option, painter)
579
+ painter.save()
580
+ painter.translate(option.rect.left(), option.rect.top() + (option.rect.height() - document.size().height()) / 2)
581
+ document.drawContents(painter)
582
+ painter.restore()
583
+
584
+ delegate = RichTextDelegate(
585
+ parent = combo_box,
586
+ font_color = dropdown_font_color,
587
+ selection_font_color = font_color
588
+ )
589
+ combo_box.setItemDelegate(delegate)
590
+ combo_box.clear()
591
+ for item in items: combo_box.addItem(latex_to_html(item))
592
+ combo_box.view().setTextElideMode(Qt.TextElideMode.ElideNone)
593
+ else:
594
+ combo_box.setPlaceholderText(placeholder_text)
595
+ combo_box.addItems(items)
596
+ combo_box.setCurrentIndex(-1)
597
+ if math_expression:
598
+ selected_item_label = create_label(
599
+ text = "",
600
+ font_family = font_family,
601
+ font_size = font_size,
602
+ font_color = font_color,
603
+ padding = padding,
604
+ padding_left = padding_left,
605
+ padding_top = padding_top,
606
+ padding_right = padding_right,
607
+ padding_bottom = padding_bottom,
608
+ math_expression = True,
609
+ transparent_for_mouse = True,
610
+ alignment = Qt.AlignmentFlag.AlignCenter,
611
+ parent = combo_box
612
+ )
613
+ selected_item_label.setVisible(False)
614
+
615
+ def update_selected_item_display(index):
616
+ if index != -1:
617
+ html_text = combo_box.itemText(index)
618
+ selected_item_label.setText(html_text)
619
+ selected_item_label.setVisible(True)
620
+ else:
621
+ selected_item_label.setVisible(False)
622
+
623
+ combo_box.currentIndexChanged.connect(update_selected_item_display)
624
+
487
625
  def get_stylesheet(font_color):
488
626
  return f"""
489
- QComboBox {{
627
+ QComboBox[accessibleName="combo_box"] {{
490
628
  font-family: {font_family};
491
629
  font-size: {font_size}px;
492
630
  color: {font_color};
@@ -498,12 +636,12 @@ def create_combo_box(
498
636
  border: {border_width}px solid {border_color};
499
637
  border-radius: {border_radius}px;
500
638
  }}
501
- QComboBox:hover {{
639
+ QComboBox[accessibleName="combo_box"]:hover {{
502
640
  background-color: {hover_background_color};
503
641
  border: {hover_border_width}px solid {hover_border_color};
504
642
  }}
505
- QComboBox:on {{
506
- color: {on_font_color};
643
+ QComboBox[accessibleName="combo_box"]:on {{
644
+ color: {"transparent" if math_expression else on_font_color};
507
645
  background-color: {on_background_color};
508
646
  border: {on_border_width}px solid {on_border_color};
509
647
  }}
@@ -519,7 +657,9 @@ def create_combo_box(
519
657
  """
520
658
 
521
659
  def change_color(index):
522
- if index == -1: combo_box.setStyleSheet(get_stylesheet(placeholder_font_color))
660
+ if index == -1:
661
+ text_color = "transparent" if math_expression else placeholder_font_color
662
+ combo_box.setStyleSheet(get_stylesheet(text_color))
523
663
  else: combo_box.setStyleSheet(get_stylesheet(font_color))
524
664
 
525
665
  combo_box.currentIndexChanged.connect(change_color)
@@ -553,9 +693,10 @@ def create_checkbox(
553
693
  disabled_font_color = "#888888",
554
694
  disabled_background_color = "#2d2d2d",
555
695
  disabled_border_width = 1,
556
- disabled_border_color = "#4a4a4a"
696
+ disabled_border_color = "#4a4a4a",
697
+ parent = None
557
698
  ):
558
- check_box = QCheckBox(text)
699
+ check_box = QCheckBox(text, parent)
559
700
  padding_left_value = padding_left if padding_left is not None else padding
560
701
  padding_top_value = padding_top if padding_top is not None else padding
561
702
  padding_right_value = padding_right if padding_right is not None else padding
@@ -646,9 +787,10 @@ def create_information_message_box(
646
787
  button_disabled_font_color = "#888888",
647
788
  button_disabled_background_color = "#2d2d2d",
648
789
  button_disabled_border_width = 2,
649
- button_disabled_border_color = "#4a4a4a"
790
+ button_disabled_border_color = "#4a4a4a",
791
+ parent = None
650
792
  ):
651
- message_box = QDialog()
793
+ message_box = QDialog(parent)
652
794
  message_box.setObjectName("message_box")
653
795
  message_box.setWindowFlags(Qt.WindowType.FramelessWindowHint)
654
796
  message_box.setFixedWidth(360)
@@ -677,10 +819,10 @@ def create_information_message_box(
677
819
  padding_bottom = label_padding_bottom,
678
820
  border_width = label_border_width,
679
821
  border_color = label_border_color,
680
- border_radius = label_border_radius
822
+ border_radius = label_border_radius,
823
+ alignment = Qt.AlignmentFlag.AlignCenter
681
824
  )
682
825
  main_layout.addWidget(text_label)
683
- text_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
684
826
  text_label.setWordWrap(True)
685
827
  accept_button = create_button(
686
828
  text = button_text,
@@ -755,9 +897,10 @@ def create_confirmation_message_box(
755
897
  button_disabled_font_color = "#888888",
756
898
  button_disabled_background_color = "#2d2d2d",
757
899
  button_disabled_border_width = 2,
758
- button_disabled_border_color = "#4a4a4a"
900
+ button_disabled_border_color = "#4a4a4a",
901
+ parent = None
759
902
  ):
760
- confirm_message_box = QDialog()
903
+ confirm_message_box = QDialog(parent)
761
904
  confirm_message_box.setObjectName("confirm_message_box")
762
905
  confirm_message_box.setWindowFlags(Qt.WindowType.FramelessWindowHint)
763
906
  confirm_message_box.setFixedWidth(360)
@@ -786,10 +929,10 @@ def create_confirmation_message_box(
786
929
  padding_bottom = label_padding_bottom,
787
930
  border_width = label_border_width,
788
931
  border_color = label_border_color,
789
- border_radius = label_border_radius
932
+ border_radius = label_border_radius,
933
+ alignment = Qt.AlignmentFlag.AlignCenter
790
934
  )
791
935
  main_layout.addWidget(text_label)
792
- text_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
793
936
  text_label.setWordWrap(True)
794
937
  buttons_layout = QHBoxLayout()
795
938
  main_layout.addLayout(buttons_layout)
@@ -884,9 +1027,10 @@ def create_list_table(
884
1027
  hover_scrollbar_handle_border_color = "#777777",
885
1028
  pressed_scrollbar_handle_background_color = "#4a4a4a",
886
1029
  pressed_scrollbar_handle_border_width = 3,
887
- pressed_scrollbar_handle_border_color = "#0078d7"
1030
+ pressed_scrollbar_handle_border_color = "#0078d7",
1031
+ parent = None
888
1032
  ):
889
- list_table = QTableWidget()
1033
+ list_table = QTableWidget(parent)
890
1034
  list_table.verticalHeader().setVisible(False)
891
1035
  list_table.setColumnCount(len(column_headers))
892
1036
  list_table.setHorizontalHeaderLabels(column_headers)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gui_utilities
3
- Version: 1.3.36
3
+ Version: 1.3.48
4
4
  Summary: Librería de utilidades gráficas en PyQt6
5
5
  Author-email: Guido Iván Gross <grossguidoivan@gmail.com>
6
6
  Requires-Python: >=3.8
@@ -1,11 +1,11 @@
1
- gui_utilities/gui_utilities.py,sha256=-H8C-_C4fCj0tJr9Wudc8cVfPL5ij2s3I7yiwqEMqcA,46306
1
+ gui_utilities/gui_utilities.py,sha256=qn1xAZtKqm6H_u4hKTU7cDVjulnmGwUHMlRqeRd1B1E,52418
2
2
  gui_utilities/icons/focused_hide_text_icon.png,sha256=0Ysx7vC-mEVfuSBWx1Zw-UhpqvrTCcIvnQ926wFmuK4,13084
3
3
  gui_utilities/icons/focused_show_text_icon.png,sha256=gmZU7RR4FN-9VSzpD00ZkQ8UGbihO2y808Kh3b_TaEg,6739
4
4
  gui_utilities/icons/hide_text_icon.png,sha256=f5jq6KaAygWNjzP_Ah6dw6eu8q5ml3m56JTeNSTSgEU,7207
5
5
  gui_utilities/icons/show_text_icon.png,sha256=8Vdp2XickPEM-eTb1-qBXf3qmHldSzllMZZfObir9p8,5376
6
6
  gui_utilities/tlds/tlds_list.txt,sha256=wIWmAQGVNsY0ZJy7qPW8kItDTCE4PTq8wcUhC2hpjkw,10916
7
- gui_utilities-1.3.36.dist-info/licenses/LICENSE,sha256=NNoMFs43kWl1J-aqq7_EsPlBjL5XTccWjZlwrlCR-Xc,1093
8
- gui_utilities-1.3.36.dist-info/METADATA,sha256=fmC5wa_5Q93fAvmZu7HCz9mHWe84ONRtj6ong8WjMuA,266
9
- gui_utilities-1.3.36.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
10
- gui_utilities-1.3.36.dist-info/top_level.txt,sha256=c4C84nMT41keiX9b1AJJZDBU3kA38c7vOmP9kDie8Lk,14
11
- gui_utilities-1.3.36.dist-info/RECORD,,
7
+ gui_utilities-1.3.48.dist-info/licenses/LICENSE,sha256=NNoMFs43kWl1J-aqq7_EsPlBjL5XTccWjZlwrlCR-Xc,1093
8
+ gui_utilities-1.3.48.dist-info/METADATA,sha256=16hslmJ7k0LrGpDS4KRGm84CB5LBh3d1KxUbabwK5Yc,266
9
+ gui_utilities-1.3.48.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
10
+ gui_utilities-1.3.48.dist-info/top_level.txt,sha256=c4C84nMT41keiX9b1AJJZDBU3kA38c7vOmP9kDie8Lk,14
11
+ gui_utilities-1.3.48.dist-info/RECORD,,