rozdział 4: WŁASNOŚCI WIDŻETÓW

Podobne dokumenty
JAVA CZ.2 Programowanie obiektowe. poniedziałek, 20 kwietnia 2009

Dzięki arkuszom zewnętrznym uzyskujemy centralne sterowanie wyglądem serwisu. Zewnętrzny arkusz stylów to plik tekstowy z rozszerzeniem css.

Krok 1: Stylizowanie plakatu

Znaczniki języka HTML

Edytor tekstu OpenOffice Writer Podstawy

Wykład 8: klasy cz. 4

Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski

Kurs języka Python. Wykład 5. Marcin Młotkowski. 9 listopada Rodzaje parametrów funkcji. 2 Biblioteka Tk. 3 Układanie kontrolek w oknie

1.Formatowanie tekstu z użyciem stylów

CSS - layout strony internetowej

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

HTML (HyperText Markup Language) hipertekstowy język znaczników

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

Dokument zawiera podstawowe informacje o użytkowaniu komputera oraz korzystaniu z Internetu.

Wykład 5: Klasy cz. 3

Arkusz kalkulacyjny MS Excel 2010 PL.

Języki programowania wysokiego poziomu. CSS Wskazówki

MJUP_Instrukcja obsługi aplikacji. wspomagającej

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: Wersja: 1.

Dodanie nowej formy do projektu polega na:

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

I. Program II. Opis głównych funkcji programu... 19

Tekst na mapach. Teksty na mapie. Ustawienia mapy. W tej instrukcji zostanie opisany sposób w jaki można na mapach wyświetlać teksty

Czcionki bezszeryfowe

Krój czcionki można wybrać na wstążce w zakładce Narzędzia główne w grupie przycisków Cz cionka.

Grafika i komunikacja człowiek komputer Laboratorium. Część 3: Tekst, czcionki, kolory

Dokument hipertekstowy

Podstawy edycji tekstu

Ćwiczenie: JavaScript Cookies (3x45 minut)

Edytor tekstu Microsoft Office 2007 przewodnik dla gimnazjalisty Autor: Dariusz Kwieciński nauczyciel ZPO w Sieciechowie

I. Formatowanie tekstu i wygląd strony

Krótki przegląd własności języka CSS

Visual Studio instalacja

Ustawienia ogólne. Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony

p { color: yellow; font-weight:bold; }

Podstawy programowania skrót z wykładów:

Formy dialogowe w środowisku Gnome

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Tworzenie szablonów użytkownika

CSS - 2. Właściwości tekstu, czcionek

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Kurs programowania 2 - listy

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

Podstawy programowania w Pythonie

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

Metodyka programowania. Edytor tekstu. Specyfikacja

System Informatyczny CELAB. Terminy, alarmy

Europejski Certyfikat Umiejętności Komputerowych. Moduł 3 Przetwarzanie tekstów

Tworzenie stron internetowych w kodzie HTML Cz 5

Lista wprowadzonych zmian w systemie Vario v. 3.3 od wydania do wydania

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0

SAS Podstawowe informacje przed ćwiczeniem 1

Znaczniki fizyczne i logiczne czcionki

Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe.

DODAJEMY TREŚĆ DO STRONY

Formatowanie dokumentu

1 Podstawy c++ w pigułce.

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Adobe InDesign lab. 2 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Dokument wielostronicowy Książka Eksport do PDF... 7.

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Wykład 2 Składnia języka C# (cz. 1)

Technologie informacyjne. semestr I, studia niestacjonarne I stopnia Elektrotechnika rok akademicki 2013/2014 Pracownia nr 2 dr inż.

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Właściwości i metody obiektu Comment Właściwości

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

Zaznaczanie komórek. Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM

Tworzenie menu i authoring w programie DVDStyler

Witryny i aplikacje internetowe

Tworzenie elementów graficznych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Wskaźnik Trading Central BReTRADER

ĆWICZENIE Uruchomić Oracle Forms Builder. 2. Utworzyć nowy formularz (File->New->Form) 3. Nawiązać połączenie z bazą danych (file-connect).

