Pähkinä_purtavaksi/Pyhon/Tkinter

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)
6138
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

mainloop( )

Jäi lopusta

Äänestä

Olisi tosi tärkeä juttu minulle.

Äänestä

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.

Äänestä

oli testausta varten.

Äänestä

Voi kiitos. On kiva huomata miten fiksuja ihmisiä tällä palstalla on ja vielä avuliaita:-)

Äänestä

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

Äänestä

Kommentoi aloitusta


Velhoille kirjoitti:

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)

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu