MS Office week
Pouze tento týden sleva až 80 % na e-learning týkající se MS Office
50 % bodů zdarma na online výuku díky naší Slevové akci!
Avatar
itlady
Člen
Avatar
itlady:10.12.2019 14:42

Snažím se vytvořit GUI appku v tkinteru. Mám nějaké menu a pak dvě tlačítka - zpět a další. Nevím, jak udělat, aby při kliknutí na zpět se mi okno zavřelo a objevilo se původní. resp. mám definovanou fci, která vrací první okno, vše funguje, ale při dalším kroku dopředu - dozadu se mi už původní okno nezavírá.

 
Odpovědět
10.12.2019 14:42
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
itlady
Člen
Avatar
itlady:10.12.2019 16:19

Zde je ukázka kodu:

# funkce spustí Import dat - 1. okno
def new():
#zavře předchozí okno
root.withdraw()

#globální proměnné
global c_pos
global specs
global obv
global main

#nové okno Import 1/X
main = Toplevel()
main.title('Import dat 1/X')
main.geometry('400x210')
main.resizable(0,0)
main.iconbitmap('e:\\--- DRIVE\\Python\\Projects\\2019\\05\\icons\\MainIcon.ico')

# oddělovací linka
separator = Frame(main, height=2, bd=1, relief=SUNKEN)
separator.grid(row=1, column=0, columnspan=3, sticky='ew')

nadpis_label = Label(main, text='Zadej informace:', height=2, bg='#e4e4e4', anchor=W, padx=10, pady=7)
nadpis_label.grid(row=2, column=0, columnspan=3, ipadx=100)

# oddělovací linka
separator = Frame(main, height=2, bd=1, relief=SUNKEN)
separator.grid(row=3, column=0, columnspan=3, sticky='ew')

# vpisovací pole
c_pos = Entry(main, width=30)
c_pos.grid(row=4, column=1, pady=(15,3))
specs = Entry(main, width=30)
specs.grid(row=5, column=1, pady=3)
band = Entry(main, width=30)
band.grid(row=6, column=1, pady=3)

# popisky
c_pos_label = Label(main, text='Číslo pos:')
c_pos_label.grid(row=4, column=0, sticky='w', padx=(40,0), pady=(15,3))
specs_label = Label(main, text='Specifikace:')
specs_label.grid(row=5, column=0, sticky='w', padx=(40,0), pady=3)
band_label = Label(main, text='Bandita:')
band_label.grid(row=6, column=0, sticky='w', padx=(40,0), pady=3)

# tlačítka Zpět a Další
submitButton = Button(main, text='Další', width=10, command=submit1)
submitButton.grid(row=7, column=1, columnspan=3, padx=(130,60), pady=(20,0))

backButton = Button(main, text='Zpět', width=10, command=back1)
backButton.grid(row=7, column=0, columnspan=3, padx=5, pady=(20,0))


def back1():

#zavře předchozí okno
main.withdraw()

# Main window
root = Tk()
root.title('Generátor v 1.0')
root.geometry('400x400')
root.resizable(0,0)
root.iconbitmap('e:\\--- DRIVE\\Python\\Projects\\2019\\05\\icons\\MainIcon.ico')

# Copyright button
button = Button(root, text='i', width=3, height=1, command=ShowInfo)
button.grid(row=1, column=2, columnspan=10)

# Hlavní menu
button = Button(root, text='Nový', width=15, height=2, command=new)
button.grid(row=3, column=1, pady=(55,0), padx=(150, 100))

button = Button(root, text='Načíst z databáze', width= 15, height=2)
button.grid(row=4,column=1, pady=(20,0), padx=(150, 100))

button = Button(root, text='Zobrazit databázi', width=15, height=2)
button.grid(row=5, column=1, pady=(20,0), padx=(150, 100))

button = Button(root, text='Ukončit', width=15, height=2, command=root.quit)
button.grid(row=6, column=1, pady=(20,0), padx=(150, 100))



# Copyright button
button = Button(root, text='i', width=3, height=1, command=ShowInfo)
button.grid(row=1, column=2, columnspan=10)

# Hlavní menu
button = Button(root, text='Nový ', width=15, height=2, command=new)
button.grid(row=3, column=1, pady=(55,0), padx=(150, 100))

button = Button(root, text='Načíst z databáze', width= 15, height=2)
button.grid(row=4,column=1, pady=(20,0), padx=(150, 100))

button = Button(root, text='Zobrazit databázi', width=15, height=2)
button.grid(row=5, column=1, pady=(20,0), padx=(150, 100))

button = Button(root, text='Ukončit', width=15, height=2, command=root.quit)
button.grid(row=6, column=1, pady=(20,0), padx=(150, 100))

root.mainloop()
 
Nahoru Odpovědět
10.12.2019 16:19
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.