Tkinter - THE DATA SCIENCE LIBRARY https://sigmaquality.pl/category/tkinter/ Wojciech Moszczyński Mon, 04 Sep 2017 06:32:00 +0000 pl-PL hourly 1 https://wordpress.org/?v=6.8.3 https://sigmaquality.pl/wp-content/uploads/2019/02/cropped-ryba-32x32.png Tkinter - THE DATA SCIENCE LIBRARY https://sigmaquality.pl/category/tkinter/ 32 32 Tworzenie OKNA DIALOGOWEGO. Teacher of Computing – prywatne https://sigmaquality.pl/tkinter/tworzenie-okna-dialogowego-teacher-of-computing-prywatne/ Mon, 04 Sep 2017 06:32:00 +0000 http://sigmaquality.pl/?p=2631 https://wiki.python.org/moin/Intro%20to%20programming%20with%20Python%20and%20Tkinter   Celem jest stworzenie okna dialogowego, które będzie zawierało słownik.  źródło: https://www.youtube.com/watch?v=_lSNIrR1nZU Wynik kodu: Kod: from tkinter import * # <-- wprowadzam funkcję zatwierdzająca wprowadzony [...]

Artykuł Tworzenie OKNA DIALOGOWEGO. Teacher of Computing – prywatne pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>

https://wiki.python.org/moin/Intro%20to%20programming%20with%20Python%20and%20Tkinter

 

Celem jest stworzenie okna dialogowego, które będzie zawierało słownik. 

źródło: https://www.youtube.com/watch?v=_lSNIrR1nZU

Wynik kodu:

Kod:

from tkinter import *
# <-- wprowadzam funkcję zatwierdzająca wprowadzony tekst, to jest potrzebne później
# <-- ta funkcja gromadzi teksty z okienka wprowadzania tekstu
# <-- funkcja ma za zadanie znaleźć słowo w słowniku i w oknie definicji pokazać
# <-- definicję wyrazu
######### MOJE POLETKO FUNKCJI ##########
# 1. FUNKCJA SŁOWNIKA
def click():
      entered_text=textentry.get()
      output.delete(0.0, END)
      try:   #<-- To znaczy to samo co finkcja warunkowa if else
          definition = my_compdictionary[entered_text]
      except:
          definition = "przepraszam - tego słowa nie ma w naszym słowniku"
      output.insert(END, definition)

# <-- Definuje funkcję zamykającą cały program
# 2. FUNKCJA ZAMYKAJĄCA OKIENKO DIALOGOWE
def Zamykanie_okna():
    okno.destroy()
    exit()
# <-- Funkcję odpalamy na końcu ale funkcja ma być wyżej niż ląd odpalający command=

# <-- teraz są główne ustalenia kodu, okienka dialogowego
okno = Tk()
okno.title("Moje okno dialogowe")
# <-- Zrobiłem napis na pasku okna dialogowego
okno.configure(background="black")
# <-- Zrobiłem tło czarne żeby było fajnie
# <-- Tworze napis na pasku okienka dialogowego
# <-- Teraz będę wstawiał zdjęcie do okna dialogowego
photo1 = PhotoImage(file = "nn.png")
# <-- Zdjęcie ma być w katalogu, w którym jest projekt w formacie png lub gif
Label (okno, image = photo1, bg = "black") .grid(row=0, column=0, sticky=W)
# Teraz wprowadzam tekst, który ma poprzedzać okno wprowadzania tekstu.
Label(okno, text="Wprowadź słowo które lubisz z zasady:",
      bg="black", fg="yellow",
      font="none 12 bold") .grid(row=1, column=0, sticky=W)
# <-- fg="yellow" font color, to kolor liter na napisie
# <-- TERAZ TWORZE OKIENKO DO WPOWADZANIA TEKSTU:
textentry = Entry(okno, width=20, bg="white")
textentry.grid(row=2, column=0, sticky=W)
# <-- Teraz tworzę okienko akceprtacji tego co wpisałem
# <-- po command=click musi byc jakaś funkcja zatwierdzająca! taka funkcja zatwierdzająca
# <-- została wprowadzona na początku kodu def click():
# <-- teraz tworzę przycisk zatwierdzania wprowadzonego tekstu
Button(okno, text = "Zatwierdź", width = 9, command=click) .grid(row=3, column=0, sticky=W)
# <-- tworzę nowy napis na okienku dialogowym "Definicna tego:"
Label (okno, text="Definicja tego: ", bg="black", fg="white", font="none 12 bold") .grid(row=4, column=0, sticky=W)
# <-- tworzę kontenerek do tekstu
output = Text(okno, width=75, height=6, wrap=WORD, background="white")
output.grid(row=5, column=0, columnspan=2, sticky=W)
# <-- tworzenie słownika
my_compdictionary = {'Algorytm':'Krok po kroku według instrukcji realizujemy zadanie'
      ,'Pomyłka':'Zdarzenie niezgodnie z instrukcją'}

