<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fi">
	<id>https://wikikko.info/w3/index.php?action=history&amp;feed=atom&amp;title=Python_graafinen_k%C3%A4ytt%C3%B6liittym%C3%A4</id>
	<title>Python graafinen käyttöliittymä - Muutoshistoria</title>
	<link rel="self" type="application/atom+xml" href="https://wikikko.info/w3/index.php?action=history&amp;feed=atom&amp;title=Python_graafinen_k%C3%A4ytt%C3%B6liittym%C3%A4"/>
	<link rel="alternate" type="text/html" href="https://wikikko.info/w3/index.php?title=Python_graafinen_k%C3%A4ytt%C3%B6liittym%C3%A4&amp;action=history"/>
	<updated>2026-04-17T14:38:35Z</updated>
	<subtitle>Tämän sivun muutoshistoria</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wikikko.info/w3/index.php?title=Python_graafinen_k%C3%A4ytt%C3%B6liittym%C3%A4&amp;diff=829&amp;oldid=prev</id>
		<title>imported&gt;WikikkoSysop: 1 versio tuotiin</title>
		<link rel="alternate" type="text/html" href="https://wikikko.info/w3/index.php?title=Python_graafinen_k%C3%A4ytt%C3%B6liittym%C3%A4&amp;diff=829&amp;oldid=prev"/>
		<updated>2016-09-03T15:08:17Z</updated>

		<summary type="html">&lt;p&gt;1 versio tuotiin&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uusi sivu&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Yleistä==&lt;br /&gt;