Podręcznik użytkownika programu. Ceremonia 3.1

HTML (HyperText Markup Language)

ABC języka HTML i XHTML / Maria Sokół. wyd. 2. Gliwice, cop Spis treści

Języki programowania obiektowego Nieobiektowe elementy języka C++

Co to jest arkusz kalkulacyjny?

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

UWAGA!!! Przed przystąpieniem do zamknięcia roku proszę zrobić kopie bezpieczeństwa

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

WASM AppInventor Lab 3. Rysowanie i animacja po kanwie PODSTAWY PRACY Z KANWAMI

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Projektowanie aplikacji internetowych. CSS w akcji

BIBLIOGRAFIA W WORD 2007

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Tablice. Jones Stygar na tropie zmiennych

Nazwa implementacji: CSS i box model. Autor: Opis implementacji: Poznajemy podstawy CSS oraz dowiadujemy się o rozmieszczaniu elementów na stronie.

Kurs WWW. Paweł Rajba.

Włącza i wyłącza automatyczny hinting. Pozwala na określenie czy chcemy, aby hinting był stosowany również do większych czcionek.

3.4. Opis konfiguracji layoutów.

Zajęcia nr 15 JavaScript wprowadzenie do JavaScript

Podstawy tworzenia prezentacji w programie Microsoft PowerPoint 2007

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Rozdział 5: Style tekstu

Transkrypt:

rozdział 4: WŁASNOŚCI WIDŻETÓW ostatnia modyfikacja: 14.04.19

Odczytywanie i ustawianie własności widżetów

Metoda słownikowa : jeżeli widżet Wi ma własność o nazwie prop, to: jeśli chcemy odczytać tę własność, używamy zapisu: val = Wi["prop"] jeśli chcemy ustawić tę własność, używamy zapisu: Wi["prop"] = val uwaga: wartość własności jest zawsze napisem!

Prosty przykład z widżetem Button i własnością text: from tkinter import * def włwył(): global b stan = b["text"] if stan == "Wyłączony": stan = "Włączony" else: stan = "Wyłączony" b["text"] = stan o = Tk( ) b = Button(o,text="Wyłączony",command=włwył) b.place(x=50,y=100) o.mainloop() 04_01.py

Metoda metodowa : jeżeli widżet Wi ma własność o nazwie prop, to: jeśli chcemy odczytać tę własność, używamy metody cget(): val = Wi.cget("prop") jeśli chcemy ustawić tę własność, używamy metody config(): Wi.config(prop = val) uwaga: tutaj wartość własności również jest zawsze napisem!

Prosty przykład z widżetem Button i własnością text: from tkinter import * def włwył(): global b stan = b.cget("text") if stan == "Wyłączony": stan = "Włączony" else: stan = "Wyłączony" b.config(text = stan) o = Tk( ) b = Button(o,text="Wyłączony",command=włwył) b.place(x=50,y=100) o.mainloop() 04_02.py

Czcionki

Opisywanie czcionki: jeżeli pewien widżet ma własność font, to zmiana fontu domyślnego dokonuje się poprzez użycie tzw. krotki (ang. tuple) krotka to niemutowalny zbiór wartości różnych typów, zapisywany w nawiasach okrągłych, z wartościamy rozdzielanymi przecinkami np. to jest krotka z trzema elementami: (1, 2.3, "4") font opisujemy na dwa sposoby: krotką dwuelementową postaci ("family", "size") ("Times", "24") krotką trójelementową postaci ("family", "size", "style") ("Arial", "12", "bold") uwaga: rozmiar (size) zawsze wyrażonych w punktach! możliwe wartości style: bold, italic, underline, overstrike

Prosty przykład z widżetami Button: from tkinter import * o = Tk( ) b1=button(o,text="zażółć gęślą jaźń") b1.grid(column=0,row=0) b2=button(o,text="zażółć gęślą jaźń",font=("times","12")) b2.grid(column=0,row=1) b3=button(o,text="zażółć gęślą jaźń",font=("arial","16","bold")) b3.grid(column=0,row=2) o.mainloop() 04_03.py