# <-- teraz tworzę napis końcowy wyjścia z programu
Label(okno, text="Kliknij tutaj aby wyjść z programu:", bg="black", fg="white", font="none 12 bold") .grid(row=6, column=0, sticky=W)

# <-- Dodaje przycisk zakończenia programu
Button(okno, text="Exit", width=14, command=Zamykanie_okna) .grid(row=7, column=0, sticky=W)
# <--parametr sticky=W znaczy West (zachód), a =E znaczy East wschód.
# <-- tam pojawił się też parametr command - trzeba do tego znowu napisać funkcję,
# <-- tym razem będzie to funkcja zamykająca cały program
# <-- WAŻNE: najpierw w kodzie ma byc funkcja a potem command=
# <-- Więc definiuje funkcję gdzieś wyżej - najlepiej zrobić oddzielne poletko do funkcji

okno.mainloop() # <-- niekończąca się pętla

 

Artykuł Tworzenie OKNA DIALOGOWEGO. Teacher of Computing – prywatne pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>
Tkinter – biblioteka skryptów cz. 1 https://sigmaquality.pl/tkinter/tkinter-biblioteka-skryptow/ Mon, 04 Sep 2017 06:32:00 +0000 http://sigmaquality.pl/?p=2714   Tworzenie listy z łańcucha znaków Mamy łańcucha znaków zawierający rodzaje nawozów sztucznych. Za pomocą funkcji split możliwe jest z łańcucha znaków zostaje utworzona lista. [...]

Artykuł Tkinter – biblioteka skryptów cz. 1 pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>

Jeżeli podobają Ci się ćwiczenia. Chcesz aby było ich więcej, dużo więcej! Oddaj głos na któryś z moich wpisów na Stock Overflow! Oto link – wystarczy tylko kliknąć!

 

Tworzenie listy z łańcucha znaków

Mamy łańcucha znaków zawierający rodzaje nawozów sztucznych.

Za pomocą funkcji split możliwe jest z łańcucha znaków zostaje utworzona lista.

nawozy = 'azotowe azotowo-siarkowe azotowo-fosforowe wieloskładnikowe'
print(nawozy)
nawozy = nawozy.split()
print(nawozy)

Wynik kodu:

