Откройте окна из этого скрипта, используя Tkinter - PullRequest
0 голосов
/ 27 мая 2019

У меня есть два сценария, один ниже - сценарий, который я использую в качестве меню, так же как и первые окна, которые мне нужно открыть, из этого, когда я нажимаю «Simular», мне нужно закрыть это окно или «сценария "и откройте еще один, но передав параметры.

from tkinter import *
main = Tk()

# Limpiar registros con botonLimpiar
def valoresLimpiar(*args):
  varDes.set('Seleccionar...')
  varModo.set('Seleccionar...')
  varEst.set('Seleccionar...')

# Obtener Valores con botonSimular
def valoresSimular(*args):
  print(varDes.get())
  print(varModo.get())
  print(varEst.get())

# Variables
varDes = StringVar(main)
varDes.set('Seleccionar...')

varModo = StringVar(main)
varModo.set('Seleccionar...')

varEst = StringVar(main)
varEst.set('Seleccionar...')

main.title("Configuración")
main.configure(background = 'light grey') # Color de Fondo

# Caja texto
labelOpciones = Label(main, bg = "light grey", text = 'Ventana Deslizante', padx = 30, pady = 5, width=20)
labelOpciones.grid(row = 0, column = 0)
labelOpciones2 = Label(main, bg = "light grey", text = 'Modo de Transmisión', padx = 30, pady = 5, width=20)
labelOpciones2.grid(row = 1, column = 0)
labelOpciones3 = Label(main, bg = "light grey", text = 'Estrategia de Transmisión', padx = 30, pady = 5, width=20)
labelOpciones3.grid(row = 2, column = 0)

# Caja de Opciones
opciones = ['1','2', '3', '4', '5', '6', '7']
ventanaDeslizante = OptionMenu(main, varDes, *opciones)
ventanaDeslizante.config(width=20)
ventanaDeslizante.grid(row = 0, column = 1, padx = 30, pady = 30)
opciones2 = ['NRM','ABM']
ventanaModoTrans = OptionMenu(main, varModo, *opciones2)
ventanaModoTrans.config(width=20)
ventanaModoTrans.grid(row = 1, column = 1, padx = 30, pady = 30)
opciones3 = ['GoBack-N','Repetición Selectiva']
ventanaEstTrans = OptionMenu(main, varEst, *opciones3)
ventanaEstTrans.config(width=20)
ventanaEstTrans.grid(row = 2, column = 1, padx = 30, pady = 30)  

# Botones Limpiar y Simular
botonLimpiar = Button(main, text="Limpiar", width=20, command=valoresLimpiar)
botonLimpiar.grid(row = 3, column = 0, padx = 20, pady = 30)
botonSimular = Button(main, text="Simular", width=20, command=valoresSimular)
botonSimular.grid(row = 3, column = 1, padx = 20, pady = 30)

main.mainloop()

Я знаю, как это сделать с классами, но я не знаю, как их использовать, надеюсь, вы сможете мне помочь, спасибо.

1 Ответ

0 голосов
/ 27 мая 2019

Я делаю некоторые изменения в вашем коде, чтобы заменить OptionMenu на Combobox.Затем создайте новую функцию для нового окна и передайте переменные после нажатия кнопки.

from tkinter import *
from tkinter.ttk import *
main = Tk()

# Limpiar registros con botonLimpiar
def valoresLimpiar(*args):
   varDes.set('Seleccionar...')
   varModo.set('Seleccionar...')
   varEst.set('Seleccionar...')


# Obtener Valores con botonSimular
def move_data():
    window = Tk()  # initiate tkinter to build window
    window.geometry('800x500')  # set window size
    label = Label(window, text='ventanaDeslizante = ' + data_1.get())  # set label
    label.grid(column=0, row=0)  # position of label
    label = Label(window, text='ventanaModoTrans = ' + data_2.get())  # set label
    label.grid(column=0, row=1)  # position of label
    label = Label(window, text='ventanaModoTrans = ' + data_3.get())  # set label
    label.grid(column=0, row=2)  # position of label
    window.mainloop()  # loop to show window



# Variables
varDes = StringVar(main)
varDes.set('Seleccionar...')

varModo = StringVar(main)
varModo.set('Seleccionar...')

varEst = StringVar(main)
varEst.set('Seleccionar...')

main.title("Configuración")
main.configure(background = 'light grey') # Color de Fondo

# Caja texto
label = Label(main, text='Ventana Deslizante')
label.grid(row = 0, column = 0)
label = Label(main, text = 'Modo de Transmisión')
label.grid(row = 1, column = 0)
label = Label(main, text = 'Estrategia de Transmisión')
label.grid(row = 2, column = 0)

# Caja de Opciones
data_1= StringVar()
ventanaDeslizante = Combobox(main, width=8, textvariable=data_1)
# create box list
ventanaDeslizante['values'] = ['1','2', '3', '4', '5', '6', '7']
# setup values for the list
ventanaDeslizante.current(0)
# set starting index from the list
ventanaDeslizante.grid(row = 0, column = 1, padx = 30, pady = 30)

data_2= StringVar()
ventanaModoTrans = Combobox(main, width=8, textvariable=data_2)  
# create box list
ventanaModoTrans['values'] = ['NRM','ABM']
ventanaModoTrans.current(0)
ventanaModoTrans.grid(row = 1, column = 1, padx = 30, pady = 30)

data_3= StringVar()
ventanaEstTrans = Combobox(main, width=8, textvariable=data_3)  
# create box list
ventanaEstTrans['values'] = ['GoBack-N','Repetición Selectiva']
ventanaEstTrans.current(0)
ventanaEstTrans.grid(row = 2, column = 1, padx = 30, pady = 30)

# Botones Limpiar y Simular
botonLimpiar = Button(main, text="Limpiar", width=20, 
command=valoresLimpiar)
botonLimpiar.grid(row = 3, column = 0, padx = 20, pady = 30)
botonSimular = Button(main, text="Simular", width=20, 
command=move_data)
botonSimular.grid(row = 3, column = 1, padx = 20, pady = 30)

main.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...