gui-utilities 1.2.23__py3-none-any.whl → 1.3.3__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, QFont, 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,
@@ -185,11 +225,22 @@ def create_button(
185
225
  disabled_border_width = 2,
186
226
  disabled_border_color = "#4a4a4a"
187
227
  ):
188
- button = QPushButton(text)
228
+ button = QPushButton()
229
+ button.setMaximumWidth(360)
230
+ padding_left_value = padding_left if padding_left is not None else padding
189
231
  padding_top_value = padding_top if padding_top is not None else padding
190
232
  padding_right_value = padding_right if padding_right is not None else padding
191
233
  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
234
+ max_text_width = 360 - padding_left_value - padding_right_value - 2 * border_width
235
+ font = QFont(font_family, font_size)
236
+ if font_weight == "bold": font.setWeight(QFont.Weight.Bold)
237
+ else: font.setWeight(QFont.Weight.Normal)
238
+ metrics = QFontMetrics(font)
239
+ text_width = metrics.horizontalAdvance(text)
240
+ if text_width > max_text_width:
241
+ html_text = f"<div style = \"white-space: normal; text-align: center;\">{text}</div>"
242
+ button.setText(html_text)
243
+ else: button.setText(text)
193
244
  style_sheet = f"""
194
245
  QPushButton {{
195
246
  font-family: {font_family};
@@ -197,10 +248,10 @@ def create_button(
197
248
  color: {font_color};
198
249
  font-weight: {font_weight};
199
250
  background-color: {background_color};
251
+ padding-left: {padding_left_value}px;
200
252
  padding-top: {padding_top_value}px;
201
253
  padding-right: {padding_right_value}px;
202
254
  padding-bottom: {padding_bottom_value}px;
203
- padding-left: {padding_left_value}px;
204
255
  border: {border_width}px solid {border_color};
205
256
  border-radius: {border_radius}px;
206
257
  }}
@@ -229,10 +280,10 @@ def create_text_box(
229
280
  font_weight = "normal",
230
281
  background_color = "#1e1e1e",
231
282
  padding = 15,
283
+ padding_left = None,
232
284
  padding_top = None,
233
285
  padding_right = None,
234
286
  padding_bottom = None,
235
- padding_left = None,
236
287
  border_width = 2,
237
288
  border_color = "#5c5c5c",
238
289
  border_radius = 0,
@@ -254,10 +305,10 @@ def create_text_box(
254
305
  ):
255
306
  text_box = QLineEdit()
256
307
  text_box.setPlaceholderText(placeholder_text)
308
+ padding_left_value = padding_left if padding_left is not None else padding
257
309
  padding_top_value = padding_top if padding_top is not None else padding
258
310
  padding_right_value = padding_right if padding_right is not None else padding
259
311
  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
312
  style_sheet = f"""