azotowe azotowo-siarkowe azotowo-fosforowe wieloskładnikowe [’azotowe’, 'azotowo-siarkowe’, 'azotowo-fosforowe’, 'wieloskładnikowe’]

Tworzenie okna Tkinter

from tkinter import *    #  importuje całą bibliotekę tkinter
okno = Tk()                     # tworze okno
okno.mainloop()                 # Odpalam pętle

 

Wstawianie listy do okna

from tkinter import *
okno = Tk()                     # tworze okno
# tworzę listę
nawozy = 'azotowe azotowo-siarkowe azotowo-fosforowe wieloskładnikowe'
nawozy = nawozy.split()
kontenerek = Listbox(okno)           # Tworzę kontenerek na listę
for item in nawozy:              # Wstawiam do kontenerka kolejne elementy listy
kontenerek.insert(0,item)
kontenerek.pack()                  # pakuje listę nawozów do kontenerka
okno.mainloop()                    # Odpalam pętle

 

wynik kodu:

 

 

Tworzenie dwóch list w oknie Tkinter

 

from tkinter import *           # importuje bibliotekę Tkinter
okno = Tk()                    # tworzę okno tła
# tworze dwie listy z łańcuchów znaków
nawozy = 'azotowe azotowo-siarkowe azotowo-fosforowe wieloskładnikowe'
nawozy = nawozy.split()

zakłady  = 'Tarnów Police Kędzierzyn Puławy'
zakłady = zakłady.split()

kontenerek_nawozy = Listbox(okno)          # tworzę dwa kontenerki na te dwie listy
kontenerek_zakłady = Listbox(okno)
for item in nawozy:                 # wstawiam listy do kontenerków
kontenerek_nawozy.insert(0,item)

for item in zakłady:              # wstawiam listy do kontenerków
kontenerek_zakłady.insert(0,item)

kontenerek_nawozy.pack()                    # uruchamiam kontenerki
kontenerek_zakłady.pack()

okno.mainloop()                 # uruchamiam pętle

 

wynik kodu:

Wstawianie przycisku podpiętego pod funkcję

from tkinter import *                  # importuję bibliotekę Tkinter
def pokaż():                          #definiuje funkcję - drukowanie napisu
print('Witaj kolego!')
okienko = Tk()                             #uruchamiam okno
przycisk = Button(okienko, text = 'kliknij tu', command = pokaż)
#definiuje przycisk, co ma być napisane, podpinam funkcję pod przycisk
przycisk.pack(pady=30, padx = 50)
# uruchamiam wyświeltanie przycisku, przy okazji wskazuje wymiary
# podstawy pod przycisk (wymiary okna dialogowego)
pokaż()
okienko.mainloop()

 

Wynik kodu:

 

Generator liczb losowych

from tkinter import *  # importuje bibliotekę Tkinter
from random import *  # importuje bibliotekę generatora liczb losowych

def liczby_losowe():       # definiuje funkcje generatora liczb losowych
ran = uniform(70, 100) # określam zakres liczb losowych
ran =int(ran)           #wyświetlam tylko liczby całkowite
print(ran)
ran

okienko = Tk()  # uruchamiam okno dialogowe

przycisk = Button(okienko, text='generuj liczbę losową', command=liczby_losowe)
# definiuje przycisk, co jest na nim napisane, z jaką funkcją współpracuje

przycisk.pack(pady=40, padx = 40) #ustalam parametry podstawy przycisku,
# jeżeli nawias bedzie pusty() wtedy podstawa dopasuje sie do wielkości przycisku

okienko.mainloop()  # uruchamiam petle okienka

Wynik kodu to liczba losowa z zadanego zakresu po każdym kliknięciu.

 

Funkcja wyświetlania napisu na oknie dialogowym

from tkinter import *    # importuję bibliotekę Tkinter

def Nacisnąłeś():
napis= Label(okno, text = 'Nacisnąłeś\nprzycisk')
# funkcja mówi, że tekst pojawi się
napis.pack()
button['bg'] = 'blue'   # przycisk po naciśnięciu robi się niebieski
button['fg'] = 'white'  # przycisk przed nacisnięciem jest biały

okno = Tk()                         # odpalam okno
okno.geometry('100x400')     #określam wielkość okna dialogowego
button = Button(okno, text = 'Przycisk', command = Nacisnąłeś)
# definuje co ma się stać po naciśnięciu przycisku
# ma się uruchamiać funkcja Nacisnąłeś
button.pack()  # wyświetlam przycisk

okno.mainloop()  # wyświetlam pętle okna

 

Wyświetlanie listy w okienku dialogowym

from tkinter import *  # This interface allow us to draw windows

def wstaw():
zakłady = ['Puławy', 'Police', 'Tarnów', 'Kędzierzyn']

for item in zakłady:
kontenerek.insert(END, item);
# zdefiniowana funkcja wstawia z elementy z listy

okienko = Tk()  # This creates a window, but it won't show up

kontenerek = Listbox(okienko)
przycisk = Button(okienko, text="lista zakładów", command=wstaw)

przycisk.pack()
kontenerek.pack()  # wyświetlam przycisk i wyświetlam kontenerek

okienko.mainloop()  # This command will tell the window come out

 

wynik

Artykuł Tkinter – biblioteka skryptów cz. 1 pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>
Tkinter – biblioteka skryptów cz. 2 https://sigmaquality.pl/tkinter/tkinter-biblioteka-skryptow-cz-2/ Mon, 04 Sep 2017 06:32:00 +0000 http://sigmaquality.pl/?p=2719   from tkinter import *    # importuje bibkiotekę okno = Tk()                 # uruchamiam okno dialogowe okno.title("Wpisz swoje imie!") # napis na ramce okno.geometry('350x200')         #wielkość okna [...]

Artykuł Tkinter – biblioteka skryptów cz. 2 pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>

Jeżeli podobają Ci się ćwiczenia. Chcesz aby było ich więcej, dużo więcej! Oddaj głos na któryś z moich wpisów na Stock Overflow! Oto link – wystarczy tylko kliknąć!

 

 Okienko do wpisywania wartości 

from tkinter import *    # importuje bibkiotekę
okno = Tk()                 # uruchamiam okno dialogowe
okno.title("Wpisz swoje imie!") # napis na ramce
okno.geometry('350x200')         #wielkość okna
przywitanie = Label(okno, text="Witaj")   # wprowadza napis do okna
przywitanie.grid(column=0, row=0)    # zdefiniowanie gdzie ten napis ma sie znajdować
imie = Entry(okno,width=10)   # wycięcie do wpisania swojego imienia
imie.grid(column=1, row=0)    # zdefiniowanie gdzie te wcięcie ma się znajdować
def clicked():              # definiuje funkcję
    przywitanie2 = "Witamy Ciebie  " + imie.get()   # to co pwisaliśmy imie tu się wyświetla
    przywitanie.configure(text= przywitanie2)
przycisk = Button(okno, text="Naciśnij przycisk", command=clicked)
# naciśnij przycisk a uruchomi się funkcja
przycisk.grid(column=2, row=0) # położenie przycisku
okno.mainloop()                 #uruchomienie pętli

Inny przykład:

from tkinter import *
top = Tk()
L1 = Label(top, text = "User Name")
L1.pack( side = LEFT)
E1 = Entry(top, bd = 5)
E1.pack(side = RIGHT)
top.mainloop()
 

Suwak w oknie dialogowym

from tkinter import *
from tkinter.ttk import *
okno = Tk()
okno.title("Pierwszy suwak w oknie dialogowym")
okno.geometry('650x200')
suwak = Combobox(okno)
suwak['values']= (1, "Puławy", 3, 4, 5, "Azoty")
suwak.current(2) #ustawienie co ma być wartością domyślną
suwak.grid(column=0, row=0)
okno.mainloop()


https://dzone.com/articles/python-gui-examples-tkinter-tutorial-like-geeks

inny przykład

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()
 

Okno zaznaczania

from tkinter import *
from tkinter.ttk import *
okienko = Tk()
okienko.title("jakiś napis")
okienko.geometry('450x100')
decyzja = BooleanVar()
decyzja.set(False) # ustawienie True= zakreślone a Fałsz=puste okienko
kratka = Checkbutton(okienko, text='Zgadzam się', var=decyzja)
kratka.grid(column=0, row=0)
okienko.mainloop()

Inny przykład

from tkinter import *
top = Tk()
CheckVar1 = IntVar()
CheckVar2 = IntVar()
C1 = Checkbutton(top, text="Music", variable=CheckVar1, \
onvalue=1, offvalue=0, height=5, \
width=20, )
C2 = Checkbutton(top, text="Video", variable=CheckVar2, \
onvalue=1, offvalue=0, height=5, \
width=20)
C1.pack()
C2.pack()
top.mainloop()

 Przyciski radiowe 

from tkinter import *
from tkinter.ttk import *
okno = Tk()
okno.title("Przyciski radiowe")
okno.geometry('350x100')
rad1 = Radiobutton(okno,text='Jeden', value=1)
rad2 = Radiobutton(okno,text='Dwa', value=2)
rad3 = Radiobutton(okno,text='Trzy', value=3)
rad1.grid(column=0, row=0)
rad2.grid(column=1, row=0)
rad3.grid(column=2, row=0)
okno.mainloop()
 

 Przyciski radiowe, które są drukowane na dole 

from tkinter import *
from tkinter.ttk import *
okno = Tk()
okno.title("Coś jest napisane")
selected = IntVar()
rad1 = Radiobutton(okno,text='Puławy', value=1, variable=selected)
rad2 = Radiobutton(okno,text='Tarnów', value=2, variable=selected)
rad3 = Radiobutton(okno,text='Police', value=3, variable=selected)
def clicked():
print(selected.get())
btn = Button(okno, text="Drukuj to", command=clicked)
rad1.grid(column=0, row=0)
rad2.grid(column=1, row=0)
rad3.grid(column=2, row=0)
btn.grid(column=3, row=0)
okno.mainloop()
  https://dzone.com/articles/python-gui-examples-tkinter-tutorial-like-geeks  

inny przykład:

from tkinter import *




def sel():

   selection = "You selected the option " + str(var.get())

   label.config(text = selection)




root = Tk()

var = IntVar()

R1 = Radiobutton(root, text = "Option 1", variable = var, value = 1,

                  command = sel)

R1.pack( anchor = W )




R2 = Radiobutton(root, text = "Option 2", variable = var, value = 2,

                  command = sel)

R2.pack( anchor = W )




R3 = Radiobutton(root, text = "Option 3", variable = var, value = 3,

                  command = sel)

R3.pack( anchor = W)

label = Label(root)

label.pack()

root.mainloop()
 

 Okno na notatki z suwakiem 

from tkinter import *
from tkinter import scrolledtext  # bez tego nie zadziała
okno = Tk()
okno.title("Moje notatki")
okno.geometry('350x200')
notatki = scrolledtext.ScrolledText(okno,width=40,height=10)
notatki.grid(column=0,row=0) #wyświtlenie okienka
notatki.insert(INSERT,'Napisz coś o sobie')   # można wprowadzić tekst domyślny
# notatki.delete(1.0,END)   # można też wykasować swoje notatki
okno.mainloop()
 

Inny przykład

from tkinter import *
root = Tk()
text = Text(root)
text.insert(INSERT, "Hello.....")
text.insert(END, "Bye Bye.....")
text.pack()
text.tag_add("here", "1.0", "1.4")
text.tag_add("start", "1.8", "1.13")
text.tag_config("here", background = "yellow", foreground = "blue")
text.tag_config("start", background = "black", foreground = "green")
root.mainloop()
https://www.tutorialspoint.com/python3/tk_text.htm  

 Okienko informacyjne 

from tkinter import *
from tkinter import messagebox
okienko = Tk()
okienko.title("Moje okienko")
okienko.geometry('350x200')
def clicked():
	messagebox.showinfo('Informacja', 'Działanie poprawne')
przycisk = Button(okienko,text='Naciśnij tutaj', command=clicked)
przycisk.grid(column=0,row=0)
okienko.mainloop()
  Komunikat ostrzegający
messagebox.showwarning(‘Informacja ', 'Message content')
  Komunikat o błędzie
messagebox.showerror(' Informacja ', 'Uwaga!!')
Inny przykład
from tkinter import *
from tkinter import messagebox
top = Tk()
top.geometry("100x100")
def helloCallBack():
	msg = messagebox. showerror ( "Hello Python", "Hello World")
B = Button(top, text = "Hello", command = helloCallBack)
B.place(x = 50,y = 50)
top.mainloop()
 

 Spinbox 

from tkinter import *
from tkinter import IntVar
okienko = Tk()
okienko.title("Welcome to LikeGeeks app")
okienko.geometry('150x100')
kotek = Spinbox(okienko, from_=0, to=100, width=8)
# kotek = Spinbox(okienko, values=(3, 8, 11), width=5)
# kotek = Spinbox(okienko, from_=0, to=100, width=5, textvariable=var)
# var =IntVar()
# var.set(36)
kotek.grid(column=3,row=1)
okienko.mainloop()
Inny przykład:
from tkinter import *
okno = Tk()
koń = Spinbox(okno, from_ = 0, to = 20)
koń.pack()
mainloop()
źródło: https://www.tutorialspoint.com/python3/tk_spinbox.htm

 Tworzenie ciemniejszego paska 

from tkinter import *
from tkinter.ttk import Progressbar
window = Tk()
bar = Progressbar(window, length=100)
bar.grid()
window.mainloop()

 Pasek ładowania 

from tkinter import *
from tkinter.ttk import Progressbar
window = Tk()
bar = Progressbar(window, length=100)
bar['value'] = 50
bar.grid()
window.mainloop()
 

 Czerwony pasek ładowania 

from tkinter import *
from tkinter.ttk import Progressbar
from tkinter import ttk
okno = Tk()
okno.title("Nazwa okna")
okno.geometry('350x200')
style = ttk.Style()
style.theme_use('default')
style.configure("black.Horizontal.TProgressbar", background='brown')
pasek = Progressbar(okno, length=200, style='black.Horizontal.TProgressbar')
pasek['value'] = 15
pasek.grid(column=0, row=0)
okno.mainloop()
źródło: https://dzone.com/articles/python-gui-examples-tkinter-tutorial-like-geeks  

 Moduł do otwierania plików 

from tkinter import *
from tkinter import filedialog
okno = Tk()
#file = filedialog.askopenfilename()
files = filedialog.askopenfilenames()  #<= zaznacza wiele plików
okno.mainloop()
  Otwieranie tylko plików tekstowych
file = filedialog.askopenfilename(filetypes = (("Text files","*.txt"),("all files","*.*")))
  Wskazywanie katalogu
dir = filedialog.askdirectory()
  Wskazywanie ostatniego katalogu z plikami
from os import path
file = filedialog.askopenfilename(initialdir= path.dirname(__file__))
 

 Tworzenie menu 


from tkinter import *
from tkinter import Menu
window = Tk()
menu = Menu(window)
menu.add_command(label='Pliki')
window.config(menu=menu)
window.mainloop()
źródło: https://dzone.com/articles/python-gui-examples-tkinter-tutorial-like-geeks  

 Tworzenie manu2 

from tkinter import *
from tkinter import Menu
okienko = Tk()
okienko.title("Moje okno")
menu = Menu(okienko)
nowe_coś = Menu(menu)
nowe_coś.add_command(label='teraz ja')
menu.add_cascade(label='Pliki', menu=nowe_coś)
okienko.config(menu=menu)
okienko.mainloop()
 

 Tworzenie manu3 

from tkinter import *
from tkinter import Menu
window = Tk()
window.title("Welcome to LikeGeeks app")
menu = Menu(window)
new_item = Menu(menu)
new_item.add_command(label='New')
new_item.add_separator()
new_item.add_command(label='Edit')
menu.add_cascade(label='File', menu=new_item)
window.config(menu=menu)
window.mainloop()
  Funkcja łzawienia menu
new_item = Menu(menu, tearoff=0)
  Możliwość podłączenia funkcji wykonawczych pod menu
new_item.add_command(label='New', command=clicked)
  źródło: https://dzone.com/articles/python-gui-examples-tkinter-tutorial-like-geeks  

 Tworzenie zakładki 

from tkinter import *
from tkinter import ttk
okienko = Tk()
okienko.title("Jakiś tytuł")
kaczka = ttk.Notebook(okienko)
tab1 = ttk.Frame(kaczka)
kaczka.add(tab1, text='Zakładka 1')
kaczka.pack(expand=1, fill='both')
okienko.mainloop()
 

 Rozbudowane zakładki 

from tkinter import *
from tkinter import ttk
okienko = Tk()
okienko.title("Mój tytuł")
zakładki = ttk.Notebook(okienko)
tab1 = ttk.Frame(zakładki)
tab2 = ttk.Frame(zakładki)
zakładki.add(tab1, text='Puławy')
zakładki.add(tab2, text='Tarnów')
#treść1 = Label(tab1, text= 'opis 1') # może być taki prosty opis
treść1 = Label(tab1, text= 'opis 1', padx=25, pady=50)
treść1.grid(column=0, row=0)
treść2 = Label(tab2, text= 'opis 2', padx=65, pady=40)
treść2.grid(column=0, row=0)
zakładki.pack(expand=1, fill='both')
okienko.mainloop()
źródło: https://dzone.com/articles/python-gui-examples-tkinter-tutorial-like-geeks  

 Tworzenie przycisku kończącego Quit 


from tkinter import *
def drukuj_napis():
	print("Tkinter działa poprawnie!")

okno = tk.Tk()
ramka = tk.Frame(okno)
ramka.pack()

przy_wyjście = tk.Button(ramka,
text="QUIT",
fg="red",
command=quit)
przy_wyjście.pack(side=tk.RIGHT)
przy_hello = tk.Button(ramka,
text="Hello",
command=drukuj_napis)
przy_hello.pack(side=tk.LEFT)
 

inny przykład

 
from tkinter import *
root = Tk()
frame = Frame(root)
frame.pack()
bottomframe = Frame(root)
bottomframe.pack( side = BOTTOM )
redbutton = Button(frame, text = "Red", fg = "red")
redbutton.pack( side = LEFT)
greenbutton = Button(frame, text = "Brown", fg="brown")
greenbutton.pack( side = LEFT )
bluebutton = Button(frame, text = "Blue", fg = "blue")
bluebutton.pack( side = LEFT )
blackbutton = Button(bottomframe, text = "Black", fg = "black")
blackbutton.pack( side = BOTTOM)
root.mainloop()
 

 Taimer 

 
import tkinter as tk
counter = 0
def counter_label(licznik):
counter = 0
def count():
global counter
counter += 1
licznik.config(text=str(counter))
licznik.after(1000, count)
count()

okno = tk.Tk()
okno.title("Taimer")
licznik = tk.Label(okno, fg="dark red")
licznik.pack()
counter_label(licznik)
przycisk = tk.Button(okno, text='Zatrzymaj odliczanie', width=25, command=okno.destroy)
przycisk.pack()
okno.mainloop()
   

  Czerwony przycisk 

from tkinter import *
okno = Tk()
okno.title("napis")
okno.geometry('150x100')
napisl = Label(okno, text="Cześć!")
napisl.grid(column=0, row=0)
przycisk = Button(okno, text="Click Me", bg="red", fg="white")
przycisk.grid(column=3, row=3)
okno.mainloop()
 

 Figury geometryczne, bochomazy 

 
from tkinter import *
from tkinter import messagebox
okno = Tk()
tło = Canvas(okno, bg = "yellow", height = 250, width = 200)
coord = 10, 50, 240, 210
łuk = tło.create_arc(coord, start = 0, extent = 150, fill = "green")
linia = tło.create_line(10,20,150,120,fill = 'red')
tło.pack()
okno.mainloop()
  źródło: https://www.tutorialspoint.com/python3/tk_menubutton.htm  

 Ustawianie napisu, etykietki 

from tkinter import *
okno = Tk()
var = StringVar()
napis = Label(okno, textvariable = var, relief = RAISED )
var.set("Hey!? Co słychać?")
napis.pack()
okno.mainloop()
 

inny przykład:

from tkinter import *
okno = Tk()
kot = StringVar()
napis = Message(okno, textvariable = kot, relief = RAISED )
kot.set("Hey!? How are you doing?")
napis.pack()
okno.mainloop()
 

 Lista z zaznaczaniem 

from tkinter import *
okno = Tk()
Lb1 = Listbox(okno)
Lb1.insert(1, "Tarnów")
Lb1.insert(2, "Police")
Lb1.insert(3, "Kędzierzyn")
Lb1.insert(4, "Puławy")
Lb1.insert(5, "Siarkopol")
Lb1.insert(6, "Guben")
Lb1.pack()
okno.mainloop()
źródłó: https://www.tutorialspoint.com/python3/tk_menubutton.htm  

 Menu Rozwijane 

from tkinter import *
okno = Tk()
Rozwijany = Menubutton(okno, text="kontroling", relief=RAISED)
Rozwijany.grid()
Rozwijany.menu = Menu(Rozwijany, tearoff=0)
Rozwijany["menu"] = Rozwijany.menu
Zarz = IntVar()
Stra = IntVar()
Rozwijany.menu.add_checkbutton(label="zarządczy",
variable=Zarz)
Rozwijany.menu.add_checkbutton(label="strategiczny",
variable=Stra)
Rozwijany.pack()
okno.mainloop()
 

 Gotowe menu do całego program 


from tkinter import *
def Jakaś_funkcja():
	filewin = Toplevel(okno)
	button = Button(filewin, text="Funkcja do podstawienia")
	button.pack()
okno = Tk()
menubar = Menu(okno)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="New", command=Jakaś_funkcja)
filemenu.add_command(label="Open", command=Jakaś_funkcja)
filemenu.add_command(label="Save", command=Jakaś_funkcja)
filemenu.add_command(label="Save as...", command=Jakaś_funkcja)
filemenu.add_command(label="Close", command=Jakaś_funkcja)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=okno.quit)
menubar.add_cascade(label="File", menu=filemenu)
editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label="Undo", command=Jakaś_funkcja)
editmenu.add_separator()
editmenu.add_command(label="Cut", command=Jakaś_funkcja)
editmenu.add_command(label="Copy", command=Jakaś_funkcja)
editmenu.add_command(label="Paste", command=Jakaś_funkcja)
editmenu.add_command(label="Delete", command=Jakaś_funkcja)
editmenu.add_command(label="Select All", command=Jakaś_funkcja)
menubar.add_cascade(label="Edit", menu=editmenu)
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="Help Index", command=Jakaś_funkcja)
helpmenu.add_command(label="About...", command=Jakaś_funkcja)
menubar.add_cascade(label="Help", menu=helpmenu)
okno.config(menu=menubar)
okno.mainloop()
  https://www.tutorialspoint.com/python3/tk_menu.htm  

 Skala pomiarowa suwak 

 
