A Python programozási nyelv

GUI

Régóta szerves része a Pythonnak egy platform független ablakozós eszközkészlet, ami a Tkinter modul - és ennek kibővítse, a Tix modul - használatával érhető el. (A Tix modul bemutatása nem része ezen lapnak.)

Tkinter olyan dolgok halmaza, ami implementálja a Tk widgeteket, mint Python-osztályokat.

Nem a Tk az egyetlen GUI-ja a Pythonnak, de ez a leggyakraban használt.

Hello World

Először nézzük, hogyan tudunk egy egyszerű Hello World programot írni.

# File: hello1.py
# importáljuk a Tkinter modult

# Ha „import Tkinter” –t használnánk, akkor máshogy tudnánk # használni a függvényeket, erre látunk is

# példát a geometriai kezelők packer részénél
 
from Tkinter import *
# Tkinter inicializálása – egy root vezérlőelem létrehozása
# ez egy ablak címsorral és más, az ablakkezelő
# (windowmanager) által
# nyújtott díszítésekkel
# Ezt minden más vezérlőelem előtt kell létrehozni
root = Tk()
# Egy címkét létrehozunk a „root” ablakban
w = Label(root, text="Hello, world!")
# például a pack metódussal tehetjük láthatóvá a a címkét
w.pack()
# Tkinter eseményciklus, a program addig áll ebben a
# ciklusban, amíg be nem zárjuk az ablakot
# Az alkalmazói ablak mindaddig nem fog megjelenni, amíg a
# ciklus el nem indul!
root.mainloop()

OO Hello World

Nagyobb programoknál természetesen osztályokba foglaljuk a kódot. Erre jó példa a következő:

# File: hello2.py

from Tkinter import * class App: def __init__(self, master): # a konstruktor egy Frame vezérlőelemet hoz létre # ami nem tartalmaz most mést, mint 2 gombot # az egyik kilép, a másik pedig a konzolra irja, hogy # „Sziasztok!” minden gombnyomasnal frame = Frame(master) frame.pack() self.button=Button(frame, text="QUIT",fg="red",command=frame.quit) self.button.pack(side=LEFT) self.hi_there = Button(frame, text="Hello",command=self.say_hi) self.hi_there.pack(side=LEFT) def say_hi(self): print "Sziasztok!" # Tk root vezerloelem letrehozasa root = Tk() # app az App osztály egy példánya, ami a root-ot mint szülő # vezérlőelemet használja app = App(root) root.mainloop()

Geometriai kezelő mechanizmusok

Azt, hogy különböző vezérlőelemek (szövegdoboz, nyomógomb, checkbox, ...) hogyan helyezkedjenek el egy ablakban, különböző módon adhatjuk meg. A geometriai kezelők relatív helyzetet specifikálnak a tartalmazó objektumukban (Ez nem biztos, hogy egy ablak, ablakon belül elhelyezhetünk például frame-eket is, ekkor a frame-en belüli helyét adja meg).

Fontos megjegyezni, hogy a létrehozott vezérlőelemek nem jelennek meg amikor létrehozzuk, csak akkor, amikor megadjuk a helyét!

Geometriai kezelő mechanizmusok fajtái:

Packer

Jól specifikálja a pontos koordinátákat, a felül(above), balra (to the left), kitöltve(filling) kifejezések használatával. Meghatározható az ablakok mérete is. Különböző dolgokat frame-ekbe tehetünk a szép kinézet érdekében.

A pack() metódus meghívásával tudjuk megadni a helyzetét az vezérlőelemnek. Defaultból legfelülre kerül.

pl.:

import Tkinter gyoker=Tkinter.Tk() #Label egy címkét tesz ki, ld. később L1=Tkinter.Label(gyoker, text = 'Hello vilag', width=45, height=15, bg='red') L1.pack(fill = Tkinter.X,side=Tkinter.BOTTOM) #itt elég lett volna L1.pack() is Tkinter.mainloop()

Ennek eredménye: piros háttéren kiírva, hogy „hello vilag”, vízszintesen töltött, alulra igazított 15 magas kiírás. Az ablak teteje fehér.

A pack() további tulajdonságainak megadása a következő paraméterekkel lehetséges:

Név

Leírás

Expand

lehetséges értékei: 0(alapértelmezett) vagy 1 vagy "true" vagy "false" ;kiterjedjen-e úgy a vezérlőelem, hogy kitöltse az összes rendelkezésre álló helyet

Fill

