[Python] problema su TKinter
Riccardo mancuso
mancuso.riccardo63 a gmail.com
Mar 18 Ago 2015 20:08:20 CEST
Salve a tutti,
ho un quesito per l'utilizzo delle librerie grafiche Tkinter.
Sto provando ad utilizzare Page (Gui Rad basato su Tcl) ed ho notato che
creata la maschera grafica, vengono generati due file:
1. descrive la maschera grafica (scritto in codice python)
2. l'altra di supporto per i comandi (scritto in codice python)
Proprio su quella di supporto sui comandi non riesco a capire come accedere
ai valori inseriti.
Ad esempio, ho creato una GUI per fare la somma tra due numeri, il cui
codice è qui riportato ("calcola_somma.py"):
#! /usr/bin/env python
#
# GUI module generated by PAGE version 4.5
# In conjunction with Tcl version 8.6
# Aug 18, 2015 06:40:34 PM
import sys
try:
from Tkinter import *
except ImportError:
from tkinter import *
try:
import ttk
py3 = 0
except ImportError:
import tkinter.ttk as ttk
py3 = 1
import calcola_somma_support
def vp_start_gui():
'''Starting point when module is the main routine.'''
global val, w, root
root = Tk()
root.title('Calcola_la_somma')
geom = "436x450+465+113"
root.geometry(geom)
w = Calcola_la_somma(root)
calcola_somma_support.init(root, w)
root.mainloop()
w = None
def create_Calcola_la_somma(root, param=None):
'''Starting point when module is imported by another program.'''
global w, w_win, rt
rt = root
w = Toplevel (root)
w.title('Calcola_la_somma')
geom = "436x450+465+113"
w.geometry(geom)
w_win = Calcola_la_somma (w)
calcola_Q_support.init(w, w_win, param)
return w_win
def destroy_Calcola_la_somma():
global w
w.destroy()
w = None
class Calcola_la_somma:
def __init__(self, master=None):
_bgcolor = '#d9d9d9' # X11 color: 'gray85'
_fgcolor = '#000000' # X11 color: 'black'
_compcolor = '#d9d9d9' # X11 color: 'gray85'
_ana1color = '#d9d9d9' # X11 color: 'gray85'
_ana2color = '#d9d9d9' # X11 color: 'gray85'
master.configure(highlightcolor="black")
self.Label1 = Label(master)
self.Label1.place(relx=0.23, rely=0.24, height=19, width=20)
self.Label1.configure(activebackground="#f9f9f9")
self.Label1.configure(text='''a''')
self.Label2 = Label(master)
self.Label2.place(relx=0.23, rely=0.36, height=19, width=18)
self.Label2.configure(activebackground="#f9f9f9")
self.Label2.configure(text='''b''')
self.Label3 = Label(master)
self.Label3.place(relx=0.23, rely=0.47, height=19, width=13)
self.Label3.configure(activebackground="#f9f9f9")
self.Label3.configure(text='''c''')
self.a_text = Text(master)
self.a_text.place(relx=0.34, rely=0.24, relheight=0.06,
relwidth=0.38)
self.a_text.configure(background="white")
self.a_text.configure(font="TkTextFont")
self.a_text.configure(selectbackground="#c4c4c4")
self.a_text.configure(width=166)
self.a_text.configure(wrap=WORD)
self.b_text = Text(master)
self.b_text.place(relx=0.34, rely=0.36, relheight=0.06,
relwidth=0.38)
self.b_text.configure(background="white")
self.b_text.configure(font="TkTextFont")
self.b_text.configure(selectbackground="#c4c4c4")
self.b_text.configure(width=166)
self.b_text.configure(wrap=WORD)
self.c_text = Text(master)
self.c_text.place(relx=0.34, rely=0.47, relheight=0.06,
relwidth=0.38)
self.c_text.configure(background="white")
self.c_text.configure(font="TkTextFont")
self.c_text.configure(selectbackground="#c4c4c4")
self.c_text.configure(width=166)
self.c_text.configure(wrap=WORD)
self.Label4 = Label(master)
self.Label4.place(relx=0.76, rely=0.24, height=19, width=54)
self.Label4.configure(activebackground="#f9f9f9")
self.Label4.configure(text='''-''')
self.Label5 = Label(master)
self.Label5.place(relx=0.76, rely=0.36, height=19, width=35)
self.Label5.configure(activebackground="#f9f9f9")
self.Label5.configure(text='''-''')
self.Label6 = Label(master)
self.Label6.place(relx=0.76, rely=0.47, height=19, width=19)
self.Label6.configure(activebackground="#f9f9f9")
self.Label6.configure(text='''-''')
self.bCalcola = Button(master)
self.bCalcola.place(relx=0.5, rely=0.71, height=27, width=68)
self.bCalcola.configure(activebackground="#d9d9d9")
self.bCalcola.configure(command=calcola_somma_support.calcola)
self.bCalcola.configure(text='''Calcola''')
self.bCancella = Button(master)
self.bCancella.place(relx=0.25, rely=0.71, height=27, width=76)
self.bCancella.configure(activebackground="#d9d9d9")
self.bCancella.configure(command=calcola_somma_support.cancella)
self.bCancella.configure(text='''Cancella''')
self.bUscita = Button(master)
self.bUscita.place(relx=0.73, rely=0.71, height=27, width=63)
self.bUscita.configure(activebackground="#d9d9d9")
self.bUscita.configure(command=calcola_somma_support.uscita)
self.bUscita.configure(text='''Uscita''')
self.Label7 = Label(master)
self.Label7.place(relx=0.18, rely=0.09, height=19, width=299)
self.Label7.configure(activebackground="#f9f9f9")
self.Label7.configure(text='''Calcola la somma tra due numeri''')
def calcola(self):
DP=float(self.a_text.get("1.0",END))
kv=float(self.b_text.get("1.0",END))
tot=DP+kv
self.c_text.insert(1.0, tot)
if __name__ == '__main__':
vp_start_gui()
Page poi crea un altro file di supporto dove sono elencate le procedure
relative ai vari comandi (ovvero nel caso in cui vengano premuti i vari
pulsanti che ho messo):
#! /usr/bin/env python
#
# Support module generated by PAGE version 4.5
# In conjunction with Tcl version 8.6
# Aug 18, 2015 06:41:00 PM
import sys
try:
from Tkinter import *
except ImportError:
from tkinter import *
try:
import ttk
py3 = 0
except ImportError:
import tkinter.ttk as ttk
py3 = 1
def calcola():
print('calcola_somma_support.calcola')
sys.stdout.flush()
def cancella():
print('calcola_somma_support.cancella')
sys.stdout.flush()
def uscita():
print('calcola_somma_support.uscita')
sys.stdout.flush()
def init(top, gui, arg=None):
global w, top_level, root
w = gui
top_level = top
root = top
def destroy_window():
# Function which closes the window.
global top_level
top_level.destroy()
top_level = None
La mia domanda è: come collego al pulsante "Calcola" la procedura "calcola"
contenuta nel file "calcola_somma_support.py" ?
Qualcuno può aiutarmi a completare il codice per renderlo funzionante ?
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150818/b4aa6374/attachment.html>
Maggiori informazioni sulla lista
Python