from tkinter import *
def suwak():
    selection = "Wartość = " + str(var.get())
    wartość.config(text = selection)
okno = Tk()
var = DoubleVar()
skala = Scale(okno, variable = var )
skala.pack(anchor = CENTER)
button = Button(okno, text = "Pomiar wartości", command = suwak)
button.pack(anchor = CENTER)
wartość = Label(okno)
wartość.pack()
okno.mainloop()



inny przykład

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)
bottom = Button(m2, text = "OK")
m2.add(bottom)
mainloop()
https://www.tutorialspoint.com/python3/tk_panedwindow.htm  

 Ramka z napisem 

 
from tkinter import *
okno = Tk()
napis_NR = LabelFrame(okno, text="Napis na ramce")
napis_NR.pack(fill="both", expand="yes")
napis = Label(napis_NR, text="Napis w obramowaniu")
napis.pack()
okno.mainloop()



https://www.tutorialspoint.com/python3/python_basic_operators.htm    

Artykuł Tkinter – biblioteka skryptów cz. 2 pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>
Py_wewnętrzne notatki_1: Tkinter część.1 -Prywatne https://sigmaquality.pl/tkinter/py_wewnetrzne-notatki_1/ Tue, 02 May 2017 06:32:00 +0000 http://sigmaquality.pl/?p=2596 https://www.youtube.com/watch?v=1mNCq7PUthw Aby stworzyć okno dialogowe w w Gui Tkinter należy najpierw importować ten moduł używając instrukcji import. Dzięki stworzeniu własnych manu i okien dialogowych Python [...]

