Python tarjoaa useita vaihtoehtoja graafisen käyttöliittymän (GUI) kehittämiseen. Kaikista GUI-menetelmistä tkinter on yleisimmin käytetty menetelmä. Se on vakio Python-käyttöliittymä Pythonin mukana toimitettuun Tk GUI -työkalupakettiin. Python Tkinter on nopein ja helpoin tapa luoda GUI-sovelluksia. GUI:n luominen Tkinterin avulla on helppo tehtävä.
Sisällysluettelo
- Luo ensimmäinen Tkinter GUI -sovellus
- Tkinter-widget
- Väri- ja fonttivaihtoehto Tkinterissä
- Geometrian hallinta
Luodaksesi Tkinter Python -sovelluksen, noudata näitä perusvaiheita:
- Tuo tkinter-moduuli : Tämä tehdään aivan kuten minkä tahansa muun moduulin tuonti Python . Huomaa, että Python 2.x:ssä moduulin nimi on 'Tkinter', kun taas Python 3.x:ssä sen nimi on 'tkinter'.
- Luo pääikkuna (säilö) : Pääikkuna toimii säilönä kaikille myöhemmin lisäämillesi GUI-elementeille.
- Lisää widgetit pääikkunaan : Voit lisätä pääikkunaan minkä tahansa määrän widgetejä, kuten painikkeita, tarroja, syöttökenttiä jne., suunnitellaksesi käyttöliittymän haluamallasi tavalla.
- Käytä tapahtumalaukaisimia widgeteissä : Voit liittää widgeteihin tapahtumalaukaisimia määrittääksesi, kuinka ne reagoivat käyttäjien vuorovaikutukseen.
Luo ensimmäinen Tkinter GUI -sovellus
Käytössä on kaksi päämenetelmää, jotka käyttäjän on muistettava luodessaan Python-sovellusta graafisella käyttöliittymällä.
linux tiedostot
Tk()
Pääikkunan luomiseksi tkinter tarjoaa menetelmän 'Tk(screenName=None, baseName=None, className='Tk', useTk=1)'. Voit muuttaa ikkunan nimeä muuttamalla luokanNimen haluamaksesi. Sovelluksen pääikkunan luomiseen käytetty peruskoodi on:
mainloop()
On olemassa menetelmää, joka tunnetaan nimellä mainloop(), jota käytetään, kun sovellus on valmis suoritettavaksi. mainloop() on ääretön silmukka, jota käytetään sovelluksen suorittamiseen, tapahtuman odottamiseen ja tapahtuman käsittelemiseen niin kauan kuin ikkunaa ei ole suljettu.
Esimerkki
Python 3 import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>
Lähtö
Tkinter-widget
On olemassa useita widgetejä, jotka voit laittaa tkinter-sovellukseesi. Jotkut tärkeimmistä widgeteistä on selitetty alla:
1. Label
Se viittaa näyttöruutuun, johon voit laittaa mitä tahansa tekstiä tai kuvaa, joka voidaan päivittää milloin tahansa koodin mukaan. Yleinen syntaksi on:
w=Label(master, option=value) master is the parameter used to represent the parent window.>Python 3
from tkinter import * root = Tk() w = Label(root, text='GeeksForGeeks.org!') w.pack() root.mainloop()>
Lähtö
2. Painike
Tätä widgetiä käytetään painikkeen lisäämiseen sovellukseesi. Yleinen syntaksi on:
w=Button(master, option=value)>
master on parametri, jota käytetään edustamaan pääikkunaa. Painikkeiden muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina.Python 3>
>
>
import tkinter as tk r = tk.Tk() r.title('Counting Seconds') button = tk.Button(r, text='Stop', width=25, command=r.destroy) button.pack() r.mainloop()>
Lähtö