lehetséges értékek: 'x', 'y', 'both', 'none'(alapértelmezett); kitöltse-e a vezérlőelem a szülő ablak vagy a vezérlőelem által biztosított teljes helyet.

Side

lehetséges értékei: 'left', 'right', 'top'(alapértelmezett), 'bottom'; a vezérlőelem a rendelkezésre álló helyen hol helyezkedjen el

ipadx és ipady

a vezérlőelem által elfoglalt hely nagysága belül

padx és pady

a vezérlőelem által elfoglalt hely nagysága kívül

Bővebben a referenciában.

Grid

A szülő ablakot vagy a vezérlőelemet egy kétdimenziós táblázat soraiba (row) illetve oszlopaiba (column) teszi.

pl.

import Tkinter gyoker=Tkinter.Tk() L1=Tkinter.Label(gyoker, text = 'Hello vilag') # Label egy címkét tesz ki, ld. később L1.grid(row = 0, column = 0) # column alapértelmezett értéke 0, így azt nem kellett # volna kitenni Tkinter.mainloop()

Tulajdonságok:

A .grid() eljárás

Egy w vezérlőelem megjelenítése:

w.grid(option, …)

Ez az eljárás egy w vezérlőelemet regisztrál a grid geometriai kezelővel. Enélkül a vezérlőelem csak belül létezik.

A grid() geometriai kezelő opciói:

Column

Annak az oszlopnak a száma, ahova a vezérlőelemet tenni akarod, nullától számolva. Az alapértelmezett értéke 0.

columnspan

Általában egy vezérlőelem csak egy cellát foglal el a rácsban. Azonban egy sor több celláját is tehetjük egy nagyobb cellába úgy, hogy a columnspan opciónak az egyesítendő cellák számát adjuk meg. Például, w.grid(row=0, column=2, columnspan=3) a w vezérlőelemet a 0-adik sorba, a 2-es, 3-as és 4-es oszlopok által kifeszített cellába teszi.

Ipadx

x kitöltése belül.

Ipady

y kitöltése belül

Padx

x kitöltése kívül

Pady

y kitöltése kívül

Row

Annak az sornak a száma, ahova a vezérlőelemet tenni akarod, nullától számolva. Az alapértelmezett érték a következő, nem foglalt sor sorszáma

Rowspan

Ugyanaz, mint a columnspan, csak sorokra

Sticky

Ez az opció azt határozza meg, hogyan osszunk fel bármely más helyet a cellán belül, ami a vezérlőelem természetes méretével nem meghatározott

Az oszlop és sor méret meghatározása

Hacsak nem használunk adott méreteket, egy adott vezérlőelem szélessége egy oszlopon belül a legszélesebb cella szélességével lesz egyenlő, és a magassága egy sornak a legnagyobb sornak a magassága lesz. Egy vezérlőelem sticky attribútuma csak akkor szabályoz, ha olyan helyre kerül, ahova nem passzol pontosan.

Ha felül szeretnénk írni a soroknak és az oszlopoknak ezt az automatikus méretezését, ezeket a függvényeket használhatjuk a szülő vezérlőelemnél:

w.columnconfigure(N, opció=érték, ... )

A w vezérlőelemet tartalmazó grid elrendezésében, az N oszlop konfigurálása úgy, hogy az adott opció a megadott értéket veszi fel.

w.rowconfigure(N,opció=érték, ... )

A w vezérlőelemet tartalmazó grid elrendezésében, az N oszlop konfigurálása úgy, hogy az adott opció a megadott értéket veszi fel.

A következő opciók használhatók az oszlopok és a sorok konfigurálásához:

minsize

Az oszlopnak vagy a sornak a minimális mérete pixelekben. Ha nincs semmi az adott oszlopban vagy sorban, akkor még akkor sem jelenik meg, ha használjuk ezt az opciót

pad

Azon pixelek száma, amit az adott sorhoz vagy oszlophoz adunk, a legnagyobb cellán felül a sorban vagy oszlopban

weight

Egy oszlopnak vagy sornak a rugalmasságát állíthatjuk be ezzel az opcióval, egy olyan értéket megadva, ami ennek az oszlopnak vagy sornak a relatív súlyát adja, az extra helyek elosztásánál. Például, ha egy w vezérlőelem egy grid elrendezést tartalmaz, akkor ezek a sorok az extra helyek háromnegyedét az első oszlophoz osztják, míg az egynegyedét a második oszlophoz:

w.columnconfigure(0, weight=3)

w.columnconfigure(1, weight=1)

