logo

Python Tkinter

Python пропонує кілька варіантів розробки GUI (графічного інтерфейсу користувача). З усіх методів GUI tkinter є найпоширенішим методом. Це стандартний інтерфейс Python для набору інструментів Tk GUI, який постачається разом із Python. Python Tkinter це найшвидший і найпростіший спосіб створення графічних програм. Створення графічного інтерфейсу за допомогою Tkinter є легким завданням.

Зміст

Щоб створити програму Tkinter Python, виконайте такі основні кроки:



  1. Імпортуйте модуль tkinter : це робиться так само, як імпорт будь-якого іншого модуля Python . Зауважте, що в Python 2.x модуль називається «Tkinter», а в Python 3.x він називається «tkinter».
  2. Створення головного вікна (контейнера) : головне вікно служить контейнером для всіх елементів GUI, які ви додасте пізніше.
  3. Додайте віджети в головне вікно : Ви можете додати до головного вікна будь-яку кількість віджетів, таких як кнопки, мітки, поля введення тощо, щоб створити інтерфейс за бажанням.
  4. Застосуйте тригери подій до віджетів : Ви можете приєднати тригери подій до віджетів, щоб визначити, як вони реагують на взаємодії користувача.

Створіть першу програму Tkinter GUI

Використовуються два основні методи, які користувач повинен пам’ятати під час створення програми Python із графічним інтерфейсом користувача.

розібрати рядок до int

Tk()

Щоб створити головне вікно, tkinter пропонує метод «Tk(screenName=None, baseName=None, className=’Tk’, useTk=1)». Щоб змінити назву вікна, ви можете змінити className на потрібне. Основний код, який використовується для створення головного вікна програми:

основний цикл()

Існує метод, відомий під назвою mainloop(), який використовується, коли ваша програма готова до запуску. mainloop() — це нескінченний цикл, який використовується для запуску програми, очікування настання події та обробки події, поки вікно не закрито.

приклад

Python3
import tkinter m = tkinter.Tk() ''' widgets are added here ''' m.mainloop()>

Вихід

малюнок

Віджет Tkinter

Є кілька віджетів, які ви можете розмістити у своїй програмі tkinter. Деякі з основних віджетів пояснюються нижче:

1. Мітка

Це стосується вікна відображення, де ви можете розмістити будь-який текст або зображення, яке можна оновити будь-коли відповідно до коду. Загальний синтаксис:

w=Label(master, option=value) master is the parameter used to represent the parent window.>
Python3
from tkinter import * root = Tk() w = Label(root, text='GeeksForGeeks.org!') w.pack() root.mainloop()>

Вихід

етикетка

2. Кнопка

Щоб додати кнопку у вашу програму, використовується цей віджет. Загальний синтаксис:

w=Button(master, option=value)>

master — це параметр, який використовується для представлення батьківського вікна. Існує кілька параметрів, які використовуються для зміни формату кнопок. Кількість параметрів можна передавати як параметри, розділені комами.Python3>

>
>

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


Вихід


3. Вхід

Він використовується для введення однорядкового тексту від користувача. Для багаторядкового введення тексту використовується віджет Текст. Загальний синтаксис:

w=Entry(master, option=value)>

master — це параметр, який використовується для представлення батьківського вікна. Існує кілька параметрів, які використовуються для зміни формату віджета. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

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

Вихід

numpy meshgrid

4. CheckButton

Для вибору будь-якої кількості параметрів, відображаючи кілька параметрів для користувача як кнопки перемикання. Загальний синтаксис:

w = CheckButton(master, option=value)>

Існує кілька параметрів, які використовуються для зміни формату цього віджета. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

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

Вихід



5. Радіо-кнопка

Він використовується, щоб запропонувати користувачеві вибір із кількома варіантами. Він пропонує користувачеві кілька варіантів, і користувач повинен вибрати один варіант. Загальний синтаксис:

w = RadioButton(master, option=value)>

Існує кілька параметрів, які використовуються для зміни формату цього віджета. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

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

Вихід

6. Список

Він пропонує користувачеві список, з якого користувач може прийняти будь-яку кількість варіантів. Загальний синтаксис:

w = Listbox(master, option=value) master is the parameter used to represent the parent window.>

Існує кілька параметрів, які використовуються для зміни формату віджета. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

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

Вихід


7. Прокрутки

Це стосується контролера слайдів, який використовуватиметься для реалізації перелічених віджетів. Загальний синтаксис:

w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.>

Існує кілька параметрів, які використовуються для зміни формату віджета. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

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

Вихід

8. Меню

Він використовується для створення всіх видів меню, які використовуються програмою. Загальний синтаксис:

w = Menu(master, option=value) master is the parameter used to represent the parent window.>

Існує кілька параметрів, які використовуються для зміни формату цього віджета. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

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

Вихід

9. Комбінований список