Artykuł Py_wewnętrzne notatki_1: Tkinter część.1 -Prywatne pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>

 Okno dialogowe w Gui Tkinter 

https://www.youtube.com/watch?v=1mNCq7PUthw Aby stworzyć okno dialogowe w w Gui Tkinter należy najpierw importować ten moduł używając instrukcji import. Dzięki stworzeniu własnych manu i okien dialogowych Python przestaje być tylko kodem a zaczyna być programem użytkowym. Poniższy kod tworzy najprostszą ramkę okna dialogowego.
from tkinter import *           # <-- import bibliotek tkinter
okienko = Tk()                  # <-- tworzenie okna
etykieta = Label(okienko,text = "moje menu")
etykieta.pack()                  # <-- komenda powodująca pojawienie się okna
okienko.mainloop()               # <-- nieskończona pętla, w której działa program
  W wyniku uruchomienia kodu powinna ukazać się ramka z napisem: "moje pierwsze okno dialogowe".

 Kolejny przykład 

 
from tkinter import *
okienko = Tk()

topFrame = Frame(okienko)
topFrame.pack()
bottomFrame = Frame(okienko)
bottomFrame.pack(side = BOTTOM)

przycisk1 = Button(topFrame,text = "Przycisk 1", fg = "red")
przycisk1.pack(side = LEFT)