Ezen opció használata nélkül, az oszlop vagy a sor nem lesz kinyújtva.

A gyökérablak átméretezhetővé tétele

Ennek eléréséhez az előbb leírt sor és oszlop méret kezelésénél használt technikákat kell használni. Ez azonban nem elegendő.

Tekintsük a következő programot:

#!/usr/local/bin/python
from Tkinter import *
 
class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.grid()
self.createWidgets()
 
def createWidgets(self):
self.quitButton = Button ( self, text="Quit",
command=self.quit )
self.quitButton.grid()
 
app = Application()
app.master.title("Sample application")
app.mainloop()

Ez csupán egy Quit gombot tartalmaz. Ezt az alkalmazást futtatva, majd átméretezve az ablakot, azt kapjuk, hogy a gomb ugyanabban a méretben marad az ablak közepén.

A .__createWidgets() eljárást egy kicsit átírva már a gomb mindig kitölti a rendelkezésére álló teret.

def createWidgets(self):
top=self.winfo_toplevel()
    # legfelsőbb szintű ablak
top.rowconfigure(0, weight=1)
    # a legfelsőbb szintű ablak 0. sorát teszi nyújthatóvá
top.columnconfigure(0, weight=1)
    # a legfelsőbb szintű ablak 0. oszlopát teszi nyújthatóvá
self.rowconfigure(0, weight=1)
self.columnconfigure(0, weight=1)
self.quit = Button ( self, text="Quit", command=self.quit )
self.quit.grid(row=0, column=0, sticky=N+S+E+W)
          # a sticky argumentum ezen megadása által nyújtható ki a gomb a cellához

Egy további módosítást szükséges még megtenni. A konstruktor a második sorát kell átírni.

def __init__(self, master=None):
Frame.__init__(self, master)
self.grid(sticky=N+S+E+W)
self.createWidgets()
Place

A helyet a szülőablakhoz vagy a vezérlőelemhez képest abszolút vagy relatív hivatkozással adjuk meg. Az abszolút megadásnál az x és az y, míg a relatív megadásnál a relx és a rely paramétereket használjuk. (Megj.: a relatív hivatkozásnál a bal ill. jobb szél, felső il. alsó rész a 0.0 és 1.0)

Vezérlőelem változók

Arra használhatók, hogy az ablakban lévő értéket megkapjuk.

Sok hasznos alosztálya van a Variable osztálynak: StringVar, IntVar, DoubleVar és BooleanVar. Egy változó jelenlegi értékét megkaphatjuk a get() függvénnyel, míg az értékének megváltoztatásához a set() -et használjuk.

pl.:

class App(Frame): def __init__(self, master=None): Frame.__init__(self, master) self.pack() self.entrythingy = Entry() self.entrythingy.pack() # alkalmazás változó - application variable self.contents = StringVar() # ennek értékének beállítása self.contents.set("this is a variable") # megmondjuk az adatbekérő vezérlőelemnek, # hogy "figyelje" ezt a változót self.entrythingy["textvariable"] = self.contents # enternél callback # a program kiírja az alkalmazás változó értékét, amikor # a felhasználó entert üt self.entrythingy.bind('', self.print_contents) def print_contents(self, event): print "hi. contents of entry is now ---->", self.contents.get()

Ablakkezelő

Ablak tulajdonságainak kezelésére - mint például ablak címének meghatározása, elhelyezése, stb. - van egy ún. wm parancs. Tkinter modulban ezek a parancsok metódusként vannak implementálva a Wm osztályban. Az elsődleges vezérlőeleme a Wm osztály alosztályai, így a Wm-beli metódusokat közvetlenül lehet hívni.

pl.:

from Tkinter import * gyoker = Tk() gyoker.title("Szia ablakcim") gyoker.maxsize(1000, 400) gyoker.mainloop()

from Tkinter import * class App(Frame): def __init__(self, master=None): Frame.__init__(self, master) self.pack() # alkalmazás létrehozása myapp = App() # # here are method calls to the window manager class # myapp.master.title("My Do-Nothing Application") myapp.master.maxsize(1000, 400) # program indítása # mainloop addig vár, amíg valaki be nem zárja az ablakot myapp.mainloop()

Vezérlőelem (Widget) osztályok:

Widget

Leírás

Button

Egyszerű nyomógomb,egy parancsot végrehajtására vagy más műveletre

Canvas

Gráfok és pontok rajzolására, grafikus szerkesztő létrehozására

Checkbutton

Érték bejelölésére használható