3. Sisäänpääsy
Sitä käytetään syöttämään yksirivinen tekstinsyöttö käyttäjältä. Monirivisessä tekstinsyötössä käytetään Teksti-widgetiä. Yleinen syntaksi on:
w=Entry(master, option=value)>
master on parametri, jota käytetään edustamaan pääikkunaa. Widgetin muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
Python 3 from tkinter import * master = Tk() Label(master, text='First Name').grid(row=0) Label(master, text='Last Name').grid(row=1) e1 = Entry(master) e2 = Entry(master) e1.grid(row=0, column=1) e2.grid(row=1, column=1) mainloop()>
Lähtö
konstruktori javassa

4. CheckButton
Voit valita minkä tahansa määrän vaihtoehtoja näyttämällä useita vaihtoehtoja käyttäjälle vaihtopainikkeina. Yleinen syntaksi on:
w = CheckButton(master, option=value)>
Tämän widgetin muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
Python 3 from tkinter import * master = Tk() var1 = IntVar() Checkbutton(master, text='male', variable=var1).grid(row=0, sticky=W) var2 = IntVar() Checkbutton(master, text='female', variable=var2).grid(row=1, sticky=W) mainloop()>
Lähtö

5. Radiopainike
Sitä käytetään tarjoamaan käyttäjälle monivalintavaihtoehto. Se tarjoaa käyttäjälle useita vaihtoehtoja, ja käyttäjän on valittava yksi vaihtoehto. Yleinen syntaksi on:
w = RadioButton(master, option=value)>
Tämän widgetin muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
Python 3 from tkinter import * root = Tk() v = IntVar() Radiobutton(root, text='GfG', variable=v, value=1).pack(anchor=W) Radiobutton(root, text='MIT', variable=v, value=2).pack(anchor=W) mainloop()>
Lähtö

6. Listbox
Se tarjoaa käyttäjälle luettelon, josta käyttäjä voi hyväksyä minkä tahansa määrän vaihtoehtoja. Yleinen syntaksi on:
w = Listbox(master, option=value) master is the parameter used to represent the parent window.>
Widgetin muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
Python 3 from tkinter import * top = Tk() Lb = Listbox(top) Lb.insert(1, 'Python') Lb.insert(2, 'Java') Lb.insert(3, 'C++') Lb.insert(4, 'Any other') Lb.pack() top.mainloop()>
Lähtö

7. Vierityspalkki
Se viittaa liukuohjaimeen, jota käytetään lueteltujen widgetien toteuttamiseen. Yleinen syntaksi on:
w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>
Widgetin muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
Python 3 from tkinter import * root = Tk() scrollbar = Scrollbar(root) scrollbar.pack(side=RIGHT, fill=Y) mylist = Listbox(root, yscrollcommand=scrollbar.set) for line in range(100): mylist.insert(END, 'This is line number' + str(line)) mylist.pack(side=LEFT, fill=BOTH) scrollbar.config(command=mylist.yview) mainloop()>
Lähtö

8. Valikko
Sitä käytetään kaikenlaisten sovelluksen käyttämien valikoiden luomiseen. Yleinen syntaksi on:
w = Menu(master, option=value) master is the parameter used to represent the parent window.>
Tämän widgetin muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
Python 3 from tkinter import * root = Tk() menu = Menu(root) root.config(menu=menu) filemenu = Menu(menu) menu.add_cascade(label='File', menu=filemenu) filemenu.add_command(label='New') filemenu.add_command(label='Open...') filemenu.add_separator() filemenu.add_command(label='Exit', command=root.quit) helpmenu = Menu(menu) menu.add_cascade(label='Help', menu=helpmenu) helpmenu.add_command(label='About') mainloop()>
Lähtö

