Stronę tą wyświetlono już: 69841 razy
Kontrolka Label
Kontrolka Label jest jedną z najprostszych kontrolek. Służy ona najczęściej do wyświetlania tekstu lub (rzadziej) elementów graficznych. Oto przykład utworzenia takiej kontrolki:
Konstruktor klasy Label może przyjmować następujące parametry:
Tworzy obiekt klasy kontrolki typu Label odpowiedzialnej za wyświetlanie tekstu lub obrazu, gdzie:
- window - uchwyt okna głównego;
- **options - opcje ustawień, które mogą zawierać:
- activebackground kolor tła, gdy kontrolka jest aktywna, przykład:
label = tk.Label(window, activebackground = "#ff0000")
- activeforeground kolor pierwszoplanowy, gdy kontrolka jest aktywna
- anchor kontroluje, gdzie tekst kontrolki (lub obrazu) powinien być usytuowany. Użyj jako ustawienie N (north), NE (north-east), E (east), SE (side-east), S (side), SW (side-west), W (west), NW (north-west) lub CENTER;
- background kolor tła
- bg to samo co background
- bitmap bitmapa wyświetlana w kontrolce, jeżeli opcja image jest ustawiona ta pozycja jest ignorowana;
- borderwidth szerokość obramowania kontrolki;
- bd to samo co borderwidth
- compound kontroluje jak tekst i grafika są wyświetlane w kontrolce. Przy domyślnych ustawieniach, gdy opcja image lub bitmap są ustawione, wtedy grafika jest rysowana zamiast tekstu. Gdy opcja ta jest ustawiona na CENTER wtedy tekst jest rysowany nad grafiką. Gdy opcja ta jest ustawiona na BOTTOM, LEFT, RIGHT lub TOP tekst jest wyświetlany odpowiednio pod, po lewej, po prawej lub ponad grafiką. Domyślna wartość to NONE.
- cursor określa jaki kursor będzie wyświetlany, gdy ten znajdzie się w obszarze kontrolki.
- disabledforeground jaki kolor pierwszoplanowy ustawić, gdy kontrolka jest nieaktywna.
- font czcionka, jakiej użyć do wyświetlania tekstu, przykład:
label = tk.Label(window, font = ("Times New Roman", 20)) # krój czcionki, rozmiar czcionki
- foreground kolor czcionki
- fg to samo co foreground
- height wysokość kontrolki, gdy kontrolka wyświetla tekst używane są jednostki tekstu, natomiast w przypadku grafiki piksele. Gdy ten parametr jest ustawiony na zero to wysokość jest obliczana na podstawie zawartości.
- highlightbackground kolor podświetlenia ramki, gdy kontrolka nie ma fokusa;
- highlightcolor kolor podświetlenia ramki, gdy kontrolka ma fokus;
- highlightthickness szerokość ramki podświetlenia. Domyślna wartość ustawiona jest na 0;
- image obrazek do wyświetlenia, domyślnie wartość powinna być obiektem klasy PhotoImage lub ButmapImage lub odpowiadający im obiekt;
- justify wyrównanie tekstu: LEFT, RIGHT lub CENTER;
- padx dodatkowe przesunięcie w poziomie tekstu, domyślna wartość to 1;
- pady dodatkowe przesunięcie w pionie tekstu. Domyślna wartość to 1;
- relief rodzaj dekoracji obramowania. Ustawienie domyślne to FLAT, inne dostępne to SUNKEN, RAISED, GROOVE i RIDGE;
- state definiuje sposób renderowania kontrolki. Domyślna ustawienie to NORMAL, inne dostępne wartości to ACTIVE i DISABLED
- takefocus jeżeli ustawione na true to kontrolka akceptuje fokus, domyślnie ustawione na false;
- text tekst do wyświetlenia;
- textvariable połączone z zmiennymi tkinter (zazwyczaj StringVar). Gdy zmienna ulega zmianie, tekst w kontrolce się aktualizuje. Przykład:
variable = tk.StringVar(); label = tk.Label(window, textvariable = variable) variable.set("Przykładowy tekst") # zmiana tekstu zmiennej variable wpłynie na tekst wyświetlany w kontrolce label
- underline podkreślenie tekstu wyświetlanego, domyślnie wyłączone i ustawione na -1;
- width szerokość kontrolki. Gdy wyświetlany jest tekst wtedy używane są jednostki związane z tekstem. W przypadku grafiki jednostkami są piksele. Domyślnie ustawione na zero co oznacza, że szerokość będzie obliczana na podstawie zawartości kontrolki.
- activebackground kolor tła, gdy kontrolka jest aktywna, przykład:
Kontrolka tekstowa Entry i kontrolka przycisku Button
Kontrolka Entry służy do wczytywania jedno liniowego tekstu. Przykład użycia tejże kontrolki oraz kontrolki Button znajduje sie poniżej.
Opcje konstruktora klasy Entry
Konstruktor klasy Entry przyjmuje taką samą listę argumentów co klasy Label, jedynie opcje nieco się różnią:
- background - kolor tła kontrolki;
- bg - to samo co background;
- borderwidth - szerokość obramowania;
- bd - to samo co borderwidth;
- cursor - określa typ kursora wyświetlanego, gdy myszka znajduje się nad obszarem kontrolki;
- disabledbackground - tło, które będzie użyte gdy kontrolka jest nieaktywna.
- disabledforeground - kolor tekstu, gdy kontrolka jest nieaktywna;
- exportselection - gdy ustawione jest na True to zaznaczony tekst automatycznie jest kopiowany do systemowego schowka. Domyślnie wartość ta jest ustawiona na True;
- font - czcionka wyświetlanego tekstu;
- foreground - kolor tekstu;
- fg - to samo co foreground
- highlightbackground - razem z highlightBackground opcja ta kontroluje jak rysować podświetlenie ramki kontrolki, gdy nie ma fokusa.
- highlightcolor - to samo co highlightbackground, z tą różnicą, że używa się tej opcji przy rysowaniu podświetlenia obramowania gdy kontrolka ma fokus;
- highlightthickness - szerokość ramki podświetlania kontrolki;
- insertbackground - kolor karetki wpisywania tekstu;
- insertborderwidth - długość obramowania karetki wpisywania tekstu. Gdy ten parametr jest ustawiony na zero, używany jest styl RAISED;
- insertofftime - razem z opcją insertontime kontroluje prędkość mrugania karetki wpisywania tekstu. Obie wartości są wyrażone w milisekundach;
- insertontime - podobnie jak insertofftime, tylko że określa czas pojawiania się karetki kursora wpisywania tekstu;
- insertwidth - długość karetki wpisywania tekstu wyrażona w pikselach.
- justify - określa w jaki sposób tekst jest pozycjonowany wewnątrz kontrolki. Dostępne są: LEFT, CENTER lub RIGHT. Domyślna wartość to LEFT;
- readonlybackground - kolor tła kontrolki, gdy ta jest w trybie "readonly" (tylko do odczytu);
- relief - styl obramowania kontrolki. Domyślna wartość to SUNKEN, inne możliwe to: FLAT, RAISED, GROOVE i RIDGE;
- selectbackground - kolor tła zaznazcenia;
- selectborderwidth - szerokość obramowania zaznaczenia;
- selectforeground - kolor zaznaczonego tekstu;
- show - kontroluje sposób wyświetlania zawartości kontrolki. Gdy kontrolka zawiera jakiś tekst, jest on zastępowany podanym tutaj znakiem, typowym zastosowaniem tej opcji jest ukrywanie wpisywanego przez użytkownika hasła. W takim przypadku opcja ta powinna zostać ustawiona na "*";
- state - kontroluje stan kontrolki, który może być ustawiony na: NORMAL, DISABLED (to samo co "readonly"). Domyślna wartość to NORMAL;
- takefocus - określa, czy użytkownik może użyć tabulatora, by przekazać fokus tej kontrolce;
- textvariable - powiązane z obiektem klasy StringVar dostępnej w module tkinter;
- validate - określa kiedy zostanie wywołana funkcja z opcji validatecommand kontrolki. Możesz użyć jako ustawienia wartości "focus", by wywołanie funkcji było wykonywane za każdym razem, gdy kontrolka otrzymuje lub traci fokus, "focusin by wywołanie funkcji było tylko, gdy kontrolka otrzyma fokus, "focusout" gdy kontrolka traci fokus, "key" gdy jakakolwiek modyfikacja nastąpi i ALL dla wszystkich tych sytuacji. Domyślnie ustawienie to NONE (brak wywołania funkcji);
- validatecommand - funkcja lub metoda, która zostanie wywołana by sprawdzić poprawność wpisywanego tekstu. Funkcja powinna zwracać True, gdy wpisany tekst spełnia warunki, False w przeciwnym razie;
- vcmd - to samo co validatecommand;
- width - szerokość kontrolki w jednostkach średniej szerokości liter tekstu;
- xscrollcommand - używane w celu połączenia kontrolki z kontrolką horyzontalnego paska przewijania. Ta opcja powinna być ustawiona by ustawić metodę w odpowiadającej kontrolce scrollbar.
Opcje konstruktora klasy Button
- activebackground - kolor tła przycisku, gdy ten jest wciśnięty;
- activeforeground - kolor tekstu, gdy kontrolka jest aktywna;
- anchor - określa, gdzie na przycisku powinien być umieszczony tekst (lub obraz). Możliwe ustawienia to N (north), NE (north-east), E (east), SE (south-east), S (south), SW (south-west), W (west), NW (north-west);
- background - kolor tła;
- bg - to samo co background;
- bitmap - bitmapa do wyświetlania na kontrolce. Gdy opcja image jest ustawiona to ta pozycje jest pomijana;
- borderwidth - szerokość obramowania przyciusku;
- bd - to samo co borderwidth;
- command - funkcja lub metoda, która zostanie wywołana, gdy przycisk zostanie wciśnięty;
- compound - kontroluje jak tekst i grafika są wyświetlane razem na przycisku. Domyślnie, jeżeli opcja image lub bitmap są ustawione, to tekst nie jest rysowany. Jeżeli opcja ta jest ustawiona na CENTER to tekst zostanie wyświetlony ponad grafiką, zaś ustawienie BUTTON, LEFT, RIGHT lub TOP sprawia, że tekst jest rysowany nad, po lewej, po prawej lub pod grafiką. Domyślne ustawienie to NONE;
- cursor - określa, jaki kursor ma być wyświetlany, gdy myszka znajdzie się nad kontrolką;
- default - gdy ustawione, to kontrolka jest ustawiona jako domyślny przycisk. Domyślnie ustawione na DISABLED;
- disabledforeground - kolor tła, gdy przycisk jest nieaktywny
font - określa krój czcionki; - foreground - kolor tła;
- fg - to samo co foreground;
- height - wysokość przycisku, gdy ten wyświetla tekst to wyrażona jest w jednostkach wysokości tekstu, w przeciwnym razie w pikselach;
- highlightbackground - kolor obramowania, gdy kontrolka nie ma fokusa;
- highlightcolor - kolor obramowania, gdy kontrolka ma fokus;
- highlightthickness - szerokość obramowania podświetlenia;
- image - obraz do wyświetlenia na kontrolce;
- justify - wyrównanie tekstu. Dostępne opcje: LEFT, RIGHT lub CENTER. Domyślna wartość to CENTER;
- overrelief - określa sposób zachowania przycisku, gdy kursor myszy znajdzie się nad nim. Dostępne opcje to FLAT, GROOVE, RAISED, RIDGE, SOLID lub SUNKEN;
- padx - dodatkowe poziome odsunięcie od tekstu lub obrazu wyświetlanego na przycisku;
- pady - dodatkowe pionowe odsunięcie od tekstu lub obrazu wyświetlanego na przycisku;
- relief - dekoracja obramowania, zazwyczaj ustawiona na SUNKEN, gdy przycisk jest wciśnięty i RAISED w przeciwnym przypadku. Inne możliwe ustawienia to GROOVE i FLAT. Domyślna wartość to RAISED;
- state - stan przycisku, możliwe ustawienia: NORMAL, ACTIVE lub DISABLED. Domyślna wartość to NORMAL;
- takefocus - określa, że przycisk otrzymuje fokus;
- text - tekst wyświetlany na przycisku;
- textvariable - zmienna powiązana z klasą StringVar z modułu
tkinter; - underline - ustawia podkreślenie tekstu. Domyślnie -1, co oznacza, że tekst nie jest podkreślany;
- width - długość przycisku wyrażona w szerokości średniej tekstu, gdy w kontrolce wyświetlany jest tekst, natomiast w pikselach, gdy wyświetlany jest obraz;
- wraplength - określa, czy tekst ma zostać literka po literce wyświetlany w poziomie. Domyślnie ustawione na 0, co oznacza wyświetlanie tekstu w jednym ciągu
Kontrolka Text
Kontrolka ta umożliwia wpisywanie, wczytywanie i wyświetlanie tekstu wieloliniowego. Oto przykład kodu wykorzystującego tę kontrolkę:
Powyższy kod pokazuje sposób, w jaki można tworzyć i wykorzystywać w przebiegły wręcz sposób tagi do bardziej zaawansowanego formatowania tekstu. Widok okna programu został pokazany na poniższym rysunku.
Opcje, z jakimi można wywołać konstruktor kontrolki Text:
- bg - kolor tła;
- bd - szerokość obramowania kontrolki;
- cursor - kursor, który się pojawi gdy wskaźnik myszki znajdzie się nad kontrolką;
- exportselection - eksportuje zaznaczenie do schowka, aby tego uniknąć trzeba ustawić tą opcję na 0
- font - ustawia czcionkę (należy podać jako krotkę zawierającą nazwę kroju oraz rozmiar czcionki
- fg - domyślny kolor czcionki wyświetlanego tekstu;
- height - wysokość wyrażona w liniach tekstu. Ta wartość odnosi się do aktualnych ustawień czcionki;
- highlightbackground - kolor obramowania kontrolki, gdy ta nie ma fokusa;
- highlightcolor - kolor podświetlenie kontrolki, gdy ta ma fokus;
- highlightthickness - grubość obramowania kontrolki dla wyświetlania fokusa;
- insertbackground - kolor karetki kursora oznaczającego miejsce wpisywania tekstu;
- insertborderwidth - rozmiar obramowania 3W wokół karetki kursora wpisywania tekstu. Domyślna wartość to 0;
- insertofftime - liczba określająca w milisekundach czas znikania kursora karetki wpisywania tekstu. Domyślna wartość to 300 milisekund;
- insertontime - liczba określająca w milisekundach czas na jaki kursor karetki wpisywania tekstu się pojawia. Domyślna wartość to 600 milisekund;
- insertwidth - szerokość kursora karetki. Domyślna wartość to 2 piksele;
- padx - odsunięcie tekstu od prawej i lewej krawędzi kontrolki wyrażona w pikselach;
- pady - odsunięcie tekstu od górnej i dolnej krawędzi kontrolki wyrażona w pikselach;
- relief - - dekoracja obramowania, zazwyczaj ustawiona na SUNKEN, gdy przycisk jest wciśnięty i RAISED w przeciwnym przypadku. Inne możliwe ustawienia to GROOVE i FLAT. Domyślna wartość to RAISED;
- selectbackground - kolor tła zaznaczonego tekstu;
- selectborderwidth - szerokość obramowania rysowanego wokół zaznaczonego tekstu;
- spacing1 - ta opcja określa ile dodatkowego miejsca jest dodawanego powyżej każdej linii tekstu. Jeżeli linia jest łamana to dodatkowa przestrzeń jest dodawana tylko ponad pierwszą linijką tekstu. Domyślnie ustawione na zero;
- spacing2 - określa ile dodatkowej przestrzeni ma zostać dodanej pomiędzy łamanymi liniami tekstu. Domyślna wartość to zero;
- spacing3 - określa ile dodatkowej przestrzeni ma zostać dodanej poniżej każdej linii tekstu. Jeżeli tekst jest łamany dodatkowa przestrzeń jest dodawana poniżej ostatniej linii. Domyślna wartość to zero;
- state - ustawienie stanu kontrolki. Możliwe opcje to: NORMAL (domyślne) lub DISABLED;
- width - szerokość kontrolki wyrażona w średniej szerokości znaków bieżącej czcionki;
- wrap - kontroluje, czy linie, które są zbyt długie aby zmieścić się w kontrolce mogą być wyświetlana. Domyślnie ustawione na WORD - co oznacza łamanie linii tekstu po ostatnim zdaniu, które się w danej linii mieści. Ustawienie na CHAR spowoduje łamanie tekstu na dowolnym pierwszym znaku, który się nie mieści w kontrolce;
- xscrollcommand - by tekst kontrolki był poziomo skrolowany, należy ustawić tą opcję na metodę set() kontrolki typu Scrollbar;
- yscrollcommand - by tekst kontrolki był pionowo skrolowany, należy ustawić tą opcję na metodę set() kontrolki typu Scrollbar;
Kontrolka Checkbox
Kolejną z podstawowych kontrolek jest Checkbox będący kontrolką wyboru (zaznaczenia i odznaczenia). Oto przykład utworzenia tej kontrolki:
Opcje, które już wcześniej nie zostały opisane:
- command - funkcja, która zostanie wywołana przy wciśnięciu przycisku;
- offvalue - ustawienie wartości, gdy przycisk jest odznaczony. Domyślna wartość do zero;
- onvalue - ustawienie wartości, gdy przycisk jest zaznaczony. Domyślna wartość to 1;
- value - przypisanie zmiennej, która będzie ustawiana za każdym razem, gdy stan przycisku się zmieni. Ta zmienna może być obektem klasy IntVar lub StringVar.
Kontrolka Radiobutton
Kontrolka tego typu umożliwia stworzenie serii przycisków, które umożliwiają stworzenie opcji jednokrotnego wyboru. Oto prosty kod:
Lista ważniejszych dla tej kontrolki opcji:
- command - podpinanie funkcji w odpowiedzi na kliknięcie przycisku;
- value - wartość, dla której kontrolka jest ustawiona w stan zaznaczenia;
- variable - zmienna sterująca zaznaczeniem, będąca obiektem klasy StringVar z modułu tkinter. Gdy zawartość zmiennej jest równa wartości zapisanej w ustawieniu value, to kontrolka jest zaznaczona, w przeciwnym przypadku odznaczona;
- text - tekst wyświetlany w kontrolce
Kontrolka Listbox
Kontrolka Listbox umożliwia wyświetlania listy wyboru różnych pozycji. Oto przykład programu wykorzystującego taką listę:
W powyższym kodzie oprócz pokazania jak utworzyć kontrolkę typu Listbox pokazałem jak:
- dodawać do niej nowe elementy (linijka 31 i 34);
- podpiąć pod tą kontrolkę obsługę zdarzenia zmiany zaznaczenia (linia 38);
- ustawić ręcznie szerokość i wysokość okna głównego (linia 6);
- ustawiać położenie poszczególnych kontrolek na oknie głównym (linie 14, 18, 25 i 29)
Dostępne opcje konstruktora klasy Listbox w znacznym stopniu się pokrywają z tymi, które już wcześniej wymienione zostały. Z tego też względu poniżej wypiszę tylko ich listę:
- background
- bd;
- bg
- borderwidth
- cursor
- exportselection
- fg
- font
- foreground
- height
- highlightbackground
- highlightcolor
- highlightthickness
- relief
- selectbackground
- selectborderwidth
- selectforeground
- selectmode
- setgrid
- takefocus
- width
- xscrollcommand
- yscrollcommand
- listvariable
Kontrolka Scrollbar
Kontrolki tego typu to paski przewijania, które jako takie mogą być podpinane pod kontrolki takie jak Text czy Entry. Przykład zastosowania kontrolki Scrollbar jako paska przewijania poziomego dla kontrolki typu
Wynikiem działania powyższego kodu jest widoczny na poniższym rysunku.
Kontrolka Spinbox
Kontrolka ta umożliwia wczytywanie wartości liczbowych i jest wyposażona automatycznie w mały pasek "przewijania" wartości. Możliwe jest również ustawienie minimalnej i maksymalnej możliwej wartości, jaka może zostać wpisana. Oto prosty przykład kodu tworzenia takiej kontrolki:
Kontrolka Scale
Ta z kolei kontrolka przypomina nieco kontrolkę Scrollbar, jednakże ta kontrolka służy do ustawiania i wyświetlania wartości liczbowych. Oto przykład kodu tworzącego taką kontrolkę:
Na poniższym rysunku można zobaczyć przykład kontrolki typu Scale.
Kontrolka Canvas
Jak sama nazwa wskazuje, kontrolka ta służy do rysowania po niej elementów graficznych. Co ciekawe wszystkie elementy rysowane w tejże kontrolce są przechowywane i odrysowywane z pamięci. Można rzec, że ta kontrolka służy do wyświetlania elementów graficznych przechowywanych w pamięci, czyli jest to grafika wektorowa.
Przykład działania tego prostego programu widoczny jest na poniższym rysunku.