Entry

Adatbeviteli mező

Frame

Gyűjtő(container); más vezérlőelemek összefogására, alkalmazás vagy dialógusablak kinézetének szervezésére való; lehet szegélye és háttere

Label

Szöveg vagy kép elhelyezése

Listbox

Lehetséges értékek listája

Menu

Legördülő és felugró menü létrehozása

Menubotton

Legördülő menü létrehozása

Message

Szöveg elhelyezése; hasonló a labelhez, csak meghatározható a szélesség vagy az arány

Radiobutton

Egy érték meghatározása,ami több különböző értéket vehet fel

Scale

Numerikus érték beállítása csuszkával

Scrollbar

Cancas, Entry, Listbox és Text vezérlőelemeknél használható görgetősáv

Text

Formázott szöveg kiírása; támogatja a beágyazott képek és ablakok kiírásat is

Toplevel

Különálló szülőablakként jeleníti meg a gyűjtő (frame) ablakot

Megj. Tkinter osztályban nincs hierarchia a Widget osztályok között.

Vezérlőelemek formázása

Minden Tkinter osztálybeli vezérlőelemet egy alapszinten lehet formázni, mint például megadni a színét, betűtípusát stb.

Színek meghatározása:

Meghatározhatjuk a szöveg színét, a background és a foreground használatával. A színeket megadhatjuk egyszerűen a nevükkel, vagy RGB komponenseinek megadásával. (Másféle megadás is ismert, ezek részletezése túlmutat ezen dokumentum részletein.)

Az RGB-s alak a következő:  #RRGGBB , ahol RR,  GG,  BB hexadecimális megfelelője a pirosnak, zöldnek és a kéknek. Íme egy példa, hogy csinálhatunk Tk szín specifikációt egy 3-asból

tk_rgb = "#%02x%02x%02x" % (128, 192, 200)

Betűtípus megadása:

Többféleképen is megadhatjuk a betűtípust. Egyik fajtája, amikor a Font osztály által támogatott stílus opciók közül választunk. Lehetséges értékek:

Opció

Típus

Leírás

Family

string

Betűtípus

Size

integer

Betűméret

Weight

constant

Betűvastagság (NORMAL vagy BOLD)

Slant

constant

Dőlt (NORMAL vagy ITALIC)

Underline

flag

Aláhúzás (1,0)

Overstrike

flag

Áthúzás (1,0)

Defaultból a sorok középre(CENTER) igazítottak, ezen a justify opcióval lehet változtatni. Lehetséges értékei: LEFT, RIGHT.

Egyéb lehetőségek:

Lehetőség van például az egér mozgásának, kattintásának vagy lenyomva tartásának figyelésére is.

A Button - nyomógomb vezérlőelem

Egy nyomógomb létrehozásához egy master-rel nevezett főablakban vagy frame-ben:

w = Button (master, option=value)

A konstruktor az új gomb objektummal tér vissza. Lehetséges opciók:

activebackground

Háttér színe, amikor a gomb a kurzor alatt van.

bd/borderwidth

Határ szélessége pixelekben. Alapértelmezés:2

bg/ background

háttérszín

command

Meghívandó függvény vagy metódus nyomógombra kattintáskor

image

Gombon megjelenő kép

state

Állapotai: DISABLED – szürkített gomb, irányíthatatlanná válik

textvariable

A StringVar() egy példánya, ami gombon lévő szöveggel van kapcsolatban. Ha a változó változik, akkor az új érték kerül a gombra

További opciók a dokumentációban.

A Canvas - vászon - vezérlőelem

A canvas egy derékszögű terület arra, hogy képeket vagy más komplex alakzatokat rajzoljunk Ezen ábrákat, szöveget, vezérlőelemet vagy frame-et helyezhetünk el. A következő metódusokkal hozhatunk létre objektumokat a vásznon:

Egy Canvas objektum létrehozása:

            w = Canvas ( master, option=value, ... )

A konstruktor az új vezérlőelemmel tér vissza. Használható opciók:

bd / borderwidth

Szegély szélessége pixelekben

bg / background

Canvas háttérszíne

closeenough

Ez határozza meg, mennyire kell közelnek lennie egy objektumhoz az egérnek, annak érzékeléséhez

confine

Ha igaz az értéke ( ez az alapértelmezett), akkor a scrollozási területen (scrollregion) kívül nem lehet scrollozni

height

A vászon nagysága (Y dimenzióban)

scrollregion