9. Yhdistelmälaatikko
Combobox-widget luodaan käyttämällä ttk.Combobox-luokkaa tkinter.ttk-moduulista. Yhdistelmälaatikon arvot määritetään arvot-parametrilla. Oletusarvo asetetaan asetusmenetelmällä. Tapahtumakäsittelijätoiminto on_select on sidottu Comboboxiin sidosmenetelmällä, joka päivittää otsikon valitulla alkiolla aina, kun kohde valitaan.
Python 3 import tkinter as tk from tkinter import ttk def on_select(event): selected_item = combo_box.get() label.config(text='Selected Item: ' + selected_item) root = tk.Tk() root.title('Combobox Example') # Create a label label = tk.Label(root, text='Selected Item: ') label.pack(pady=10) # Create a Combobox widget combo_box = ttk.Combobox(root, values=['Option 1', 'Option 2', 'Option 3']) combo_box.pack(pady=5) # Set default value combo_box.set('Option 1') # Bind event to selection combo_box.bind('<>', on_select) root.mainloop()>
Lähtö
10. Mittakaava
Sitä käytetään tarjoamaan graafinen liukusäädin, jonka avulla voit valita minkä tahansa arvon kyseiseltä asteikolta. Yleinen syntaksi on:
w = Scale(master, option=value)master is the parameter used to represent the parent window.>
Widgetin muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
Python 3 from tkinter import * master = Tk() w = Scale(master, from_=0, to=42) w.pack() w = Scale(master, from_=0, to=200, orient=HORIZONTAL) w.pack() mainloop()>
Lähtö

yksitoista. Huipputaso
Tätä widgetiä ohjaa suoraan ikkunanhallinta. Se ei tarvitse mitään ylätason ikkunaa toimiakseen. Yleinen syntaksi on:
w = TopLevel(master, option=value)>
Widgetin muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
Python 3 from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()>
Lähtö

12. Viesti
Se viittaa moniriviseen ja ei-muokattavaan tekstiin. Se toimii samalla tavalla kuin Label. Yleinen syntaksi on:
w = Message(master, option=value) master is the parameter used to represent the parent window.>
Widgetin muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
Python 3 from tkinter import * main = Tk() ourMessage = 'This is our Message' messageVar = Message(main, text=ourMessage) messageVar.config(bg='lightgreen') messageVar.pack() main.mainloop()>
Lähtö

13. MenuButton
Se on osa ylävalikosta, joka pysyy ikkunassa koko ajan. Jokaisella valikkopainikkeella on oma toimintonsa. Yleinen syntaksi on:
w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>
Widgetin muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
Python 3 from tkinter import * top = Tk() mb = Menubutton ( top, text = 'GfG') mb.grid() mb.menu = Menu ( mb, tearoff = 0 ) mb['menu'] = mb.menu cVar = IntVar() aVar = IntVar() mb.menu.add_checkbutton ( label ='Contact', variable = cVar ) mb.menu.add_checkbutton ( label = 'About', variable = aVar ) mb.pack() top.mainloop()>
Lähtö

14. Edistymispalkki
Tkinter-sovellus, jossa on edistymispalkki-widget ja painike edistymisen aloittamiseksi. Kun painiketta napsautetaan, edistymispalkki täyttyy jopa 100 % lyhyessä ajassa, mikä simuloi tehtävää, jonka suorittaminen vie aikaa.
Python 3 import tkinter as tk from tkinter import ttk import time def start_progress(): progress.start() # Simulate a task that takes time to complete for i in range(101): # Simulate some work time.sleep(0.05) progress['value'] = i # Update the GUI root.update_idletasks() progress.stop() root = tk.Tk() root.title('Progressbar Example') # Create a progressbar widget progress = ttk.Progressbar(root, orient='horizontal', length=300, mode='determinate') progress.pack(pady=20) # Button to start progress start_button = tk.Button(root, text='Start Progress', command=start_progress) start_button.pack(pady=10) root.mainloop()>
Lähtö
viisitoista. SpinBox
Se on 'Entry'-widgetin merkintä. Täällä arvo voidaan syöttää valitsemalla numeroiden kiinteä arvo. Yleinen syntaksi on:
w = SpinBox(master, option=value)>
Widgetin muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
Python 3 from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>
Lähtö:

16. Teksti
Jos haluat muokata monirivistä tekstiä ja muotoilla sen näyttötapaa. Yleinen syntaksi on:
w =Text(master, option=value)>
On olemassa useita vaihtoehtoja, joita käytetään muuttamaan tekstin muotoa. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
tcp vs udpPython 3
from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>
Lähtö