262
313
  QLineEdit {{
263
314
  font-family: {font_family};
@@ -265,10 +316,10 @@ def create_text_box(
265
316
  color: {font_color};
266
317
  font-weight: {font_weight};
267
318
  background-color: {background_color};
319
+ padding-left: {padding_left_value}px;
268
320
  padding-top: {padding_top_value}px;
269
321
  padding-right: {padding_right_value}px;
270
322
  padding-bottom: {padding_bottom_value}px;
271
- padding-left: {padding_left_value}px;
272
323
  border: {border_width}px solid {border_color};
273
324
  border-radius: {border_radius}px;
274
325
  }}
@@ -343,10 +394,10 @@ def create_combo_box(
343
394
  font_color = "#ffffff",
344
395
  background_color = "#1e1e1e",
345
396
  padding = 15,
397
+ padding_left = None,
346
398
  padding_top = None,
347
399
  padding_right = None,
348
400
  padding_bottom = None,
349
- padding_left = None,
350
401
  border_width = 2,
351
402
  border_color = "#5c5c5c",
352
403
  border_radius = 0,
@@ -368,10 +419,10 @@ def create_combo_box(
368
419
  combo_box.addItems(items)
369
420
  combo_box.setCurrentIndex(-1)
370
421
 
422
+ padding_left_value = padding_left if padding_left is not None else padding
371
423
  padding_top_value = padding_top if padding_top is not None else padding
372
424
  padding_right_value = padding_right if padding_right is not None else padding
373
425
  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
426
 
376
427
  def get_stylesheet(font_color):
377
428
  return f"""
@@ -380,10 +431,10 @@ def create_combo_box(
380
431
  font-size: {font_size}px;
381
432
  color: {font_color};
382
433
  background-color: {background_color};
434
+ padding-left: {padding_left_value}px;
383
435
  padding-top: {padding_top_value}px;
384
436
  padding-right: {padding_right_value}px;
385
437
  padding-bottom: {padding_bottom_value}px;
386
- padding-left: {padding_left_value}px;
387
438
  border: {border_width}px solid {border_color};
388
439
  border-radius: {border_radius}px;
389
440
  }}
@@ -422,10 +473,10 @@ def create_checkbox(
422
473
  font_color = "#ffffff",
423
474
  background_color = "#1e1e1e",
424
475
  padding = 5,
476
+ padding_left = None,
425
477
  padding_top = None,
426
478
  padding_right = None,
427
479
  padding_bottom = None,
428
- padding_left = None,
429
480
  indicator_background_color = "#1e1e1e",
430
481
  indicator_border_width = 1,
431
482
  indicator_border_color = "#5c5c5c",
@@ -445,20 +496,20 @@ def create_checkbox(
445
496
  disabled_border_color = "#4a4a4a"
446
497
  ):
447
498
  check_box = QCheckBox(text)
499
+ padding_left_value = padding_left if padding_left is not None else padding
448
500
  padding_top_value = padding_top if padding_top is not None else padding
449
501
  padding_right_value = padding_right if padding_right is not None else padding
450
502
  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
503
  style_sheet = f"""
453
504
  QCheckBox {{
454
505
  font-family: {font_family};
455
506
  font-size: {font_size}px;
456
507
  color: {font_color};
457
508
  background-color: {background_color};
509
+ padding-left: {padding_left_value}px;
458
510
  padding-top: {padding_top_value}px;
459
511
  padding-right: {padding_right_value}px;
460
512
  padding-bottom: {padding_bottom_value}px;
461
- padding-left: {padding_left_value}px;
462
513
  }}
463
514
  QCheckBox::indicator {{
464
515
  image: none;
@@ -487,16 +538,16 @@ def create_checkbox(
487
538
  background-color: {disabled_background_color};
488
539
  border: {disabled_border_width}px solid {disabled_border_color};
489
540
  }}
490
- """
541
+ """
491
542
  check_box.setStyleSheet(style_sheet)
492
543
  return check_box
493
544
 
494
545
  def create_information_message_box(
495
546
  text,
496
- top_margin = 25,
497
- bottom_margin = 25,
498
547
  left_margin = 25,
548
+ top_margin = 25,
499
549
  right_margin = 25,
550
+ bottom_margin = 25,
500
551
  spacing = 10,
501
552
  background_color = "#1e1e1e",
502
553
  border_width = 2,
@@ -506,10 +557,10 @@ def create_information_message_box(
506
557
  label_font_size = 14,
507
558
  label_font_color = "#ffffff",
508
559
  label_padding = 15,
560
+ label_padding_left = None,
509
561
  label_padding_top = None,
510
562
  label_padding_right = None,
511
563
  label_padding_bottom = None,
512
- label_padding_left = None,
513
564
  label_border_width = 0,
514
565
  label_border_color = "#ffffff",
515
566
  label_border_radius = 0,
@@ -519,10 +570,10 @@ def create_information_message_box(
519
570
  button_font_color = "#ffffff",
520
571
  button_background_color = "#1e1e1e",
521
572
  button_padding = 15,
573
+ button_padding_left = None,
522
574
  button_padding_top = None,
523
575
  button_padding_right = None,
524
576
  button_padding_bottom = None,
525
- button_padding_left = None,
526
577
  button_border_width = 2,
527
578
  button_border_color = "#5c5c5c",
528
579
  button_border_radius = 0,
@@ -560,10 +611,10 @@ def create_information_message_box(
560
611
  font_color= label_font_color,
561
612
  background_color = "transparent",
562
613
  padding = label_padding,
614
+ padding_left = label_padding_left,
563
615
  padding_top = label_padding_top,
564
616
  padding_right = label_padding_right,
565
617
  padding_bottom = label_padding_bottom,
566
- padding_left = label_padding_left,
567
618
  border_width = label_border_width,
568
619
  border_color = label_border_color,
569
620
  border_radius = label_border_radius
@@ -578,10 +629,10 @@ def create_information_message_box(
578
629
  font_color = button_font_color,
579
630
  background_color = button_background_color,
580
631
  padding = button_padding,
632
+ padding_left = button_padding_left,
581
633
  padding_top = button_padding_top,
582
634
  padding_right = button_padding_right,
583
635
  padding_bottom = button_padding_bottom,
584
- padding_left = button_padding_left,
585
636
  border_width = button_border_width,
586
637
  border_color = button_border_color,
587
638
  border_radius = button_border_radius,
@@ -602,10 +653,10 @@ def create_information_message_box(
602
653
 
603
654
  def create_confirmation_message_box(
604
655
  text,
605
- top_margin = 25,
606
- bottom_margin = 25,
607
656
  left_margin = 25,
657
+ top_margin = 25,
608
658
  right_margin = 25,
659
+ bottom_margin = 25,
609
660
  main_spacing = 10,
610
661
  button_spacing = 10,
611
662
  background_color = "#1e1e1e",
@@ -616,10 +667,10 @@ def create_confirmation_message_box(
616
667
  label_font_size = 14,
617
668
  label_font_color = "#ffffff",
618
669
  label_padding = 15,
670
+ label_padding_left = None,
619
671
  label_padding_top = None,
620
672
  label_padding_right = None,
621
673
  label_padding_bottom = None,
622
- label_padding_left = None,
623
674
  label_border_width = 0,
624
675
  label_border_color = "#ffffff",
625
676
  label_border_radius = 0,
@@ -628,10 +679,10 @@ def create_confirmation_message_box(
628
679
  button_font_color = "#ffffff",
629
680
  button_background_color = "#1e1e1e",
630
681
  button_padding = 15,
682
+ button_padding_left = None,
631
683
  button_padding_top = None,
632
684
  button_padding_right = None,
633
685
  button_padding_bottom = None,
634
- button_padding_left = None,
635
686
  button_border_width = 2,
636
687
  button_border_color = "#5c5c5c",
637
688
  button_border_radius = 0,
@@ -669,10 +720,10 @@ def create_confirmation_message_box(
669
720
  font_color = label_font_color,
670
721
  background_color = "transparent",
671
722
  padding = label_padding,
723
+ padding_left = label_padding_left,
672
724
  padding_top = label_padding_top,
673
725
  padding_right = label_padding_right,
674
726
  padding_bottom = label_padding_bottom,
675
- padding_left = label_padding_left,
676
727
  border_width = label_border_width,
677
728
  border_color = label_border_color,
678
729
  border_radius = label_border_radius
@@ -690,10 +741,10 @@ def create_confirmation_message_box(
690
741
  font_color = button_font_color,
691
742
  background_color = button_background_color,
692
743
  padding = button_padding,
744
+ padding_left = button_padding_left,
693
745
  padding_top = button_padding_top,
694
746
  padding_right = button_padding_right,
695
747
  padding_bottom = button_padding_bottom,
696
- padding_left = button_padding_left,
697
748
  border_width = button_border_width,
698
749
  border_color = button_border_color,
699
750
  border_radius = button_border_radius,
@@ -717,10 +768,10 @@ def create_confirmation_message_box(
717
768
  font_color = button_font_color,
718
769
  background_color = button_background_color,
719
770
  padding = button_padding,
771
+ padding_left = button_padding_left,
720
772
  padding_top = button_padding_top,
721
773
  padding_right = button_padding_right,
722
774
  padding_bottom = button_padding_bottom,
723
- padding_left = button_padding_left,
724
775
  border_width = button_border_width,
725
776
  border_color = button_border_color,
726
777
  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.3
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=IqGEoVxpZARNDGvzz9HkXMZhK0Pw6-Q79suBNiulDYI,43953
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.3.dist-info/licenses/LICENSE,sha256=NNoMFs43kWl1J-aqq7_EsPlBjL5XTccWjZlwrlCR-Xc,1093
8
+ gui_utilities-1.3.3.dist-info/METADATA,sha256=8vExBoLuo4z4i33ad2WxgU6txCTWwAhQWd6dbbkbEe4,265
9
+ gui_utilities-1.3.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
10
+ gui_utilities-1.3.3.dist-info/top_level.txt,sha256=c4C84nMT41keiX9b1AJJZDBU3kA38c7vOmP9kDie8Lk,14
11
+ gui_utilities-1.3.3.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,,