1
- from tkinter import *
2
1
import tkinter as tk
2
+ from tkinter import ttk
3
+ from tkinter import *
3
4
4
5
class Configuracion :
5
6
6
7
def __init__ (self , ventanaPrincipal ):
8
+ # VEntana Toplevel emergente
7
9
self .settings = Toplevel (ventanaPrincipal )
8
- self .settings .title (" Opciones" )
10
+ self .settings .title (' Opciones' )
9
11
self .settings .geometry ("{}x{}+{}+{}" .format (600 , 350 , 220 , 200 ))
10
12
self .settings .config (bg = 'white' )
11
13
12
- self .numBarsSlide = tk .StringVar ()
14
+ # Input para la cantidad de barras en el array y su animacion
15
+ self .numBarsSlide = tk .IntVar ()
13
16
self .entryNumBars = tk .Scale (self .settings , from_ = (2 ** 1 ), to = (2 ** 8 ), length = 580 , resolution = 1 , sliderlength = 15 , takefocus = 34 , orient = HORIZONTAL , label = 'Data size' , variable = self .numBarsSlide )
14
17
self .entryNumBars .grid (row = 0 , column = 0 , padx = 5 , pady = 5 )
15
18
19
+ # Input para el tiempo de delay
20
+ self .timeSlide = tk .IntVar ()
21
+ self .entrytimeSlide = tk .Scale (self .settings , from_ = 0.001 , to = 0.1 , length = 580 , resolution = 0.001 , sliderlength = 30 , orient = HORIZONTAL , label = 'Time' , variable = self .timeSlide )
22
+ self .entrytimeSlide .grid (row = 1 , column = 0 , padx = 5 , pady = 5 )
23
+
24
+ # Checkbox para mostrar el valor de las barras sobre las mismas
16
25
self .mostrarTexto = tk .IntVar ()
17
- self .btnMostrarTexto = Checkbutton (self .settings , text = " Mostrar valor de las barras" , variable = self .mostrarTexto , onvalue = 1 , offvalue = 0 ,)
18
- self .btnMostrarTexto .grid (row = 1 , column = 0 , padx = 10 , pady = 0 , sticky = W )
26
+ self .btnMostrarTexto = Checkbutton (self .settings , text = ' Mostrar valor de las barras' , variable = self .mostrarTexto , onvalue = 1 , offvalue = 0 ,)
27
+ self .btnMostrarTexto .grid (row = 2 , column = 0 , padx = 10 , pady = 0 , sticky = W )
19
28
29
+ # Selecctor de algoritmo de ordenacion
30
+ self .selected_alg = tk .StringVar ()
31
+ self .algoritmSelection = ttk .Combobox (self .settings , textvariable = self .selected_alg ,
32
+ values =
33
+ [
34
+ 'Bubble Sort' ,
35
+ 'Optimized Bubble Sort' ,
36
+ 'Inserccion Sort' ,
37
+ 'Selection Sort'
38
+ ]
39
+ )
40
+ self .algoritmSelection .grid (row = 3 , column = 0 , padx = 5 , pady = 5 , sticky = W )
41
+ self .algoritmSelection .current (0 )
42
+
43
+ # Buton que aplica los cambios en funcion de los valores de los inputs anteriores
20
44
self .btnAplicar = Button (self .settings , text = 'Aplicar' , command = self .aplicarSettings )
21
- self .btnAplicar .grid (row = 2 , column = 0 , padx = 10 , pady = 0 , sticky = W )
45
+ self .btnAplicar .grid (row = 4 , column = 0 , padx = 10 , pady = 0 , sticky = W )
22
46
23
47
"""Obtener la configuracion para mostrar el Array Sort
24
48
@@ -28,14 +52,26 @@ def __init__(self, ventanaPrincipal):
28
52
def obtenerConfiguracion (self ):
29
53
self .settings .wait_window ()
30
54
# [0]
31
- numBarsSlide = int ( self .numBarsSlide .get () )
55
+ numBarsSlide = self .numBarsSlide .get ()
32
56
# [1]
57
+ timeSlide = self .timeSlide .get ()
58
+ # [2]
33
59
mostrarTexto = self .isChecked (self .mostrarTexto .get ())
34
- return (numBarsSlide , mostrarTexto )
60
+ # [3]
61
+ selectedAlg = self .selected_alg .get ()
62
+
63
+ return (numBarsSlide , timeSlide , mostrarTexto , selectedAlg )
35
64
65
+ """Saber si un input de tipo checkbos esta activo o no
66
+
67
+ Return:
68
+ [Boolean] - True si esta marcado, False si no esta marcado
69
+ """
36
70
def isChecked (self , value ):
37
71
if (value == 1 ): return True
38
72
elif (value == 0 ): return False
39
73
74
+ """Aplica los cambios y cierra la ventana Toplevel()
75
+ """
40
76
def aplicarSettings (self ):
41
77
self .settings .destroy ()
0 commit comments