Рубрики
Без рубрики

Виджеты Tkinter GUI – полная ссылка

Добро пожаловать в этот учебник по виджетам Tkinter GUI. В этой статье я познакомим вас со всеми виджетами TKinter вкратце и предоставим вам несколько простых

Автор оригинала: Pankaj Kumar.

Виджеты Tkinter GUI – полная ссылка

Добро пожаловать в этот учебник по виджетам Tkinter GUI. В этой статье я познакомим вас на все виджеты TKinter вкратце и предоставляю вам несколько простых фрагментов кода для создания виджетов. К концу этой статьи вы сможете использовать весь код и создать мини-сервис с использованием виджетов GUI.

Оглавление

  • Создание главного окна TKinter
  • Размещение виджетов TKinter GUI
    • 1. Виджет Tkinter Label
    • 2. Виджет кнопки TKinter
    • 3. Виджет кнопки проверки Tkinter
    • 4. Входной виджет Tkinter
    • 5. Виджет Scale Tkinter
    • 6. Виджет Tkinter Listbox
    • 7. Виджет Tkinter Radiobutton
  • Заключение

Создание главного окна TKinter

Этот шаг необходим для любого вижегота TKinter GUI независимо от его характеристик.

from tkinter import *

root = Tk()

#optional
root.configure(background='yellow')
root.geometry('600x800)

#place any of your code lines here

#end of code
root.mainloop()

Приведенный выше фрагмент кода, представляет собой структуру голой кости, которая должна использоваться для определения коробки TKinter GUI, прежде чем размещать любой виджет на панели.

В фрагменте кода Tkinter Библиотека была импортирована и TK () Конструктор был создан с использованием корень объект. К концу кода я позвонил всей всей программе, используя root.mainloop () Отказ

root.configure () используется для добавления дополнительных свойств в ваш мэйнфрейм. В этом примере я использовал его, чтобы добавить свойство Фон и Root.Geometry () Обеспечивает, что основной кадр имеет нужный размер. Однако они являются необязательными для использования.

Размещение виджетов TKinter GUI

Теперь, когда мы инициализировали мэйнфрейм для Tkinter, мы посмотрим на разные виджеты.

Я буду вводить наиболее часто используемые виджеты, которые включают метку, кнопку, кнопку проверки, запись, слайдер (который в TKinter называется шкалой), в списке поле и переключатель.

Добавьте фрагменты кода, приведенные ниже к коду для главного окна.

1. Виджет Tkinter Label

Для Виджет метки Здесь мы определим его, используя Этикетка сам конструктор. Этикетка собирается пойти в главное окно корня, и текст скажет «Эй, добро пожаловать на этот мой графический интерфейс».

Затем мы упаковываем этикетку внутри окна, и мы предоставили аргумент Pady, чтобы дать нам немного больше места на оси Y.

label=Label(root,text="Hey, welcome to this my GUI")
label.pack(pady=10)

2. Виджет кнопки TKinter

Кнопка будет помещена в одно и то же главное окно и создается с помощью кнопки () конструктора. Текст для кнопки скажет «нажмите кнопку». Обратите внимание, что цвет текста зеленый. Для этого мы присваиваем зеленый на передний план.

Когда кнопка нажата, мы хотим активировать функцию, и мы собираемся назначить эту функцию в аргументе команд. Имя функции – button_trigger () Отказ Когда кнопка нажата, она собирается активировать эту функцию и распечатать сообщение «Нажата кнопка».

Мы упаковали кнопку в основное окно корня. Поэтому, когда мы нажимаем эту кнопку, она собирается активировать эту функцию, и она собирается распечатать сообщение в консоли.

def button_trigerr():
    print("Button Pressed")

button = Button(root,text="press button", foreground="green", command=button_trigger)
button.pack(pady=10)

3. Виджет кнопки проверки Tkinter

Для следующего примера у нас есть кнопка проверки.

Когда мы проверяем эту коробку или кнопку, она собирается повернуть белый фон, как то включить свет. Тогда, если мы сфотографируем его, он собирается превратить фоновый черный, как поворачивая свет. Давайте попробуем это.

def check_button_action():
    print(check_button_var.get())

    if check_button_var.get()==1:
        root.configure(background='white')
    else:
        root.configure(background='black')

check_button_var = IntVar()
check_button = tk.Checkbutton(root, text="on/off", variable=check_button_var, command= button_action)
check_button.pack(pady=10)

Итак, сначала создайте кнопку проверки, используя CheckButton () Отказ Это происходит на главном окне корня. Текст «ВКЛ/ВЫКЛ».

Мы связали переменную с помощью этой кнопки проверки, и это целое число. Функция, которая будет активирована кнопкой проверки и называется Button_action.

Кнопка CHECK имеет два состояния по умолчанию, которые равны 0 и 1, и эти состояния по умолчанию будут назначены этой переменной здесь. Эта переменная будет отслеживать состояние кнопки проверки и получить состояние кнопки проверки.

Мы просто идем вперед и ссылаемся на variable.get () Отказ Если состояние кнопки проверки составляет 1, что эквивалентно проверяется коробку, и мы собираемся сделать фоном белизны окна.

Если это 0, мы собираемся сделать фон корневого окна Black, который дает нам влияние поворачивания света или выключения. Затем мы упаковали это в «основную» рамку с Pady 10.

4. Входной виджет Tkinter

Входной виджет позволяет использовать текст и передавать текст из текстового поля или ввода в консоль и отображает сообщение на консоли.

Чтобы создать виджет ввода, мы отправились вперед и создали кадр. Чтобы создать кадр, мы используем кадр ().

Рамка собирается перейти в основное корневое окно с шириной границы 5 с затонувшим эффектом. Ссылаем пакет с рамкой, и это упаковывает кадр в главное окно.

entry_frame = Frame(root, borderwidth=5, relief = SUNKEN)
entry_frame.pack()

text_box=Entry(entry_frame)
text_box.pack()

def get_entry_text():
    print(text_box.get())
    label.configure(text=text_box.get())

button = Button(entry_frame, text='get entry', command=get_entry_text)
button.pack(pady=10)

Затем мы создали наше текстовое поле ввода, и запись будет переходить в кадр. Мы упаковали запись в рамку. Таким образом, кадр попадет в главное окно, и запись войдет в кадр.

Затем мы продолжим и создам кнопку, которая передаст текст из записи в консоль. Теперь обратите внимание, что наше сообщение напечатано на консоли, а также обновляла нашу метку на мэйнфрейме. Чтобы получить текст, мы просто используем метод Get ().

5. Виджет Scale Tkinter

Давайте пойдем через слайдер или виджет масштаба здесь. Так что для этого виджета, скажем, что у вас есть ресторан, и это 100 долларов, и вы хотите увидеть, насколько различные суммы наконечника будут влиять на общий счет.

Мы можем использовать слайдер для наконечника и окна ввода для законопроекта, а затем метка покажет нам общий счет. Этикетка покажет нам общий счет.

slider_frame = Frame(root, borderwidth=5, relief=SUNKEN)
slider_frame.pack(pady=10)

def calculate_total_bill(value):
    print(value)
    if bill_amount_entry.get()!=' ':
        tip_percent=float(value)
        bill=float(bill_amount_entry.get())
        tip_amount=tip_percent*bill
        text=f'(bill+tip_amount)'
        bill_with_tip.configure(text=text)

slider = Scale(slider_frame, from_=0.00, to=1.0,orient=HORIZONTAL, length=400, tickinterval=0.1, resolution=0.01, command=calculate_total_bill)
slider.pack()

Хорошо, чтобы создать масштаб, мы используем масштаб (), а затем здесь мы поставляем все наши параметры или аргументы для текстового поля ввода. Мы создали это выше.

Мы упаковали ползунок, текстовое поле ввода и метку в наш кадр, который пойдет в главное окно. Мы создали кадр, как мы сделали в последнем примере.

Для изменений, сделанных слайдером, calculate_total_bill () будет активирован. Эта функция будет в основном принять текст, который является суммой счета из окна ввода. Затем он возьмет процент наконечника от шкалы слайдера, нанести совет к счету, а затем дайте нам общий счет, который будет отображаться на этикетке.

6. Виджет Tkinter Listbox

Давайте пойдем через виджет коробки списка. Так что здесь у нас есть наш список с пятью элементами. В этом примере мы просто собираемся выбрать один из предметов. Затем мы собираемся нажать кнопку, и мы хотим перенести текст из элемента на метку.

listbox_frame=Frame(root,borderwidth=5, relief=SUNKEN)
listbox_frame.pack(pady=10)

listbox=Listbox(listbox_frame)
listbox.pack()

listbox.insert(END,"one")

for item in ["two","three","four","five"]:
    listbox.insert(END, item)

def list_item_selected():
    selection=listbox.curselection()
    if selection:
        print(listbox.get(selection[0]))
        list_box_label.configure(text=listbox.get(selection[0]))

list_box_button = Button(listbox_frame,text='list item button', command=list_item_selected)
list_box_button.pack()

Чтобы создать ящик списка, мы используем Listbox () Отказ Мы собираемся поставить список списка внутри рамки. После того, как мы создали наш список в списке, мы можем идти вперед и вставить элементы в поле списка.

Если вы хотите вставить несколько элементов, вы можете сделать это с контуром для цикла. Здесь мы создали кнопку, когда мы нажимаем кнопку. Это будет активировать list_item_selected () созданный.

Для доступа к выбору мы ссылаемся на listbox.cuarselection () Отказ Чтобы убедиться, что мы на самом деле выбрали что-то, мы используем Если выбор: И если у нас выбран элемент, мы ссылаемся на элемент списка, а затем получаем фактический элемент.

Причина, по которой мы использовали квадратные скобки с нулем, состоит в том, что элемент обычно является однозначным кортежным кортежом, и это даст нам только цифру. Тогда мы хотим идти вперед и обновить нашу этикетку с выбранным вами элементом.

7. Виджет Tkinter Radiobutton

Так что для последнего примера давайте перейдем на радиопередачу. Теперь в зависимости от выбранной радиопередачи мы собираемся получить изображение, отображаемое здесь. Так что здесь у нас есть горы, катание на лодках и т.

Я создал наши три кнопки радио. Все радиопередачи будут размещены внутри основного корневого окна. Для текста мы пошли впереди и назначенные «горы, лодками и кемпингом».

Все радио кнопки будут иметь значение, связанное с одной переменной, и мы создали эту переменную.

Label(root, text="choose icon")

def radio_button_func():
    print(rb_icon_var.get())
    if(rb_icon_var.get())==1:
        radio_button_icon.configure(text='\u26F0')
    elif rb_icon_var_get()==2:
        radio_button_icon.configure(text='\u26F5')
    elif rb_icon_var_get()==3:
        radio_button_icon.configure(text='\u26FA')

rb_icon_var=IntVar()

Radiobutton(root,text="mountains",variable=rb_icon_var, value=1, command=radio_button_func).pack()
Radiobutton(root,text="boating",variable=rb_icon_var, value=2, command=radio_button_func).pack()
Radiobutton(root,text="camping",variable=rb_icon_var, value=3, command=radio_button_func).pack()

radio_button_icon = Label(root, text=' ', font=("Helvetica",150))
radio_button_icon.pack()

В этом случае, поскольку вы можете щелкнуть только одну переключатель одновременно, значение, связанное с любым из кнопок радио, которые мы назначили здесь 1, 2 или 3, будут присвоены переменной.

Когда нажата радиопередача, она собирается активировать или вызывать «RADIO_BUTTON_FUNC ()».

Таким образом, если эта первая переключатель нажала на горы, значение 1 будет назначено этой переменной, а затем мы получим это значение и тестируйте, если он равен 1.

И если он равен 1, мы собираемся использовать представление текста Unicode для гор.

Заключение

Чтобы быстро заключить, что мы вошли через несколько часто используемых виджетов, а использование их следующим образом:

  • Этикетка – отображать текст или сообщения
  • Кнопка – Используется на панелях инструментов, окна приложений, окна всплывающих окон и диалоговых окна
  • Проверьте кнопку – используется для реализации выделения выключения.
  • Въезд виджет – используется для входа или отображения одной строки текста
  • Виджет масштаба – Используется вместо ввода виджет, когда вы хотите, чтобы пользователь вводил ограниченное числовое значение.
  • Список ящик – Используется для отображения списка альтернатив.
  • Радио кнопка – Используется как способ предложить много возможных выборов для пользователя, но позволяет пользователю выбрать только один из них.

Попробуйте эти различные виджеты и дайте нам знать ваш любимый в разделе «Комментарий» ниже!