Egy (w, n, e, s) négyes, ami azt határozza meg, hogy a vászon mekkora területe scrollozható. w a bal oldal, n a tető, e a jobb oldal, és s a terület alja.

width

A vászon szélessége (X dimenzió)

A többi tulajdonság megtalálható a dokumentációban.

A Canvas fogalmai
  1. Vászon és ablak koordináták

Mivel a vászon nagyobb lehet, mint az ablakunk, és az ablakunkon görgetősávok vannak az egész vászon megtekintésére, minden vászonnak két koordináta rendszere van.

    • egy pont ablak koordinátái a megjelenített terület bal felső koordinátáira vonatkozó koordináták
    • egy pont vászon koordinátái az egész vászonra vonatkozó koordináták
  1. Megjelenítés lista (display list)

A megjelenítési lista az összes, a vásznon lévő objektum listájára utal, a háttértől az előtérig.

Ha két objektum fedi egymást, akkor  az ,hogy a megjelenítési listában felül van az egyik, az azt jelenti, hogy az van az előtérhez közel, az fog megjelenni a fedett területen, és elfedi az alatta lévőt.

Amennyiben ugyanarra a helyre hozunk létre objektumot, mint ahol már volt, akkor alapértelmezetten a megjelenítési lista tetejére kerül az új objektum. A megjelenítési lista újra rendezhető.

  1. Object ID

A vásznon lévő objektum objektum ID-ja a konstruktor által visszaadott érték. Minden objektum ID érték egyszerű integer, és az az objektum ID egyedi egy vásznon belül.

  1. Canvas hozzáfűzés (tag)

A tag egy sztring, ami a vászon objektumaihoz kapcsolódik

    • Egy tag bármennyi számú objektumhoz kapcsolódhat, beleértve a 0-t is
    • Egy objektumnak bármennyi számú tag-je lehet, beleértve a 0-t is.

A tag-eknek számos használata van. Például, ha egy térképet rajzolsz a vászonra, és szöveg objektumok vannak a folyók megnevezésére, minden olyan szöveg objektumhoz a „folyócímke” tag-et kapcsolhatjuk. Ez pedig lehetővé teszi, hogy minden objektumon, azzal a tag-gel, ugyanazt a műveletet hajtsuk végre, mint például a címke színének megváltoztatása.

A Canvas objektumai sokfajta metódust támogatnak. Ilyenek például:

A megfelelő metódusok pontos leírása a dokumentációban

Körív objektum

 

Ez egy ék alakú darab az ellipszisből. Ennek speciális esetei a teljes ellipszis és így a teljes kör is. Körív létrehozása a C vásznon:

id = C.create_arc(x0,y0,x1,y1,option, …)

A konstruktor az új objektum ID-jét adja vissza.

Az (x0,y0) pont a bal felső, az (x1,y1) pont a jobb alsó sarka annak a téglalapnak, amibe az ellipszis illeszkedik. Számos lehetséges opció közül néhány:

extent

A körszelet szélessége fokokban megadva. A szelet a start opciónál megadott szögnél kezdődik, és az óramutató járásával ellentétes irányban terjeszti ki a szöget az extent opciónál megadott szögig.

start

Ld. Extent

fill

Alapértelmezetten a körív belseje átlátszó. Bármilyen színre beállítható

style

Alapértelmezetten az egész darabot megrajzolja a sugarakkal együtt (ehhez a style=PIESLICE -t kell használni). Lehetőség van CHORD és ARC paraméter megadására, ezeket mutatja be az alábbi ábra:

Vonal objektum

Egy vonal akármennyi szakaszt tartalmazhat, a végüknél összekötve, és mindegyik szakasz lehet egyenes, vagy görbe. A vonal létrehozása a C vásznon:

C.create_line(x0,y0,x1,y1, … , xn,yn, option, … )

A vonal az (x0,y0), (x1,y1), …, (xn, yn) pontok sorozatán halad át.

Megadható opciók:

arrow

Alapértelmezetten a vonalak nem irányítottak. Az arrow=FIRST használatával az (x0,y0) pontba kapunk egy nyílfejet a vonal mentén. Az arrow= LAST a végéhez tesz nyilat, míg az arrow= BOTH mindkét oldalra kiteszi a nyilat

fill

Vonal színének beállítása

smooth

Amennyiben értéke igaz, akkor úgy rajzoljuk meg a vonalat, hogy ponthalmazra illeszkedő parabolikus spline-ok sorozatát rajzolunk.

A többi objektum pontos leírása a dokumentációban megtalálható.

