Pieni pähkinä velhoille.
Pähkinä on siinä, että esimerkissä on kaksi aliohjelmaa joihin kumpaankin syötetään luku. Kuinka voimme saada aliohjelman luvut talteen ja summattavaksi aliohjelmassa kolme. Huomio, että entry ei ole pääohjelmassa, haluan tuon syöttökentän näkyviin vasta kun painetaan painiketta. Tuntuu siltä, että aliohjelma ei muista toisten aliohjelmien arvoja???
Ohjelma voi tehdä virheilmoituksen, kun tuo ensimmäisen rivin tkinter kirjoitetaan eri versiossa isolla kirjaimella!
from tkinter import *
def Eka():
Label(master, text="Syötä numero: ").grid(row=2, column=0)
tuote1 = Entry(master)
tuote1.grid(row=2, column=1)
def Toinen():
Label(master, text="Syötä toinen numero: ").grid(row=3, column=0)
tuote2 = Entry(master)
tuote2.grid(row=3, column=1)
def Kolmas():
Label(master, text="Tähän pitäisi tulla vastastaus: ").grid(row=4, column=0)
a = int(tuote1.get())
b = int(tuote2.get())
c=a b
master = Tk()
master.title("Valikko-ohjelma")
master.geometry("250x250")
Button(master, text='Paina ensin tätä', command=Eka).grid(row=0, column=0, sticky=W, pady=4)
Button(master, text='Seuraavaksi tätä', command=Toinen).grid(row=0, column=1, sticky=W, pady=4)
Button(master, text='Tämän pitäisi laskea luvut yhteen', command=Kolmas).grid(row=0, column=2, sticky=W, pady=4)
Pähkinä on siinä, että esimerkissä on kaksi aliohjelmaa joihin kumpaankin syötetään luku. Kuinka voimme saada aliohjelman luvut talteen ja summattavaksi aliohjelmassa kolme. Huomio, että entry ei ole pääohjelmassa, haluan tuon syöttökentän näkyviin vasta kun painetaan painiketta. Tuntuu siltä, että aliohjelma ei muista toisten aliohjelmien arvoja???
Ohjelma voi tehdä virheilmoituksen, kun tuo ensimmäisen rivin tkinter kirjoitetaan eri versiossa isolla kirjaimella!
from tkinter import *
def Eka():
Label(master, text="Syötä numero: ").grid(row=2, column=0)
tuote1 = Entry(master)
tuote1.grid(row=2, column=1)
def Toinen():
Label(master, text="Syötä toinen numero: ").grid(row=3, column=0)
tuote2 = Entry(master)
tuote2.grid(row=3, column=1)
def Kolmas():
Label(master, text="Tähän pitäisi tulla vastastaus: ").grid(row=4, column=0)
a = int(tuote1.get())
b = int(tuote2.get())
c=a b
master = Tk()
master.title("Valikko-ohjelma")
master.geometry("250x250")
Button(master, text='Paina ensin tätä', command=Eka).grid(row=0, column=0, sticky=W, pady=4)
Button(master, text='Seuraavaksi tätä', command=Toinen).grid(row=0, column=1, sticky=W, pady=4)
Button(master, text='Tämän pitäisi laskea luvut yhteen', command=Kolmas).grid(row=0, column=2, sticky=W, pady=4)
Vastaukset 6
Vanhimmat
mainloop( )
Jäi lopusta
Olisi tosi tärkeä juttu minulle.
from tkinter import *
def Eka():
Label(master, text="Syötä numero: ").grid(row=2, column=0)
global tuote1
tuote1 = Entry(master)
tuote1.grid(row=2, column=1)
def Toinen():
Label(master, text="Syötä toinen numero: ").grid(row=3, column=0)
global tuote2
tuote2 = Entry(master)
tuote2.grid(row=3, column=1)
def Kolmas():
Label(master, text="Tähän pitäisi tulla vastastaus: ").grid(row=4, column=0)
a = int(tuote1.get())
b = int(tuote2.get())
print(a,b)
c=a b
Label(master, text=c).grid(row=4, column=1)
master = Tk()
master.title("Valikko-ohjelma")
master.geometry("250x250")
Button(master, text='Paina ensin tätä', command=Eka).grid(row=0, column=0, sticky=W, pady=4)
Button(master, text='Seuraavaksi tätä', command=Toinen).grid(row=0, column=1, sticky=W, pady=4)
Button(master, text='Tämän pitäisi laskea luvut yhteen', command=Kolmas).grid(row=0, column=2, sticky=W, pady=4)
mainloop( )
varoitus:
Korjasin vain toimivaksi. En osaa pythonia ja sen tapoja. Muuttujat eivät näy oletuksena funktioiden ulkopuolelle. Jotenkin pitää tehdä globaaliksi tai välittää muutujien arvot tai osoitteet aliohjelmien kesken.
oli testausta varten.
Voi kiitos. On kiva huomata miten fiksuja ihmisiä tällä palstalla on ja vielä avuliaita:-)
Tässä yksi versio kyselylomakkeesta, jolla on ominaisuuksia jo enemän.
Lisätty:
- Lomakkeen keskitys ruudulle
- Virheellisen vastauksen kestävä
- Fokuksen siirto vastauskenttään
- Poistumis painike
- Merkistökoodaus UTF-8
- Geometriaa parannettu
Noista ominaisuuksista saattaa olla iloa jatkossa, ellei nyt ihan tähän tarpeeseen olisikaan sopivia.
Linkki: http://paste.ofcode.org/AUkx2diPFxCiN2nj7pV9ay