Wybrane standardowe własności widżetów: rozmiary (zwykle wyrażane w pikselach, ale czasem w wierszach tekstu)

nazwa nazwa własności własności borderwidht highlightthickness padx padx pady pady selectborderwidth wraplength height height opis opis szerokość szerokość trójwymiarowej ramki ramki otaczającej otaczającej widżet widżet szerokość szerokość ramki ramki rysowanej rysowanej dokoła dokoła widżetu widżetu w celu celu uwidocznienia jego jego skupienia skupienia dodatkowy dodatkowy margines margines wkoło wkoło zawartości zawartości widżetu widżetu (w (w dwóch dwóch kierunkach) kierunkach) jak jak borderwidth, borderwidth, ale ale wtedy, wtedy, gdy gdy widżet widżet jest jest wybrany wybrany maksymalna maksymalna długość długość tekstu tekstu wewnątrz wewnątrz widżetu, widżetu, który który wyzwala wyzwala zawinięcie zawinięcie tekstu tekstu wysokość wysokość widżetu widżetu underline indeks indeks tego tego znaku znaku w tekście tekście widżetu, widżetu, który który ma ma być być podkreślony lub lub -1-1 width width szerokość szerokość widżetu widżetu

Prosty przykład z widżetami Button: from tkinter import * o = Tk( ) b1 = Button(o, text="zwykły przycisk"); b1.pack() b2 = Button(o, text="wyjątkowy przycisk") b2.pack() b2["borderwidth"] = 5 b2["highlightthickness"] = 5 b2["padx"] = 10 b2["pady"] = 15 b2["underline"] = 0 o.mainloop() 04_04.py

Wybrane standardowe własności widżetów: kolory (wyrażane w sposób już omówiony)

nazwa nazwa własności własności background bg bg foreground fg fg activeforeground activebackground selectforeground selectbackground highlightbackground highlightcolor disabledforeground opis opis kolor kolor tła tła widżetu widżetu kolor kolor pierwszego pierwszego planu planu widżetu widżetu (może (może oznaczać oznaczać różne różne rzeczy rzeczy w różnych różnych widżetach) widżetach) kolory kolory widżetu widżetu aktywnego aktywnego kolory kolory widżetu widżetu wybranego wybranego kolory kolory widżetu widżetu posiadającego skupienie skupienie kolor kolor pierwszego pierwszego planu planu widżetu, widżetu, który który jest jest zdezaktywowany

Prosty przykład z widżetami Button: from tkinter import * o = Tk( ) b1 = Button(o, text="zwykły przycisk"); b1.pack() b2 = Button(o, text="wyjątkowy przycisk") b2.pack() b2["bg"] = "#000000" b2["fg"] = "yellow" b2["activeforeground"] = "#000000" b2["activebackground"] = "yellow" b2["underline"] = 0 o.mainloop() 04_05.py

Wybrane standardowe własności widżetów: czcionki (to już znamy )

Wybrane standardowe własności widżetów: kotwice (sposób ulokowania tekstu we wnętrzu widżetu)

nazwa nazwa własności własności anchor anchor opis opis miejsce miejsce zakotwiczenia tekstu tekstu we we wnętrzu wnętrzu widżetu widżetu (domyślnie (domyślnie CENTER) CENTER) NW NW N NE NE W CENTER E SW SW S SE SE

Prosty przykład z widżetami Button: from tkinter import * o = Tk( ) b1 = Button(o, text="zwykły przycisk"); b1["anchor"] = E b1["width"] = 20 # w pikselach b1.pack() b2 = Button(o, text="wyjątkowy przycisk") b2["anchor"] = SE b2["width"] = 20 b2["height"] = 3 # w wierszach b2.pack() o.mainloop() 04_06.py

Wybrane standardowe własności widżetów: reliefy (sposób symulowania trójwymiarowości)