przycisk2 = Button (topFrame, text = "Przycisk 2", fg = "green")
przycisk2.pack(side = BOTTOM)

przycisk3 = Button (topFrame, text = "Przycisk 3", fg = "black")
przycisk3.pack(side = TOP)

przycisk4 = Button (bottomFrame, text = "Przycisk 4", fg = "green")
przycisk4.pack()

okienko.mainloop()
  źródło: Kurs Python 3 - lekcja 26 - Gui Tkinter - Ramki i przyciski; TechAkademiaPL https://www.youtube.com/watch?v=u0BF4ZR8bvk

 Przykład trzeci 

   
from tkinter import *
okienko = Tk()

etykieta1 = Label(okienko, text = "etykieta 1", bg = "green")
etykieta1.pack()          # <-- Do uruchopmienia, 
                          # materializacji nalepki, labela

etykieta2 = Label(okienko, text = "etykieta 2", bg = "yellow")
etykieta2.pack(fill = X)   # <-- Kiedy jest fill = X wtedy cała pozioma 
                            #oś jest wypełniona, to samo dotyczy przycisków

etykieta3 = Label(okienko, text = "etykieta 3", bg = "red")
etykieta3.pack(side = LEFT, fill = Y)     # <-- przy Y musi być określona 
                                            # strona lewa albo prawa.
                            #  To samo, etykieta przesunięta 
                             # do lewej i wypełniona cała pionowa przestrzeń