17. Kangas
Sitä käytetään piirtämään kuvia ja muita monimutkaisia asetteluja, kuten grafiikkaa, tekstiä ja widgetejä. Yleinen syntaksi on:
w = Canvas(master, option=value) master is the parameter used to represent the parent window.>
Widgetin muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
Python 3 from tkinter import * master = Tk() w = Canvas(master, width=40, height=60) w.pack() canvas_height=20 canvas_width=200 y = int(canvas_height / 2) w.create_line(0, y, canvas_width, y ) mainloop()>
Outpu

18. PannedWindow
Se on kontti-widget, jota käytetään käsittelemään siihen järjestettyjä ruutuja. Yleinen syntaksi on:
w = PannedWindow(master, option=value)>
Master on parametri, jota käytetään edustamaan pääikkunaa. Widgetin muodon muuttamiseen käytetään useita vaihtoehtoja. Vaihtoehtojen määrä voidaan välittää pilkuilla erotettuina parametreina. Jotkut niistä on lueteltu alla.
Python 3 from tkinter import * m1 = PanedWindow() m1.pack(fill=BOTH, expand=1) left = Entry(m1, bd=5) m1.add(left) m2 = PanedWindow(m1, orient=VERTICAL) m1.add(m2) top = Scale(m2, orient=HORIZONTAL) m2.add(top) mainloop()>
Lähtö

Värivaihtoehto Tkinterissä
Tämä esimerkki havainnollistaa eri värivaihtoehtojen käyttöä Tkinter-widgeteissä, mukaan lukien aktiiviset tausta- ja etualan värit, tausta- ja etualan värit, käytöstä poistetut tilavärit ja valintavärit. Jokaisessa esimerkin widgetissä on eri värivaihtoehto, mikä antaa visuaalisen esityksen siitä, kuinka nämä asetukset vaikuttavat widgetien ulkonäköön.
Python 3 import tkinter as tk root = tk.Tk() root.title('Color Options in Tkinter') # Create a button with active background and foreground colors button = tk.Button(root, text='Click Me', activebackground='blue', activeforeground='white') button.pack() # Create a label with background and foreground colors label = tk.Label(root, text='Hello, Tkinter!', bg='lightgray', fg='black') label.pack() # Create an Entry widget with selection colors entry = tk.Entry(root, selectbackground='lightblue', selectforeground='black') entry.pack() root.mainloop()>
Lähtö
Lue lisää fontin parantamisesta: Tkinter-fontti
Geometrian hallinta
Tkinter tarjoaa myös pääsyn widgetien geometriseen kokoonpanoon, joka voi järjestää widgetit pääikkunoissa. Geometry Manager -luokkia on pääasiassa kolme.
java tulostus
pack() -menetelmä
Se järjestää widgetit lohkoihin ennen niiden sijoittamista yläwidgetiin.
Python 3 import tkinter as tk root = tk.Tk() root.title('Pack Example') # Create three buttons button1 = tk.Button(root, text='Button 1') button2 = tk.Button(root, text='Button 2') button3 = tk.Button(root, text='Button 3') # Pack the buttons vertically button1.pack() button2.pack() button3.pack() root.mainloop()>
Lähtö
grid()-menetelmä
Se järjestää widgetit ruudukkoon (taulukkomainen rakenne) ennen kuin ne asetetaan yläwidgetiin.
Python 3 import tkinter as tk root = tk.Tk() root.title('Grid Example') # Create three labels label1 = tk.Label(root, text='Label 1') label2 = tk.Label(root, text='Label 2') label3 = tk.Label(root, text='Label 3') # Grid the labels in a 2x2 grid label1.grid(row=0, column=0) label2.grid(row=0, column=1) label3.grid(row=1, column=0, columnspan=2) root.mainloop()>
Lähtö
place() -menetelmä
Se järjestää widgetit asettamalla ne ohjelmoijan ohjaamiin tiettyihin paikkoihin.
Python 3 import tkinter as tk root = tk.Tk() root.title('Place Example') # Create a label label = tk.Label(root, text='Label') # Place the label at specific coordinates label.place(x=50, y=50) root.mainloop()>
Lähtö