nazwa nazwa własności własności FLAT FLAT RAISED RAISED SUNKEN SUNKEN GROOVE GROOVE RIDGE RIDGE opis opis płaski płaski uniesiony uniesiony zapadnięty zapadnięty wyżłobiony wyżłobiony prążkowany prążkowany

Prosty przykład z widżetami Button: from tkinter import * o = Tk( ) Button(o,text="FLAT", relief=flat ).pack() Button(o,text="RAISED", relief=raised ).pack() Button(o,text="SUNKEN", relief=sunken ).pack() Button(o,text="GROOVE", relief=groove ).pack() Button(o,text="RIDGE", relief=ridge ).pack() o.mainloop() 04_07.py

Wybrane standardowe własności widżetów: bitmapy (standardowe ikony nanoszone na powierzchnię widżetu)

nazwa nazwa własności własności bitmap bitmap opis opis nazwa nazwa standardowej ikonki ikonki informacyjnej nazwa nazwa ikonki ikonki "error" "error" "hourglass" "info" "info" "questhead" "question" "warning" znaczenie znaczenie błąd błąd klepsydra informacja pytajnikowa głowa głowa pytanie ostrzeżenie

Prosty przykład z widżetami Button: from tkinter import * o = Tk( ) Button(o,bitmap="error").pack() Button(o,bitmap="hourglass").pack() Button(o,bitmap="info").pack() Button(o,bitmap="questhead").pack() Button(o,bitmap="question").pack() Button(o,bitmap="warning").pack() o.mainloop() 04_08.py

Wybrane standardowe własności widżetów: kursory (wygląd kursora myszy uwidaczniany nad widżetem)

nazwa nazwa własności własności cursor cursor opis opis nazwa nazwa standardowego kursora kursora nazwa nazwa ikonki ikonki "arrow" "arrow" "clock" "clock" "cross" "cross" "heart" "heart" znaczenie znaczenie strzałka strzałka zegarek krzyżyk serduszko Pełny spis nazw dostępnych kursorów jest dostępny pod adresem: https://www.tcl.tk/man/tcl8.4/tkcmd/cursors.htm

Prosty przykład z widżetami Button: from tkinter import * o = Tk( ) Button(o,text="arrow",cursor="arrow").pack() Button(o,text="clock",cursor="clock").pack() Button(o,text="heart",cursor="heart").pack() o.mainloop() 04_09.py

Wybrane standardowe metody widżetów (inne niż już omówione)

Zakładamy, że w jest istniejącym widżetem: nazwa nazwa metody metody w.after(czas_ms,fun) w.after_cancel(id) w.bell() działanie działanie Funkcja Funkcja fun fun zostanie zostanie wywołana wywołana jednokrotnie jednokrotnie po po upływie upływie czasu czasu czas_ms; czas_ms; czas czas wyrażany wyrażany jest jest w milisekundach (1s (1s = = 1000ms); 1000ms); wynikiem wynikiem jest jest identyfikator, identyfikator, który który może może być być użyty użyty przez przez after_cancel() Wyłączenie funkcji przypisane przez przez w.after() Zrób Zrób trochę hałasu

from tkinter import * def mryg(): global f,biały if biały: kol='black' else: kol='white' biały = not biały f.config(bg=kol) f.bell() f.after(1000,mryg) Prosty przykład z widżetami Frame i Button: biały=true o = Tk( ) f = Frame(o,width=200,height=100,bg='white') f.after(1000,mryg) f.pack() o.mainloop() 04_10.py

nazwa nazwa metody metody w.destroy() działanie działanie Usuwa Usuwa widżet widżet w i i wszystkie wszystkie jego jego dzieci dzieci

from tkinter import * def samobójstwo(): global f f.destroy() Prosty przykład z widżetami Frame i Button: biały=true o = Tk( ) f = Frame(o,width=200,height=100,bg='white') b=button(f,text="przycisk dziecko ramki") b.place(x=10,y=10) f.after(5000,samobójstwo) f.pack() o.mainloop() 04_11.py

