Python Tkinter

Mikähän tässä on pielessä kirjoitun tesktin saan messageboxiin mutta yhteenlaskun tulosta en saa messageboxiin? Mitä pitäisi kirjoittaa toisin?

def plus():
luku1 = float(Entry.get(syote1laske))
luku2 = float(Entry.get(syote2laske))
tulos = luku1 luku2
#Entry.delete(vast, 0, 20)
#Entry.insert(vast, 0, tulos)

def tulostus2():
tk.messagebox.showinfo('Yhteenlaskun tulos viestiikkunassa', plus)
11372
Äänestä

Muut lukivat myös

Vastaukset 11

Vanhimmat

Sain tehtyä kaksi eri vaihtoehtoa. Ensimmäinen on oletettavasti se mitä haet toinen taas on vain asioiden helpotusta varten.

def plus():
luku1 = 2
luku2 = 2
tulos = luku1 luku2
return tulos

def tulostus2():
messagebox.showinfo('Yhteenlaskun tulos viestiikkunassa', plus())

tulostus2()

Tuo return palauttaa stringin funktiosta, jotenka lisäämällä vain sen pitäisi päästä pitkälle.

Toimisiko alla oleva koodi tarkoituksessas kuitenkin paremmini? Näyttäisit laskun vastauksen välittömästi. Korvaa tietenkin luku1 ja luku2 haluamillasi luvuilla.

def plus():
luku1 = 2
luku2 = 2
tulos = luku1 luku2
messagebox.showinfo('Yhteenlaskun tulos viestiikkunassa', tulos)

plus()

1Äänestä
Aloittaja

Kiitos!
Tuo return ja plus()): lisäys sai toiminaan oikein.

Mutta mikäs tuo qt on en ole aikaisemmin siihen törmännyt? Siihen pitää tutustua jossakin vaiheessa.

Äänestä
  • Voin joo suositella myös Tkinterin unohtamista mutta myös Qt:n.

    Käyttöliittymät kannattaa tehdä standardilla tavalla HTML5:lle. Netistä löytyy useita Python -> Javascript kääntäjiä

    Äänestä

  • Hyvä että toimii.

    Äänestä

Python 2.7 kyse?

tk.messagebox.showinfo("Yhteenlaskun tulos viestiikkunassa", plus)

edellyttääkö että plus on merkkijono?

Python 3:ssa toimii vallan hyvin.

Äänestä
  • plus() on funktion nimi, eikä muuttuja, kuten edellä sotkin.

    Äänestä

  • Anonyymi kirjoitti:

    plus() on funktion nimi, eikä muuttuja, kuten edellä sotkin.

    Taaskaan ei Suomi24 moderointi toimi oikein, mitä hittoa ne sitä rassaa koko ajan, pirun ärsyttävää tuollainen toimimaton moderointi. Eikö ne voisi palkata jotakin opettamaan moderointia näille siivooja tytöille, ettei ne aina olisi pilaamassa asia viestejä.

    Äänestä

  • Anonyymi kirjoitti:

    Taaskaan ei Suomi24 moderointi toimi oikein, mitä hittoa ne sitä rassaa koko ajan, pirun ärsyttävää tuollainen toimimaton moderointi. Eikö ne voisi palkata jotakin opettamaan moderointia näille siivooja tytöille, ettei ne aina olisi pilaamassa asia viestejä.

    Tätä ne rassasi toissa yönä, kun tämä keskustelu sivusto ei toiminut. Nyt on taas palattu syyttelemään käyttäjiä sääntöjen vastaisista viesteistä. Vika on kuitenkin moderoinnin toimimattomuudesta, mutta käyttäjien on kannettava se häpeä minkä sääntöjen rikkomisesta joillekin koituu.

    Äänestä

Aloittaja

Kokeilin muodossa messagebox.showinfo('Yhteenlaskun tulos viestiikkunassa', plus) ja tulos oli sekava mutta tuo plus()) näyttää tuloksen oikein.

Äänestä
Aloittaja

Ongelma on se että en saa tähän haluaamani ikkunaan kuvaa näkyviin joka valitaan root tasolta eli ensimmäisestä ikkunasta jossa on painike jolla saadaan tämä ikkuna näkyviin. Kaikki tekstit näkyvät oikein ikkunassa mutta kuva ei näy ollenkaan.
Kun tässä rivissä
canvas = Canvas(show, width = 384, height = 384) on sulkujen sisällä show niin se herjaa rivitä canvas.create_image(10,10, image = photo)

Alla on kyseinen koodi.
-------------
def kuva():
show = Tk()
show.title("Kuvan esittäminen")
frame = Frame(show)
frame.pack()

#kuva ikkunan tekskti
teksti = Label(show, text = "Tähän tulee valokuva?")
teksti.place(x=250, y=10)

#kuvan liittäminen ikkunaan
canvas = Canvas(show, width = 384, height = 384)
photo = ImageTk.PhotoImage(Image.open ('lena.gif'))
canvas.create_image(10,10, image = photo)
canvas.place(x=20, y=50)

#img = Image.open("lena.gif")
#photo = ImageTk.PhotoImage(img)
#lab = Label(show, image = photo)
#lab.place(x=30, y=50)

#photo = PhotoImage(file = 'lena.gif')
#label = Label(show, image = photo)
#label.place(x=30, y=30)

#kuva ikkunan koko ja sijaihti
show.geometry("650x650 100 100")

#kuva ikkunan sulkeminen
def sulje():
show.destroy()

buttonkuva = tk.Button(show, text='Sulje ikkuna', height = 1, width = 15, command = sulje)
buttonkuva.place(x=260, y=620)

show.mainloop()

Äänestä

Ketjusta on poistettu 1 sääntöjenvastainen viesti.

Kommentoi aloitusta


Janiprog kirjoitti:

Mikähän tässä on pielessä kirjoitun tesktin saan messageboxiin mutta yhteenlaskun tulosta en saa messageboxiin? Mitä pitäisi kirjoittaa toisin?

def plus():
luku1 = float(Entry.get(syote1laske))
luku2 = float(Entry.get(syote2laske))
tulos = luku1 luku2
#Entry.delete(vast, 0, 20)
#Entry.insert(vast, 0, tulos)

def tulostus2():
tk.messagebox.showinfo('Yhteenlaskun tulos viestiikkunassa', plus)

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