Ablakok

Amikor meghívjuk a Tk konstruktort, akkor automatikusan generálódik egy „gyoker” ablak. Ha további ablakokat szeretnénk létrehozni, akkor használhatjuk a Toplevel widget-et. Ez egy új ablakot csinál a képernyőn.

pl.:

from Tkinter import * root = Tk() # create root window contents... top = Toplevel() # create top window contents... root.mainloop()

Megjegyzés: nem kell használni a pack() vagy más fv-t a kiíráshoz, mert ez automatikusan megjelenik az ablakkezelő által.

Menü

Ez a példa jól bemutatja a menük megjelenítését, almenü létrehozását, illetve hogy hívunk meg egy függvényt, amikor az egyes menüpontra kattint a felhasználó.

pl.:

# File: menu1.py from Tkinter import * def callback(): print "called the callback!" root = Tk() # menu letrehozasa menu = Menu(root) root.config(menu=menu) filemenu = Menu(menu) menu.add_cascade(label="File", menu=filemenu) #uj menu filemenu.add_command(label="New", command=callback) #uj menupont a File menuben filemenu.add_command(label="Open...", command=callback) filemenu.add_separator() #elhatárolójel – egy vonal filemenu.add_command(label="Exit", command=callback) helpmenu = Menu(menu) #masik menu menu.add_cascade(label="Help", menu=helpmenu) helpmenu.add_command(label="About...", command=callback) mainloop()

Eszköztár

Legtöbbször használt függvények gyors meghívására.

Pl.:

# File: toolbar1.py from Tkinter import * root = Tk() def callback(): print "called the callback!" # eszköztár készítése toolbar = Frame(root) b = Button(toolbar, text="new", width=6, command=callback) b.pack(side=LEFT, padx=2, pady=2) b = Button(toolbar, text="open", width=6, command=callback) b.pack(side=LEFT, padx=2, pady=2) toolbar.pack(side=TOP, fill=X) mainloop()

Ebben a példában a gombok az eszköztáron balra, míg maga az eszköztár a tetőhöz van igazítva.

Ebben a példában az ikonok helyett szöveget írtunk, a képek megjelenítéséhez kell használni a PhotoImage konstruktort a kép betöltésére, és az image opciót ennek elhelyezésére.

Dialógusok

A tkMessageBox modul nyújt interfészt az üzenőablak létrehozására.

A legegyszerűbb módja egy üzenőablak létrehozásának a következő függvények használata: showinfo, showwarning, showerror, askquestion, askokcancel, askyesno vagy askretrycancel. Mindnek ugyanaz a szintaxisa:

tkMessageBox.function(cím, üzenet [, options]), ahol a cím a felbukkanó ablak címe, az üzenet pedig az ablakban megjelenő üzenet.

1. típus:

Mi megadjuk az üzenetet és az ablak címét, és az ablak addig van fenn, amíg nem nyom a felhasználó ’ok’ –t.

Pl.:

try: fp = open(filename) except: tkMessageBox.showwarning("Open file", "Cannot open this file\n(%s)" % filename) return

2. típus:

Eldöntendő kérdés, választási lehetőséget kínál fel

pl.:

if tkMessageBox.askyesno("Print", "Print this report?"): report.print()

Üzenőablak beállításai

Opció

Típus

Leírás

Default

constant

Melyik legyen a default gomb: ABORT, RETRY, IGNORE, OK, CANCEL, YES, NO

Icon

constant

Melyik ikont tüntesse fel az üzenet mellett: ERROR,INFO, QUESTION, WARNING

message

String

Üzenet szövege

Parent

widget

Melyik ablak kapja meg a vezérlést az adott ablak bezárásakor

Title

String

Üzenőablak címe

Type

constant

Üzenőablak típusa; melyik gombok jelenjenek meg az ablakon: ABORTRETRYIGNORE, OK, OKCANCEL, RETRYCANCEL, YESNO vagy YESNOCANCEL

Figyelem! A message és a title paraméterént adódik át, nem opcióként!!!

A tkSimpleDialog modul nyújt lehetőséget különböző egyszerű adatbevitel megvalósítására. Például az askstring függvénnyel bekérünk egy stringet és utána választhatunk az ’OK’ és a ’Cancel’ gombok közül.

Hasonlóan működik a numerikus érték bekérése is.

A tkFileDialog modult használhatjuk egy file bekérésére.

A tkcolorChooser modullal pedig egy RGB színértéket tudunk meghatározni.