gui-utilities 1.2.21__py3-none-any.whl → 1.3.1__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.
@@ -1,6 +1,6 @@
1
1
  from PyQt6.QtCore import Qt, QObject, QEvent, QSize
2
2
  from PyQt6.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QLineEdit, QComboBox, QDialog, QToolButton, QWidgetAction, QCheckBox, QTableWidget, QHeaderView
3
- from PyQt6.QtGui import QIcon
3
+ from PyQt6.QtGui import QIcon, QFontMetrics
4
4
  import re
5
5
  import requests
6
6
  import importlib.resources
@@ -27,10 +27,10 @@ def create_form(
27
27
  title_font_color = "#ffffff",
28
28
  title_background_color = "#1e1e1e",
29
29
  title_padding = 15,
30
+ title_padding_left = None,
30
31
  title_padding_top = None,
31
32
  title_padding_right = None,
32
33
  title_padding_bottom = None,
33
- title_padding_left = None,
34
34
  title_border_width = 0,
35
35
  title_border_color = "#ffffff",
36
36
  title_border_radius = 0
@@ -44,10 +44,10 @@ def create_form(
44
44
  font_color = title_font_color,
45
45
  background_color = title_background_color,
46
46
  padding = title_padding,
47
+ padding_left = title_padding_left,
47
48
  padding_top = title_padding_top,
48
49
  padding_right = title_padding_right,
49
50
  padding_bottom = title_padding_bottom,
50
- padding_left = title_padding_left,
51
51
  border_width = title_border_width,
52
52
  border_color = title_border_color,
53
53
  border_radius = title_border_radius
@@ -85,6 +85,46 @@ def create_form(
85
85
  body_layout.setStretch(1, 4)
86
86
  return main_layout
87
87
 
88
+ def create_header(
89
+ title,
90
+ margin_left = 25,
91
+ margin_top = 25,
92
+ margin_right = 25,
93
+ margin_bottom = 25,
94
+ title_font_family = "Segoe UI",
95
+ title_font_size = 36,
96
+ title_font_color = "#ffffff",
97
+ title_background_color = "#1e1e1e",
98
+ title_padding = 15,
99
+ title_padding_left = None,
100
+ title_padding_top = None,
101
+ title_padding_right = None,
102
+ title_padding_bottom = None,
103
+ title_border_width = 0,
104
+ title_border_color = "#ffffff",
105
+ title_border_radius = 0
106
+ ):
107
+ main_layout = QVBoxLayout()
108
+ main_layout.setContentsMargins(margin_left, margin_top, margin_right, margin_bottom)
109
+ title_layout = create_title(
110
+ text = title,
111
+ font_family = title_font_family,
112
+ font_size = title_font_size,
113
+ font_color = title_font_color,
114
+ background_color = title_background_color,
115
+ padding = title_padding,
116
+ padding_left = title_padding_left,
117
+ padding_top = title_padding_top,
118
+ padding_right = title_padding_right,
119
+ padding_bottom = title_padding_bottom,
120
+ border_width = title_border_width,
121
+ border_color = title_border_color,
122
+ border_radius = title_border_radius
123
+ )
124
+ main_layout.addLayout(title_layout)
125
+ main_layout.addStretch()
126
+ return main_layout
127
+
88
128
  def create_title(
89
129
  text,
90
130
  font_family = "Segoe UI",
@@ -92,10 +132,10 @@ def create_title(
92
132
  font_color = "#ffffff",
93
133
  background_color = "#1e1e1e",
94
134
  padding = 15,
135
+ padding_left = None,
95
136
  padding_top = None,
96
137
  padding_right = None,
97
138
  padding_bottom = None,
98
- padding_left = None,
99
139
  border_width = 0,
100
140
  border_color = "#ffffff",
101
141
  border_radius = 0
@@ -111,10 +151,10 @@ def create_title(
111
151
  font_weight = "bold",
112
152
  background_color = background_color,
113
153
  padding = padding,
154
+ padding_left = padding_left,
114
155
  padding_top = padding_top,
115
156
  padding_right = padding_right,
116
157
  padding_bottom = padding_bottom,
117
- padding_left = padding_left,
118
158
  border_width = border_width,
119
159
  border_color = border_color,
120
160
  border_radius = border_radius
@@ -130,29 +170,29 @@ def create_label(
130
170
  font_weight = "normal",
131
171
  background_color = "#1e1e1e",
132
172
  padding = 15,
173
+ padding_left = None,
133
174
  padding_top = None,
134
175
  padding_right = None,
135
176
  padding_bottom = None,
136
- padding_left = None,
137
177
  border_width = 0,
138
178
  border_color = "#ffffff",
139
179
  border_radius = 0
140
180
  ):
141
181
  label = QLabel(text)
182
+ padding_left_value = padding_left if padding_left is not None else padding
142
183
  padding_top_value = padding_top if padding_top is not None else padding
143
184
  padding_right_value = padding_right if padding_right is not None else padding
144
185
  padding_bottom_value = padding_bottom if padding_bottom is not None else padding
145
- padding_left_value = padding_left if padding_left is not None else padding
146
186
  style = f"""
147
187
  font-family: {font_family};
148
188
  font-size: {font_size}px;
149
189
  color: {font_color};
150
190
  font-weight: {font_weight};
151
191
  background-color: {background_color};
192
+ padding-left: {padding_left_value}px;
152
193
  padding-top: {padding_top_value}px;
153
194
  padding-right: {padding_right_value}px;
154
195
  padding-bottom: {padding_bottom_value}px;
155
- padding-left: {padding_left_value}px;
156
196
  border: {border_width}px solid {border_color};
157
197
  border-radius: {border_radius}px;
158
198
  """
@@ -167,10 +207,10 @@ def create_button(
167
207
  font_weight = "bold",
168
208
  background_color = "#1e1e1e",
169
209
  padding = 15,
210
+ padding_left = None,
170
211
  padding_top = None,
171
212
  padding_right = None,
172
213
  padding_bottom = None,
173
- padding_left = None,
174
214
  border_width = 2,
175
215
  border_color = "#5c5c5c",
176
216
  border_radius = 0,
@@ -186,10 +226,18 @@ def create_button(
186
226
  disabled_border_color = "#4a4a4a"
187
227
  ):
188
228
  button = QPushButton(text)
229
+ metrics = QFontMetrics(button.font())
230
+ text_width = metrics.horizontalAdvance(text)
231
+ max_width = 360 - (padding_left or padding) - (padding_right or padding)
232
+ if text_width > max_width:
233
+ html_text = f"<div style = \"white-space: normal; text-align: center;\">{text}</div>"
234
+ button.setTextFormat(Qt.TextFormat.RichText)
235
+ button.setText(html_text)
236
+ else: button.setText(text)
237
+ padding_left_value = padding_left if padding_left is not None else padding
189
238
  padding_top_value = padding_top if padding_top is not None else padding
190
239
  padding_right_value = padding_right if padding_right is not None else padding
191
240
  padding_bottom_value = padding_bottom if padding_bottom is not None else padding
192
- padding_left_value = padding_left if padding_left is not None else padding
193
241
  style_sheet = f"""
194
242
  QPushButton {{
195
243
  font-family: {font_family};
@@ -197,10 +245,10 @@ def create_button(
197
245
  color: {font_color};
198
246
  font-weight: {font_weight};
199
247
  background-color: {background_color};
248
+ padding-left: {padding_left_value}px;
200
249
  padding-top: {padding_top_value}px;
201
250
  padding-right: {padding_right_value}px;
202
251
  padding-bottom: {padding_bottom_value}px;
203
- padding-left: {padding_left_value}px;
204
252
  border: {border_width}px solid {border_color};
205
253
  border-radius: {border_radius}px;
206
254
  }}
@@ -229,10 +277,10 @@ def create_text_box(
229
277
  font_weight = "normal",
230
278
  background_color = "#1e1e1e",
231
279
  padding = 15,
280
+ padding_left = None,
232
281
  padding_top = None,
233
282
  padding_right = None,
234
283
  padding_bottom = None,
235
- padding_left = None,
236
284
  border_width = 2,
237
285
  border_color = "#5c5c5c",
238
286
  border_radius = 0,
@@ -254,10 +302,10 @@ def create_text_box(
254
302
  ):
255
303
  text_box = QLineEdit()
256
304
  text_box.setPlaceholderText(placeholder_text)
305
+ padding_left_value = padding_left if padding_left is not None else padding
257
306
  padding_top_value = padding_top if padding_top is not None else padding
258
307
  padding_right_value = padding_right if padding_right is not None else padding
259
308
  padding_bottom_value = padding_bottom if padding_bottom is not None else padding
260
- padding_left_value = padding_left if padding_left is not None else padding
261
309
  style_sheet = f"""
262
310
  QLineEdit {{
263
311
  font-family: {font_family};
@@ -265,10 +313,10 @@ def create_text_box(
265
313
  color: {font_color};
266
314
  font-weight: {font_weight};
267
315
  background-color: {background_color};
316
+ padding-left: {padding_left_value}px;
268
317
  padding-top: {padding_top_value}px;
269
318
  padding-right: {padding_right_value}px;
270
319
  padding-bottom: {padding_bottom_value}px;
271
- padding-left: {padding_left_value}px;
272
320
  border: {border_width}px solid {border_color};
273
321
  border-radius: {border_radius}px;
274
322
  }}
@@ -343,10 +391,10 @@ def create_combo_box(
343
391
  font_color = "#ffffff",
344
392
  background_color = "#1e1e1e",
345
393
  padding = 15,
394
+ padding_left = None,
346
395
  padding_top = None,
347
396
  padding_right = None,
348
397
  padding_bottom = None,
349
- padding_left = None,
350
398
  border_width = 2,
351
399
  border_color = "#5c5c5c",
352
400
  border_radius = 0,
@@ -368,10 +416,10 @@ def create_combo_box(
368
416
  combo_box.addItems(items)
369
417
  combo_box.setCurrentIndex(-1)
370
418
 
419
+ padding_left_value = padding_left if padding_left is not None else padding
371
420
  padding_top_value = padding_top if padding_top is not None else padding
372
421
  padding_right_value = padding_right if padding_right is not None else padding
373
422
  padding_bottom_value = padding_bottom if padding_bottom is not None else padding
374
- padding_left_value = padding_left if padding_left is not None else padding
375
423
 
376
424
  def get_stylesheet(font_color):
377
425
  return f"""
@@ -380,10 +428,10 @@ def create_combo_box(
380
428
  font-size: {font_size}px;
381
429
  color: {font_color};
382
430
  background-color: {background_color};
431
+ padding-left: {padding_left_value}px;
383
432
  padding-top: {padding_top_value}px;
384
433
  padding-right: {padding_right_value}px;
385
434
  padding-bottom: {padding_bottom_value}px;
386
- padding-left: {padding_left_value}px;
387
435
  border: {border_width}px solid {border_color};
388
436
  border-radius: {border_radius}px;
389
437
  }}
@@ -422,10 +470,10 @@ def create_checkbox(
422
470
  font_color = "#ffffff",
423
471
  background_color = "#1e1e1e",
424
472
  padding = 5,
473
+ padding_left = None,
425
474
  padding_top = None,
426
475
  padding_right = None,
427
476
  padding_bottom = None,
428
- padding_left = None,
429
477
  indicator_background_color = "#1e1e1e",
430
478
  indicator_border_width = 1,
431
479
  indicator_border_color = "#5c5c5c",
@@ -445,20 +493,20 @@ def create_checkbox(
445
493
  disabled_border_color = "#4a4a4a"
446
494
  ):
447
495
  check_box = QCheckBox(text)
496
+ padding_left_value = padding_left if padding_left is not None else padding
448
497
  padding_top_value = padding_top if padding_top is not None else padding
449
498
  padding_right_value = padding_right if padding_right is not None else padding
450
499
  padding_bottom_value = padding_bottom if padding_bottom is not None else padding
451
- padding_left_value = padding_left if padding_left is not None else padding
452
500
  style_sheet = f"""
453
501
  QCheckBox {{
454
502
  font-family: {font_family};
455
503
  font-size: {font_size}px;
456
504
  color: {font_color};
457
505
  background-color: {background_color};
506
+ padding-left: {padding_left_value}px;
458
507
  padding-top: {padding_top_value}px;
459
508
  padding-right: {padding_right_value}px;
460
509
  padding-bottom: {padding_bottom_value}px;
461
- padding-left: {padding_left_value}px;
462
510
  }}
463
511
  QCheckBox::indicator {{
464
512
  image: none;
@@ -487,16 +535,16 @@ def create_checkbox(
487
535
  background-color: {disabled_background_color};
488
536
  border: {disabled_border_width}px solid {disabled_border_color};
489
537
  }}
490
- """
538
+ """
491
539
  check_box.setStyleSheet(style_sheet)
492
540
  return check_box
493
541
 
494
542
  def create_information_message_box(
495
543
  text,
496
- top_margin = 25,
497
- bottom_margin = 25,
498
544
  left_margin = 25,
545
+ top_margin = 25,
499
546
  right_margin = 25,
547
+ bottom_margin = 25,
500
548
  spacing = 10,
501
549
  background_color = "#1e1e1e",
502
550
  border_width = 2,
@@ -506,10 +554,10 @@ def create_information_message_box(
506
554
  label_font_size = 14,
507
555
  label_font_color = "#ffffff",
508
556
  label_padding = 15,
557
+ label_padding_left = None,
509
558
  label_padding_top = None,
510
559
  label_padding_right = None,
511
560
  label_padding_bottom = None,
512
- label_padding_left = None,
513
561
  label_border_width = 0,
514
562
  label_border_color = "#ffffff",
515
563
  label_border_radius = 0,
@@ -519,10 +567,10 @@ def create_information_message_box(
519
567
  button_font_color = "#ffffff",
520
568
  button_background_color = "#1e1e1e",
521
569
  button_padding = 15,
570
+ button_padding_left = None,
522
571
  button_padding_top = None,
523
572
  button_padding_right = None,
524
573
  button_padding_bottom = None,
525
- button_padding_left = None,
526
574
  button_border_width = 2,
527
575
  button_border_color = "#5c5c5c",
528
576
  button_border_radius = 0,
@@ -540,8 +588,7 @@ def create_information_message_box(
540
588
  message_box = QDialog()
541
589
  message_box.setObjectName("message_box")
542
590
  message_box.setWindowFlags(Qt.WindowType.FramelessWindowHint)
543
- message_box.setMinimumWidth(360)
544
- message_box.setMaximumWidth(360)
591
+ message_box.setFixedWidth(360)
545
592
  style_sheet = f"""
546
593
  QDialog#message_box {{
547
594
  background-color: {background_color};
@@ -561,15 +608,17 @@ def create_information_message_box(
561
608
  font_color= label_font_color,
562
609
  background_color = "transparent",
563
610
  padding = label_padding,
611
+ padding_left = label_padding_left,
564
612
  padding_top = label_padding_top,
565
613
  padding_right = label_padding_right,
566
614
  padding_bottom = label_padding_bottom,
567
- padding_left = label_padding_left,
568
615
  border_width = label_border_width,
569
616
  border_color = label_border_color,
570
617
  border_radius = label_border_radius
571
618
  )
572
619
  main_layout.addWidget(text_label)
620
+ text_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
621
+ text_label.setWordWrap(True)
573
622
  accept_button = create_button(
574
623
  text = button_text,
575
624
  font_family = button_font_family,
@@ -577,10 +626,10 @@ def create_information_message_box(
577
626
  font_color = button_font_color,
578
627
  background_color = button_background_color,
579
628
  padding = button_padding,
629
+ padding_left = button_padding_left,
580
630
  padding_top = button_padding_top,
581
631
  padding_right = button_padding_right,
582
632
  padding_bottom = button_padding_bottom,
583
- padding_left = button_padding_left,
584
633
  border_width = button_border_width,
585
634
  border_color = button_border_color,
586
635
  border_radius = button_border_radius,
@@ -601,10 +650,10 @@ def create_information_message_box(
601
650
 
602
651
  def create_confirmation_message_box(
603
652
  text,
604
- top_margin = 25,
605
- bottom_margin = 25,
606
653
  left_margin = 25,
654
+ top_margin = 25,
607
655
  right_margin = 25,
656
+ bottom_margin = 25,
608
657
  main_spacing = 10,
609
658
  button_spacing = 10,
610
659
  background_color = "#1e1e1e",
@@ -615,10 +664,10 @@ def create_confirmation_message_box(
615
664
  label_font_size = 14,
616
665
  label_font_color = "#ffffff",
617
666
  label_padding = 15,
667
+ label_padding_left = None,
618
668
  label_padding_top = None,
619
669
  label_padding_right = None,
620
670
  label_padding_bottom = None,
621
- label_padding_left = None,
622
671
  label_border_width = 0,
623
672
  label_border_color = "#ffffff",
624
673
  label_border_radius = 0,
@@ -627,10 +676,10 @@ def create_confirmation_message_box(
627
676
  button_font_color = "#ffffff",
628
677
  button_background_color = "#1e1e1e",
629
678
  button_padding = 15,
679
+ button_padding_left = None,
630
680
  button_padding_top = None,
631
681
  button_padding_right = None,
632
682
  button_padding_bottom = None,
633
- button_padding_left = None,
634
683
  button_border_width = 2,
635
684
  button_border_color = "#5c5c5c",
636
685
  button_border_radius = 0,
@@ -648,8 +697,7 @@ def create_confirmation_message_box(
648
697
  confirm_message_box = QDialog()
649
698
  confirm_message_box.setObjectName("confirm_message_box")
650
699
  confirm_message_box.setWindowFlags(Qt.WindowType.FramelessWindowHint)
651
- confirm_message_box.setMinimumWidth(360)
652
- confirm_message_box.setMaximumWidth(360)
700
+ confirm_message_box.setFixedWidth(360)
653
701
  style_sheet = f"""
654
702
  QDialog#confirm_message_box {{
655
703
  background-color: {background_color};
@@ -669,15 +717,17 @@ def create_confirmation_message_box(
669
717
  font_color = label_font_color,
670
718
  background_color = "transparent",
671
719
  padding = label_padding,
720
+ padding_left = label_padding_left,
672
721
  padding_top = label_padding_top,
673
722
  padding_right = label_padding_right,
674
723
  padding_bottom = label_padding_bottom,
675
- padding_left = label_padding_left,
676
724
  border_width = label_border_width,
677
725
  border_color = label_border_color,
678
726
  border_radius = label_border_radius
679
727
  )
680
728
  main_layout.addWidget(text_label)
729
+ text_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
730
+ text_label.setWordWrap(True)
681
731
  buttons_layout = QHBoxLayout()
682
732
  main_layout.addLayout(buttons_layout)
683
733
  buttons_layout.setSpacing(button_spacing)
@@ -688,10 +738,10 @@ def create_confirmation_message_box(
688
738
  font_color = button_font_color,
689
739
  background_color = button_background_color,
690
740
  padding = button_padding,
741
+ padding_left = button_padding_left,
691
742
  padding_top = button_padding_top,
692
743
  padding_right = button_padding_right,
693
744
  padding_bottom = button_padding_bottom,
694
- padding_left = button_padding_left,
695
745
  border_width = button_border_width,
696
746
  border_color = button_border_color,
697
747
  border_radius = button_border_radius,
@@ -715,10 +765,10 @@ def create_confirmation_message_box(
715
765
  font_color = button_font_color,
716
766
  background_color = button_background_color,
717
767
  padding = button_padding,
768
+ padding_left = button_padding_left,
718
769
  padding_top = button_padding_top,
719
770
  padding_right = button_padding_right,
720
771
  padding_bottom = button_padding_bottom,
721
- padding_left = button_padding_left,
722
772
  border_width = button_border_width,
723
773
  border_color = button_border_color,
724
774
  border_radius = button_border_radius,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gui_utilities
3
- Version: 1.2.21
3
+ Version: 1.3.1
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
@@ -0,0 +1,11 @@
1
+ gui_utilities/gui_utilities.py,sha256=IqTh577G6GiTpJ9lYgeXr5xXAZmP4ufg3zQ1yHT0EGY,43814
2
+ gui_utilities/icons/focused_hide_text_icon.png,sha256=0Ysx7vC-mEVfuSBWx1Zw-UhpqvrTCcIvnQ926wFmuK4,13084
3
+ gui_utilities/icons/focused_show_text_icon.png,sha256=gmZU7RR4FN-9VSzpD00ZkQ8UGbihO2y808Kh3b_TaEg,6739
4
+ gui_utilities/icons/hide_text_icon.png,sha256=f5jq6KaAygWNjzP_Ah6dw6eu8q5ml3m56JTeNSTSgEU,7207
5
+ gui_utilities/icons/show_text_icon.png,sha256=8Vdp2XickPEM-eTb1-qBXf3qmHldSzllMZZfObir9p8,5376
6
+ gui_utilities/tlds/tlds_list.txt,sha256=wIWmAQGVNsY0ZJy7qPW8kItDTCE4PTq8wcUhC2hpjkw,10916
7
+ gui_utilities-1.3.1.dist-info/licenses/LICENSE,sha256=NNoMFs43kWl1J-aqq7_EsPlBjL5XTccWjZlwrlCR-Xc,1093
8
+ gui_utilities-1.3.1.dist-info/METADATA,sha256=mwzrj5V0l-RtUXOZ6Vxe41pjmUTvNN0dpa8gEHVnav0,265
9
+ gui_utilities-1.3.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
10
+ gui_utilities-1.3.1.dist-info/top_level.txt,sha256=c4C84nMT41keiX9b1AJJZDBU3kA38c7vOmP9kDie8Lk,14
11
+ gui_utilities-1.3.1.dist-info/RECORD,,
@@ -1,11 +0,0 @@
1
- gui_utilities/gui_utilities.py,sha256=v7G_9X-5jWWLJv1bHk3pdh4lZbZi7AMIWEhRLAhlLOA,42009
2
- gui_utilities/icons/focused_hide_text_icon.png,sha256=0Ysx7vC-mEVfuSBWx1Zw-UhpqvrTCcIvnQ926wFmuK4,13084
3
- gui_utilities/icons/focused_show_text_icon.png,sha256=gmZU7RR4FN-9VSzpD00ZkQ8UGbihO2y808Kh3b_TaEg,6739
4
- gui_utilities/icons/hide_text_icon.png,sha256=f5jq6KaAygWNjzP_Ah6dw6eu8q5ml3m56JTeNSTSgEU,7207
5
- gui_utilities/icons/show_text_icon.png,sha256=8Vdp2XickPEM-eTb1-qBXf3qmHldSzllMZZfObir9p8,5376
6
- gui_utilities/tlds/tlds_list.txt,sha256=wIWmAQGVNsY0ZJy7qPW8kItDTCE4PTq8wcUhC2hpjkw,10916
7
- gui_utilities-1.2.21.dist-info/licenses/LICENSE,sha256=NNoMFs43kWl1J-aqq7_EsPlBjL5XTccWjZlwrlCR-Xc,1093
8
- gui_utilities-1.2.21.dist-info/METADATA,sha256=DlmwpzjLVssDHvF4D_hBGnm9MP2ny9DG64mcM5M1YCQ,266
9
- gui_utilities-1.2.21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
10
- gui_utilities-1.2.21.dist-info/top_level.txt,sha256=c4C84nMT41keiX9b1AJJZDBU3kA38c7vOmP9kDie8Lk,14
11
- gui_utilities-1.2.21.dist-info/RECORD,,