gui-utilities 1.2.23__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,
@@ -560,10 +608,10 @@ def create_information_message_box(
560
608
  font_color= label_font_color,
561
609
  background_color = "transparent",
562
610
  padding = label_padding,
611
+ padding_left = label_padding_left,
563
612
  padding_top = label_padding_top,
564
613
  padding_right = label_padding_right,
565
614
  padding_bottom = label_padding_bottom,
566
- padding_left = label_padding_left,
567
615
  border_width = label_border_width,
568
616
  border_color = label_border_color,
569
617
  border_radius = label_border_radius
@@ -578,10 +626,10 @@ def create_information_message_box(
578
626
  font_color = button_font_color,
579
627
  background_color = button_background_color,
580
628
  padding = button_padding,
629
+ padding_left = button_padding_left,
581
630
  padding_top = button_padding_top,
582
631
  padding_right = button_padding_right,
583
632
  padding_bottom = button_padding_bottom,
584
- padding_left = button_padding_left,
585
633
  border_width = button_border_width,
586
634
  border_color = button_border_color,
587
635
  border_radius = button_border_radius,
@@ -602,10 +650,10 @@ def create_information_message_box(
602
650
 
603
651
  def create_confirmation_message_box(
604
652
  text,
605
- top_margin = 25,
606
- bottom_margin = 25,
607
653
  left_margin = 25,
654
+ top_margin = 25,
608
655
  right_margin = 25,
656
+ bottom_margin = 25,
609
657
  main_spacing = 10,
610
658
  button_spacing = 10,
611
659
  background_color = "#1e1e1e",
@@ -616,10 +664,10 @@ def create_confirmation_message_box(
616
664
  label_font_size = 14,
617
665
  label_font_color = "#ffffff",
618
666
  label_padding = 15,
667
+ label_padding_left = None,
619
668
  label_padding_top = None,
620
669
  label_padding_right = None,
621
670
  label_padding_bottom = None,
622
- label_padding_left = None,
623
671
  label_border_width = 0,
624
672
  label_border_color = "#ffffff",
625
673
  label_border_radius = 0,
@@ -628,10 +676,10 @@ def create_confirmation_message_box(
628
676
  button_font_color = "#ffffff",
629
677
  button_background_color = "#1e1e1e",
630
678
  button_padding = 15,
679
+ button_padding_left = None,
631
680
  button_padding_top = None,
632
681
  button_padding_right = None,
633
682
  button_padding_bottom = None,
634
- button_padding_left = None,
635
683
  button_border_width = 2,
636
684
  button_border_color = "#5c5c5c",
637
685
  button_border_radius = 0,
@@ -669,10 +717,10 @@ 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
@@ -690,10 +738,10 @@ def create_confirmation_message_box(
690
738
  font_color = button_font_color,
691
739
  background_color = button_background_color,
692
740
  padding = button_padding,
741
+ padding_left = button_padding_left,
693
742
  padding_top = button_padding_top,
694
743
  padding_right = button_padding_right,
695
744
  padding_bottom = button_padding_bottom,
696
- padding_left = button_padding_left,
697
745
  border_width = button_border_width,
698
746
  border_color = button_border_color,
699
747
  border_radius = button_border_radius,
@@ -717,10 +765,10 @@ def create_confirmation_message_box(
717
765
  font_color = button_font_color,
718
766
  background_color = button_background_color,
719
767
  padding = button_padding,
768
+ padding_left = button_padding_left,
720
769
  padding_top = button_padding_top,
721
770
  padding_right = button_padding_right,
722
771
  padding_bottom = button_padding_bottom,
723
- padding_left = button_padding_left,
724
772
  border_width = button_border_width,
725
773
  border_color = button_border_color,
726
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.23
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=0uj4O8GWvrKBPtuLKPnaVIMc3d1T0s8cCPtnUiKqCEA,42105
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.23.dist-info/licenses/LICENSE,sha256=NNoMFs43kWl1J-aqq7_EsPlBjL5XTccWjZlwrlCR-Xc,1093
8
- gui_utilities-1.2.23.dist-info/METADATA,sha256=kzPxt8y6zg71vG7y1n87NOETcnH1DCaYnjF3WMTmF9Y,266
9
- gui_utilities-1.2.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
10
- gui_utilities-1.2.23.dist-info/top_level.txt,sha256=c4C84nMT41keiX9b1AJJZDBU3kA38c7vOmP9kDie8Lk,14
11
- gui_utilities-1.2.23.dist-info/RECORD,,