Віджет Combobox створюється за допомогою класу ttk.Combobox із модуля tkinter.ttk. Значення для поля зі списком вказуються за допомогою параметра values. Стандартне значення встановлюється за допомогою методу set. Функція обробника подій on_select прив’язана до Combobox за допомогою методу прив’язки, який оновлює мітку з вибраним елементом кожного разу, коли елемент вибрано.

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

Вихід

image2

10. масштаб

Він використовується для створення графічного повзунка, який дозволяє вибрати будь-яке значення з цієї шкали. Загальний синтаксис:

w = Scale(master, option=value)master is the parameter used to represent the parent window.>

Існує кілька параметрів, які використовуються для зміни формату віджета. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

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

Вихід

одинадцять. Вищий рівень

Цей віджет безпосередньо керується диспетчером вікон. Для роботи не потрібне батьківське вікно. Загальний синтаксис такий:

w = TopLevel(master, option=value)>

Існує кілька параметрів, які використовуються для зміни формату віджета. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

Python3
from tkinter import * root = Tk() root.title('GfG') top = Toplevel() top.title('Python') top.mainloop()>

Вихід

12. повідомлення

Це відноситься до багаторядкового тексту, який не редагується. Він працює так само, як і Label. Загальний синтаксис:

w = Message(master, option=value) master is the parameter used to represent the parent window.>

Існує кілька параметрів, які використовуються для зміни формату віджета. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

Python3
from tkinter import * main = Tk() ourMessage = 'This is our Message' messageVar = Message(main, text=ourMessage) messageVar.config(bg='lightgreen') messageVar.pack() main.mainloop()>

Вихід

13. Кнопка меню

Це частина спадного меню, яке постійно залишається у вікні. Кожна кнопка меню має власну функцію. Загальний синтаксис:

w = MenuButton(master, option=value) master is the parameter used to represent the parent window.>

Існує кілька параметрів, які використовуються для зміни формату віджета. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

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

Вихід

14. Індикатор виконання

Програма Tkinter із віджетом Progressbar і кнопкою для запуску прогресу. Після натискання кнопки індикатор прогресу заповнюється на 100% протягом короткого періоду часу, імітуючи завдання, для виконання якого потрібен час.

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

Вихід

прогрес

п'ятнадцять. SpinBox

Це запис у віджеті «Вхід». Тут можна ввести значення, вибравши фіксоване значення чисел. Загальний синтаксис такий:

w = SpinBox(master, option=value)>

Існує кілька параметрів, які використовуються для зміни формату віджета. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

python rstrip
Python3
from tkinter import * master = Tk() w = Spinbox(master, from_=0, to=10) w.pack() mainloop()>

Вихід:

16. текст

Щоб відредагувати багаторядковий текст і відформатувати так, як він має відображатися. Загальний синтаксис:

w =Text(master, option=value)>

Існує кілька параметрів, які використовуються для зміни формату тексту. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

Python3
from tkinter import * root = Tk() T = Text(root, height=2, width=30) T.pack() T.insert(END, 'techcodeview.com
BEST WEBSITE
') mainloop()>

Вихід

17. Полотно

Він використовується для малювання зображень та інших складних макетів, таких як графіка, текст і віджети. Загальний синтаксис:

w = Canvas(master, option=value) master is the parameter used to represent the parent window.>

Існує кілька параметрів, які використовуються для зміни формату віджета. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

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

Вихід

18. PannedWindow

Це віджет-контейнер, який використовується для обробки кількості панелей, розташованих у ньому. Загальний синтаксис:

w = PannedWindow(master, option=value)>

Master — це параметр, який використовується для представлення батьківського вікна. Існує кілька параметрів, які використовуються для зміни формату віджета. Кількість параметрів можна передавати як параметри, розділені комами. Деякі з них наведено нижче.

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

Вихід

Параметр кольору в Tkinter

Цей приклад демонструє використання різних варіантів кольорів у віджетах Tkinter, включаючи кольори активного фону та переднього плану, кольори фону та переднього плану, кольори вимкненого стану та кольори виділення. Кожен віджет у прикладі демонструє різні параметри кольору, надаючи візуальне представлення того, як ці параметри впливають на зовнішній вигляд віджетів.

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

Вихід

як перевірити розмір екрана монітора

2024-04-2516-50-47online-video-cuttercom-ezgifcom-video-to-gif-converter

Докладніше про покращення шрифту: Шрифт Tkinter

Управління геометрією

Tkinter також пропонує доступ до геометричної конфігурації віджетів, яка може впорядковувати віджети в батьківських вікнах. В основному існує три класи менеджера геометрії.

метод pack().

Він організовує віджети в блоки перед розміщенням у батьківському віджеті.

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

Вихід


упаковка

метод grid().

Він організовує віджети в сітку (табличну структуру) перед розміщенням у батьківському віджеті.

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

Вихід

сітка

метод place().

Він організовує віджети, розміщуючи їх на певних позиціях, керованих програмістом.

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

Вихід

місце