Zakładamy, że w jest istniejącym widżetem: nazwa nazwa metody metody w.focus_get() w.focus_set() działanie działanie Zwraca Zwraca widżet, widżet, który który aktualnie aktualnie ma ma skupienie skupienie albo albo None, None, jeśli jeśli żaden żaden widżet widżet nie nie ma ma skupienia skupienia Przenosi Przenosi skupienie skupienie na na widżet widżet w

from tkinter import * Prosty przykład z widżetami Button: def skokskup(): global o,b1,b2 if o.focus_get() == b1: b2.focus_set() else: b1.focus_set() o.after(1000,skokskup) o = Tk( ) b1=button(o,text="pierwszy",highlightthickness=10) b1.pack(); b2=button(o,text="drugi",highlightthickness=10) b2.pack(); o.after(1000,skokskup) o.mainloop() 04_12.py

Zmienne śledzone (traced variables)

TkInter udostępnia zestaw specjalnych klas służących do tworzenia zmiennych, które pozwalają nadzorować zmiany ich wartości niektóre z widżetów używają takich zmiennych do sygnalizowania faktu zmiany stanu bądź też do wpływania na ich stan TkInter definiuje cztery rodzaje takich zmiennych: BooleanVar zmienna logiczna DoubleVar zmienna rzeczywista IntVar zmienna całkowita StringVar zmienna napisowa (łańcuchowa) ze względu na wewnętrzne zależności w TkInter, zmienne takie można tworzyć dopiero po zainicjowaniu okna głównego dalsze przykłady oprzemy o zmienne StringVar, ale nie oznacza to wcale, że pozostałe rodzaje zmiennych śledzonych sa w czymkolwiek gorsze

zmienną śledzoną należy jawnie utworzyć przez pierwszym użyciem czyni się to poprzez przypisanie do zmiennej wyniku zwracanego przez konstruktor klasy: napis = StringVar()

przypisanie wartości do zmiennej śledzonej wykonuje się metodą set(): napis.set("mieczów ci u nas dostatek") przypisywana wartość musi być zgodna z rodzajem zmiennej (nie przypisuj łańcucha do DoubleVar itd.)

odczytanie wartości zmiennej śledzonej wykonuje się metodą get(): print(napis.get()) uzyskana wartość będzie zgodna z rodzajem zmiennej

do istniejące zmiennej śledzonej można dodać obserwatora, co czyni się metodą trace() obsid = zmienna.trace(tryb_śledzenia, obserwator) tryb_śledzenia to: "r" jeśli chcemy śledzić odczyty ze zmiennej "w" jeśli chcemy śledzić zapisy do zmiennej "u" jeśli chcemy śledzić unicestwianie zmiennej obserwator to funkcja, która zostanie wywołana, jeśli zajdzie któreś ze śledzonych zdarzeń wynikiem funkcji jest napis identyfikujący obserwatora

obserwator powinien być zadeklarowany jako funkcja z trzema parametrami: def obs(id,ix,act): id wewnętrzny identyfikator zmiennej (nieprzydatne) ix w TkInter zawsze pusty łańcuch act znak informujący, jaka akcja spowodowała wywołanie obserwatora ('r', 'w', 'u') jeśli żaden z tych argumentów nie jest nam potrzebny, obserwator może być zadeklarowany tak: def obs(*a):

usunięcie obserwatora przeprowadza się metodą trace_vdelete(): zmienna.trace_vdelete(tryb_śledzenia,obsid) tryb_śledzenia to jak poprzednio obsid to identyfikator obserwatora uzyskany z trace()

Prosty przykład użycia zmiennej śledzonej: from tkinter import * def obsczyt(*a): print("czytanie") def obszapi(*a): print("zapisywanie") o = Tk( ) zmienna=stringvar(); zmienna.set("abc") obsido=zmienna.trace("r",obsczyt) obsidz=zmienna.trace("w",obszapi) zmienna.set(zmienna.get()) zmienna.trace_vdelete("r",obsido) zmienna.set(zmienna.get()) zmienna.trace_vdelete("w",obsidz) o.mainloop() 04_13.py