Pääsivu: [[Python]]&lt;br /&gt;
&lt;br /&gt;
Ohjelman saaminen toimimaan ikkunassa ei ole kovin vaikeaa. Tällä sivulla käydään läpi perusteita. GUI widgets (Graphical User Interface) eli graafisen käyttöliittymän elementtejä esimerkiksi ikkuna, valikko, kuvake. Attribuutti on esimerkiksi background=&amp;quot;red&amp;quot;. Ikkunointijärjestelmä esim. Windows 8, Linux Gnome ja Mac OS X. Kirjasto esimerkiksi Tk sovittaa käytettävään ikkunointijärjestelmään.&lt;br /&gt;
&lt;br /&gt;
Tehdään ikkuna jossa otsikko, tekstiä, syöttöruutu ja painike&lt;br /&gt;
&lt;br /&gt;
 from tkinter import *&lt;br /&gt;
 &lt;br /&gt;
 ikkuna1 = Tk()   # luodaan ikkunaolio&lt;br /&gt;
 ikkuna1.title(&amp;quot;Ikkunan otsikko&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 muuttuja1 = Label(ikkuna1, text=&amp;quot;Teksti1&amp;quot;) # luodaan Label-olio&lt;br /&gt;
 muuttuja2 = Entry(ikkuna1, width=15)&lt;br /&gt;
 muuttuja3 = Button(ikkuna1, text=&amp;quot;Painiketeksti&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 # Näytetään ikkunassa seuraavassa järjestyksessä&lt;br /&gt;
 muuttuja3.pack()   # metodi tuo esille&lt;br /&gt;
 muuttuja2.pack()&lt;br /&gt;
 muuttuja1.pack()&lt;br /&gt;
 &lt;br /&gt;
 mainloop()&lt;br /&gt;
&lt;br /&gt;
==Sijoittelu ikkunassa (geometria)==&lt;br /&gt;
* Elementit voidaan sijoittaa ikkunaan eri tavoin ja niiden tulisi näkyä ennalta suunnitellusti vaikka käyttäjä mielivaltaisesti muuttaa ikkunan kokoa. pack() tai vastaava tuo elementin näkyviin. Elementtien järjestys toisiinsa nähden ja kohta ikkunassa määritetään näiden avulla.&lt;br /&gt;
* sijoittelu&amp;quot;komento&amp;quot; voidaan kirjoittaa omalle riveille tai rivin loppuun:&lt;br /&gt;
 muuttuja3 = Button(ikkuna1, text=&amp;quot;Painiketeksti&amp;quot;).pack()&lt;br /&gt;
 &lt;br /&gt;
 muuttuja3 = Button(ikkuna1, text=&amp;quot;Painiketeksti&amp;quot;)&lt;br /&gt;
 muuttuja3.pack()&lt;br /&gt;
 &lt;br /&gt;
 pack() ryhmittelee vapaasti. Esim. muuttuja1.pack(side=LEFT)&lt;br /&gt;
 grid() ryhmittelee taulukkona&lt;br /&gt;
 place() ryhmittelee määrättyyn paikkaan&lt;br /&gt;
&lt;br /&gt;
==Toiminnallisuus==&lt;br /&gt;
Toiminnallisuus suoritetaan lisäämällä esimerkiksi Button kohtaan command=funktionimi ja tehdään normaalisti def komennolla toiminto.&lt;br /&gt;
&lt;br /&gt;
 from tkinter import *&lt;br /&gt;
 &lt;br /&gt;
 def ponnahdusikkuna(): &lt;br /&gt;
     muuttuja2.config(bg=&amp;quot;white&amp;quot;) # vaihdetaan ruutu valkoiseksi&lt;br /&gt;
     messagebox.showinfo(&amp;quot;Otsikko&amp;quot;, muuttuja2.get()) # avataan ponnahdusikkuna&lt;br /&gt;
     muuttuja5.delete(0, END) # tyhjennetään alin kenttä&lt;br /&gt;
     muuttuja5.insert(0, muuttuja2.get()) # lisätään kenttään kirjoitettu teksti&lt;br /&gt;
 &lt;br /&gt;
 def lopetusvahvistus():&lt;br /&gt;
     if messagebox.askyesno(&amp;quot;Otsikko&amp;quot;,&amp;quot;Lopetetaanko?&amp;quot;): # True-arvolla (Yes) ikkuna1 suljetaan&lt;br /&gt;
         ikkuna1.destroy()&lt;br /&gt;
     &lt;br /&gt;
 ikkuna1 = Tk()   # luodaan ikkunaolio&lt;br /&gt;
 kehys1 = Frame(ikkuna1, relief=SUNKEN, bd=10) # upotetaan kehykseen&lt;br /&gt;
 &lt;br /&gt;
 muuttuja1 = Label(kehys1, text=&amp;quot;Kirjoita jotain&amp;quot;)&lt;br /&gt;
 muuttuja2 = Entry(kehys1, width=15, bg=&amp;quot;red&amp;quot;)&lt;br /&gt;
 muuttuja3 = Button(ikkuna1, text=&amp;quot;Tulosta ponnahdusikkunaan&amp;quot;, command = ponnahdusikkuna)&lt;br /&gt;
 muuttuja4 = Button(ikkuna1, text=&amp;quot;Lopeta&amp;quot;, command = lopetusvahvistus)&lt;br /&gt;
 muuttuja5 = Entry(ikkuna1, width=15)&lt;br /&gt;
 &lt;br /&gt;
 kehys1.pack()&lt;br /&gt;
 muuttuja1.pack()&lt;br /&gt;
 muuttuja2.pack()&lt;br /&gt;
 muuttuja3.pack(side=RIGHT)   # sijoitetaan painike ikkunan oikeaan reunaan&lt;br /&gt;
 muuttuja5.pack()&lt;br /&gt;
 muuttuja4.pack()&lt;br /&gt;
 &lt;br /&gt;
 mainloop()&lt;br /&gt;
&lt;br /&gt;
==Räätälöity ponnahdusikkuna==&lt;br /&gt;
 from tkinter import *&lt;br /&gt;
 &lt;br /&gt;
 def viestiIkkuna():&lt;br /&gt;
     win = Toplevel()&lt;br /&gt;
     win.title(&amp;#039;Ponnahdusikkunan otsikko&amp;#039;)&lt;br /&gt;
     message = &amp;quot;Ponnahdusikkunan teksti&amp;quot;&lt;br /&gt;
     Label(win, text=message).pack()&lt;br /&gt;
     Button(win, text=&amp;#039;Painikkeen teksti&amp;#039;, command=win.destroy).pack()&lt;br /&gt;
     &lt;br /&gt;
 ikkuna = Tk()&lt;br /&gt;
 &lt;br /&gt;
 Button(ikkuna, text=&amp;#039;Avaa ponnahdusikkuna&amp;#039;, command=viestiIkkuna).pack()&lt;br /&gt;
 &lt;br /&gt;
 ikkuna.mainloop()&lt;br /&gt;
&lt;br /&gt;
==Ponnahdusikkuna==&lt;br /&gt;
 # Esimerkki 1&lt;br /&gt;
 from tkinter import *&lt;br /&gt;
 main = Tk()&lt;br /&gt;
 text = Text(main, width=40, height=10, wrap=&amp;quot;char&amp;quot;)&lt;br /&gt;
 text.pack()&lt;br /&gt;
 text.insert(INSERT, &amp;quot;&amp;quot;.join(map(str, range(100))))&lt;br /&gt;
 text.tag_add(SEL, &amp;quot;1.0&amp;quot;, &amp;quot;end&amp;quot;)&lt;br /&gt;
 text.focus_set()&lt;br /&gt;
 def jump():&lt;br /&gt;
     text.after(500, btn.focus_set)&lt;br /&gt;
     text.after(1000, text.focus_set)&lt;br /&gt;
 btn = Button(main, text=&amp;quot;Ok&amp;quot;, command=jump)&lt;br /&gt;
 btn.pack()&lt;br /&gt;
 main.mainloop()&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Tietokoneet]]&lt;/div&gt;</summary>
		<author><name>imported&gt;WikikkoSysop</name></author>
	</entry>
</feed>