Python - Tkinter - Aiuto con pulsanti e tuple

maicol07

Nuovo Utente
1 Ago 2017
2
0
1
Salve,
Sto avendo un problema con il mio script Python che usa Tkinter per la grafica. Sto costruendo una tabella con pulsanti cliccabili, dove la posizione di tutti i pulsanti è determinata da una tupla con le coordinate x e y. Ma quando cerco di aggiungere del testo tramite una casella di testo in un'altra finestra (vedi codice sotto), la tupla è l'ultima creata dal ciclo while. Ecco lo script:
Codice:
#Importazione di Tkinter
from tkinter import *
import tkinter.messagebox
import numpy as np
import os.path

def Salvataggio(p,var):
    try:
        dt[p]=var.get()
        np.save('timetable.npy', dt)
        tkinter.messagebox.showinfo(title="Successo!", message="Salvataggio effettuato con successo!")
        wtc.destroy()
        creaFinestra()
    except:
        tkinter.messagebox.showerror(title="Errore!", message="Si è verificato un errore, riprovare oppure contattare lo sviluppatore")

def CambiaOrario(p): #p è la posizione in coordinate y e x (tupla) del pulsante cliccato
    global wtc
    wtc=Toplevel()
    wtc.title("Modifica Orario - Orario scolastico - School Life Diary")
    wtc.iconbitmap('sld_icon_beta.ico')
    wtc.geometry("%dx%d+%d+%d" % (450, 200, 600, 250))
    dg={1:"Lunedì",2:"Martedì",3:"Mercoledì",4:"Giovedì",5:"Venerdì",6:"Sabato"}
    print(p)
    l=Label(wtc, text="Inserire la materia da visualizzare nell'orario la "+str(p[1])+"a ora del "+dg[p[0]]+".")
    l.pack(padx=10,pady=10)
    var=StringVar(value="")
    e=Entry(wtc, textvariable=var)
    e.pack(padx=10,pady=10)
    b=Button(wtc, text="SALVA", command=lambda: Salvataggio(p,var))
    b.pack(padx=10,pady=10)
    wtc.mainloop()

def inizializza():
    global ds
    global dt
    ds=np.load('settings.npy').item()
    if not(os.path.exists(r"timetable.npy")):
        dt={}
        dt["ORE_MAX_GIORNATA"]=ds["ORE_MAX_GIORNATA"]
        for x in range(1,ds["ORE_MAX_GIORNATA"]+2):
            for i in range (1,7):
                dt[(x,i)]=""
        np.save('timetable.npy', dt)
    dt=np.load('timetable.npy').item()
#Creazione finestra
def creaFinestra():
    inizializza()
    wt=Toplevel()
    wt.title("Orario scolastico - School Life Diary")
    wt.iconbitmap('sld_icon_beta.ico')
    wt.geometry("%dx%d+%d+%d" % (600, 300, 600, 250))
    ft=Frame(wt)
    ft.pack()
    l1=Label(ft,text="Lunedì")
    l2=Label(ft,text="Martedì")
    l3=Label(ft,text="Mercoledì")
    l4=Label(ft,text="Giovedì")
    l5=Label(ft,text="Venerdì")
    l6=Label(ft,text="Sabato")
    l1.grid(row=0, column=1, pady=10, padx=5)
    l2.grid(row=0, column=2, pady=10, padx=5)
    l3.grid(row=0, column=3, pady=10, padx=5)
    l4.grid(row=0, column=4, pady=10, padx=5)
    l5.grid(row=0, column=5, pady=10, padx=5)
    l6.grid(row=0, column=6, pady=10, padx=5)
    i=1
    x=ds["ORE_MAX_GIORNATA"]
    for i in range(1,x+1):
        h=Label(ft, text=str(i)+"° ora")
        h.grid(row=i, column=0, padx=5, pady=5)
        i+=1
    for c in range(1,x+2):
        for i in range(1, 7):
            bh=Button(ft, text=dt[(c,i)], width=10, command=lambda: CambiaOrario((c,i)))
            bh.grid(row=i, column=c)
    wt.mainloop()
Come posso risolvere?
Grazie
 
Discussioni simili
Autore Titolo Forum Risposte Data
L proposta nuova sezione Python Comunicazioni dallo Staff 1
F Corso programmazione Python Altri Annunci 0
V Estrazione di una singola banda da file multi banda (RGB) con Python Programmazione 0
Q consiglio per python Programmazione 1
S Python Selenium problema con Instagram Programmazione 0
C Python sul sito web Programmazione 0
H Flash e Python Programmazione 1
F Python: istruzione condizionale Programmazione 1
B Consigli per libro su Python Programmazione 1
neo996sps Passare variabile in GET a script python PHP 1
P Problema urgente con Python e la libreria Mechanize Programmazione 0
P [Ajax, python e JS] Redirect dopo una POST con jquery jQuery 0
codesurfer Problema Tomcat+Python Apache 1
P Programmazione Python, imparare, guide, lezioni ecc Programmazione 0
B PHP e PYTHON PHP 1
Simosito Sito su Python Presenta il tuo Sito 0
E Aiuto per query PHP 8
R Aiuto ripristino sito web Presentati al Forum 0
L Aiuto con DataGridView Visual Basic 1
F Aiuto! cambio immagine di sfondo al cambio pagina HTML e CSS 2
I aiuto urgente per thunderbird Posta Elettronica 0
I aiuto per outlook Posta Elettronica 0
D aiuto funzioni javascript Javascript 1
T aiuto per trasformare un quiz fatto in JS in un quiz in JQUERY jQuery 0
D Aiuto CSS in ELEMENTOR - Cambiare un testo CMS (Content Management System) 0
M Fullcalendar in Codeigniter, un aiuto per la chiamata $ajax ? jQuery 0
K Aiuto con file audio in html HTML e CSS 1
G Script notifiche dekstop aiuto Javascript 0
P Aiuto per rendere un Bot Telegram Privato PHP 1
M Un aiuto da chi ha apple Mac e Software 0
P Richiesta di aiuto Presentati al Forum 1
A Aiuto per pagina php PHP 0
M Questa pagina non carica correttamente Google Maps: aiuto!! HTML e CSS 1
I Aiuto php Dependent Lookup PHP 0
R Aiuto con le query MS Access 2
M AIUTO ESERCIZIO JAVA Javascript 1
G Aiuto con htaccess e rewriterule PHP 0
T cercasi aiuto per file d1 (open-edge db) Database 0
M Aiuto con inserimento immagini WordPress 6
D aiuto schermata photoshop Photoshop 0
L Aiuto per programma web php/mySQL PHP 2
A Aiuto php colore diverso PHP 10
L Aiuto creazione menu mancante WordPress 0
C Aiuto compiuto scuola PHP/MySQL PHP 2
G Insert into select - Aiuto MySQL 0
I Aiuto bash linux Programmazione 1
F Aiuto java script Javascript 2
R Cerco aiuto Offerte e Richieste di Lavoro e/o Collaborazione 7
I Aiuto query MySQL 8
G Aiuto HTML, collegamento con un bottone a una <div> di un' altra pagna HTML e CSS 5

Discussioni simili