okienko.mainloop()          # <-- wieczna pętla
 

 Tworzenie prostego przycisku z przypisana funkcją – sposób 1 

https://www.youtube.com/watch?v=UebKpTKdo6s    
from tkinter import *     # <-- import
okno = Tk()               
# <-- uruchamiamy funkcje tworzenia okien

def wypisz():                          
# <-- definiuje funkcję
    print("Moja działająca funkcja!")  
# <-- definiuje funkcję

przycisk = Button(okno, text = "kliknij mnie!", command = wypisz) 
# <-- Definiuje przycisk
przycisk.pack()                                                   
# <-- materializuje przycisk

okno.mainloop()       
# <-- wieczna pętla



Po naciśnięciu drukuje się komunikat: 
Moja działająca funkcja!
Moja działająca funkcja!
Moja działająca funkcja!
Moja działająca funkcja!







 Tworzenie prostego przycisku z przypisana funkcją – sposób 2 
https://www.youtube.com/watch?v=UebKpTKdo6s  
from tkinter import *       # <-- import
okno = Tk()                 
# <-- uruchamiamy funkcje tworzenia okien

def wypisz(jakieś_zdarzenie):            
# <-- definiuje funkcję, przy tym sposobie trzeba
# tu wpisać coś, jakieś zdarzenie - przy sposobie 2
    print("Moja działająca funkcja!")    
# <-- definiuje funkcję

przycisk = Button(okno, text = "kliknij mnie!")  
# <-- Definiuje przycisk
przycisk.bind("<Button-1>", wypisz)      
# <-- materializuje przycisk,
# <Button-1> to lewy przycisk myszy,
# <Button-3> to prawy przycisk myszy
# <Button-2> środkowy przycisk myszy
przycisk.pack()            
# <-- materializuje przycisk
okno.mainloop()            
# <-- wieczna pętla

 
Po naciśnięciu drukuje się komunikat: 
Moja działająca funkcja! 
Moja działająca funkcja! 
Moja działająca funkcja! 
Moja działająca funkcja! 

 

Artykuł Py_wewnętrzne notatki_1: Tkinter część.1 -Prywatne pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>
Py_wewnętrzne notatki_1: Tkinter część.2 — Prywatne https://sigmaquality.pl/tkinter/py_wewnetrzne-notatki_1-tkinter-czesc-2-prywatne/ Tue, 02 May 2017 06:32:00 +0000 http://sigmaquality.pl/?p=2613   https://www.youtube.com/watch?v=5BrY9-eImEQ Tworzenie płaszczyzny reagującej na naciskanie przycisków myszy from tkinter import * okno =Tk() def lewyprzycisk(event):     print("Lewy") def prawyprzycisk(event):     print("Prawy") def srodkowyprzycisk(event): [...]

Artykuł Py_wewnętrzne notatki_1: Tkinter część.2 — Prywatne pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>

 

https://www.youtube.com/watch?v=5BrY9-eImEQ

Tworzenie płaszczyzny reagującej na naciskanie przycisków myszy

from tkinter import *
okno =Tk()

def lewyprzycisk(event):
    print("Lewy")

def prawyprzycisk(event):
    print("Prawy")

def srodkowyprzycisk(event):
    print("Srodkowy")

ramka = Frame(okno, width = 480, height = 320)
ramka.pack()
# <-- określa jak duża ma być to ramka, dokładne wymiary

ramka.bind("<Button-1>", lewyprzycisk)
ramka.bind("<Button-3>", prawyprzycisk)
ramka.bind("<Button-2>", srodkowyprzycisk)
# <-- przyporządkowuje ramkę do zdefiniowanych funkcji myszy
okno.mainloop()

Teraz zamiast print(„Lewy”) wstawiłem: print(event.x,event.y)

Zamiast informacji: „Lewy” po kliknięciu myszą otrzymuje dokładne położenie kliknięcia w skali x,y.

 

from tkinter import *
okno =Tk()

def lewyprzycisk(event):
    print(event.x,event.y)
# <-- tu dokonałem zmiany

def prawyprzycisk(event):
    print("Prawy")

def srodkowyprzycisk(event):
    print("Srodkowy")

ramka = Frame(okno, width = 480, height = 320)
ramka.pack()
# <-- określa jak duża ma być to ramka, dokładne wymiary

ramka.bind("<Button-1>", lewyprzycisk)
ramka.bind("<Button-3>", prawyprzycisk)
ramka.bind("<Button-2>", srodkowyprzycisk)
# <-- przyporządkowuje ramkę do zdefiniowanych funkcji myszy

okno.mainloop()





 

 

Artykuł Py_wewnętrzne notatki_1: Tkinter część.2 — Prywatne pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>