Tkinter - это набор инструментов с графическим пользовательским интерфейсом (GUI), который вы должны попробовать, если хотите изучить возможности Python в создании настольных приложений.

Здесь мы рассмотрим основы графического интерфейса пользователя Tkinter.

Настройка Tkinter

Как правило, устанавливать tkinter отдельно, если вы установили более позднюю версию Python, начиная с Python 3. Однако библиотека может не работать со старыми версиями Python. Это обычная проблема для пользователей Mac и Linux, поскольку эти ОС обычно по умолчанию поставляются со старыми версиями Python.

Как правило, для использования tkinter модуль, убедитесь, что вы загрузили и установили последнюю совместимую версию Python на свой компьютер с официального python.org Веб-сайт.

Если вы работаете на Mac, вы также можете загрузить последнюю версию ActiveTcl, tkinter компилятор из ActiveState.

Как использовать Tkinter

Tkinter зависит от встроенного ТЗ класс. И он объединяет все события в графическом интерфейсе в главная петля. Таким образом главная петля обертка делает ваш tkinter исполняемый код.

instagram viewer

Чтобы начать с tkinter:

из tkinter import Tk
Tk (). Mainloop ()

Выполнение приведенного выше кода приводит к появлению пустого tkinter Рамка.

Однако возможности настройки Tkinter находятся во встроенных виджетах.

Чтобы использовать эти виджеты, вы можете импортировать их из tkinter путем замены из tkinter import Tk с участием:

из tkinter import *
t = Tk ()
t.mainloop ()

Вы также можете настроить размер окна с помощью геометрия функцию, а затем укажите заголовок, используя заглавие виджет tkinter:

t = Tk ()
t.geometry ("600x600")
t.title ("Tk Tutorial")
t.mainloop ()

Tkinter позволяет писать простые тексты прямо в графический интерфейс, используя Этикетка виджет:

t = Tk ()
Label (t, text = "Учебник MUO Tkinter"). Grid ()
t.mainloop ()

В сетка() метод, однако, является альтернативой пакет() метод. Он прикрепляет ваши виджеты к графическому интерфейсу, делая их видимыми.

Вы также можете указать шрифт для своего Этикетка текст:

t = Tk ()
Label (t, text = "Учебник MUO Tkinter", font = (60)). Grid ()
t.mainloop ()

Кнопки - одни из наиболее часто используемых виджетов в tkinter. И вы можете добавить эти интерактивные кнопки в свой графический интерфейс, используя различные встроенные виджеты кнопок.

Вот как добавить основную кнопку в ваш графический интерфейс с помощью Кнопка виджет:

t = Tk ()
Button (t, text = "Clickable", bg = "black", fg = "white"). Grid ()
t.mainloop ()

В bg а также фг Ключевые слова описывают цвет фона кнопки и цвет текста внутри нее соответственно.

Вы также можете настроить размер кнопки, включив высота а также ширина параметры:

t = Tk ()
Button (t, text = "Clickable", bg = "black", fg = "white", height = "2", width = "10"). Grid ()
t.mainloop ()

Вот результат:

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

t = Tk ()
Кнопка (t, text = "Clickable", bg = "blue", fg = "white",
height = 2, width = 10, Relief = RAISED, borderwidth = 6) .grid ()
t.mainloop ()

А это выглядит так:

Заменять ПОДНЯТЫЙ с ПЛОСКИЙ чтобы увидеть, как это происходит.

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

Чтобы избежать перекрытия, вы можете указать положение строки и столбца для каждой кнопки:

t = Tk ()
Button (t, text = 1, bg = "black", fg = "white"). Grid (row = 1, column = 1)
Button (t, text = 2, bg = "black", fg = "white"). Grid (row = 2, column = 1)
Button (t, text = 3, bg = "black", fg = "white"). Grid (row = 3, column = 1)
Button (t, text = 4, bg = "black", fg = "white"). Grid (row = 4, column = 1)
t.mainloop ()

Необязательный команда ключевое слово, однако, добавляет события в Кнопка виджет. По сути, он закрепляет необязательную функцию, которая обрабатывает определенные события при нажатии кнопки.

В приведенном ниже коде, например, значение каждой кнопки умножается на 6, когда вы нажимаете на нее. И это основано на предопределенной функции:

def нажатие кнопки (r):
г = 6 * г
Метка (t, text = r, font = (60)). Grid (row = 5, column = 2)
t = Tk ()
Button (t, text = 1, bg = "black", fg = "white", width = 10, height = 2,
command = lambda: buttonpress (1)). grid (строка = 1, столбец = 1, pady = 6)
Кнопка (t, text = 2, bg = "black", fg = "white", width = 10,
command = lambda: buttonpress (2)). grid (строка = 2, столбец = 1, pady = 6)
Кнопка (t, text = 3, bg = "black", fg = "white", width = 10,
command = lambda: buttonpress (3)). grid (row = 3, column = 1, pady = 6).
Кнопка (t, text = 4, bg = "black", fg = "white", width = 10,
command = lambda: buttonpress (4)). grid (строка = 4, столбец = 1, pady = 6)
t.mainloop ()

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

И если вы беспокоитесь о пади ключевое слово, оно четко разделяет каждую кнопку в строке. Заменив это на Padx разделяет кнопки по столбцу. И вы можете использовать оба ключевых слова одновременно, чтобы разделить кнопки по обеим осям по своему желанию.

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

Но ты можешь использовать цикл for чтобы избежать этого повторения.

Итак, вот более короткая и лучшая версия приведенного выше кода:

def нажатие кнопки (r):
г = 6 * г
Метка (t, text = r, font = (60)). Grid (row = 5, column = 2)
t = Tk ()
а = [1, 4, 6, 7]
для я в:
j = лямбда y = i: нажатие кнопки (y)
Кнопка (t, text = i, bg = "black", fg = "white", width = 10, height = 2,
command = j) .grid (строка = i, столбец = 1, pady = 6)
t.mainloop ()

Кнопки меню и кнопки-флажки

Давайте дальше исследуем силу для цикл для добавления кнопок меню в ваш графический интерфейс:

из tkinter import *
t = Tk ()
buttons = ["Файлы", "Панель управления", "Меню", "Настройки", "Справка"]
m = 0
для i в диапазоне (len (кнопки)):
# Получить каждый текст в массиве кнопок, используя индекс списка при увеличении m.
# Затем позвольте столбцу увеличиться на 1 по длине массива:

Menubutton (t, text = buttons [m], bg = "blue", fg = "white"). Grid (row = 5, column = i)
т + = 1
t.mainloop ()

Добавить кнопки проверки в ваш графический интерфейс тоже довольно просто:

t = Tk ()
Checkbutton (t, text = "Выбрать вариант"). Grid ()
t.mainloop ()

Не стесняйтесь умножать эту кнопку с галочкой, используя для цикл, как и раньше.

В Меню виджет позволяет создавать интерактивные раскрывающиеся меню в tkinter.

Как было сказано ранее, tkinter предлагает множество вариантов виджетов. И вы будете использовать некоторые из них при разработке раскрывающегося меню.

Вот некоторые из распространенных вариантов виджетов, с которыми вы столкнетесь при создании раскрывающегося списка:

  • add_cascade: Он отображает метку меню и наклеивает ее на свое место.
  • add_separator: Он разделяет подменю и группирует их на верхнее и нижнее подменю.
  • add_command: Здесь вы даете своему подменю имя. В конечном итоге он принимает аргумент команды, в котором вы можете указать обработчик событий.

Вот пример раскрывающегося списка, в котором используются эти три варианта:

из tkinter import *
t = Tk ()
fileOptions = ["Создать", "открыть", "Сохранить", "Сохранить как"]
fileOptionsAfterseparator = ["Импорт", "Экспорт", "Выход"]
viewOptions = ["Преобразовать", "Изменить", "Создать"]
menuBar = Меню (t)
file = Меню (menuBar, tearoff = 0)
для i в fileOptions:
file.add_command (label = i, command = None)
file.add_separator ()
для i в fileOptionsAfterseparator:
file.add_command (label = i, command = None)
menuBar.add_cascade (label = "Файл", menu = file)
Вид = Меню (панель меню, отрыв = 0)
для i в viewOptions:
View.add_command (label = i, command = None)
menuBar.add_cascade (label = "Просмотр", menu = View)
t.config (меню = menuBar)
t.mainloop ()

Посмотрите, как это выглядит:

Меню опций Tkinter

An Optionmenu, в отличие от Меню раскрывающийся список, переключает его метку на выбранную опцию.

Хотя вы можете указать значение метки по умолчанию для меню параметров, по умолчанию у него нет метки.

Связанный: Идеи проекта Python, подходящие для начинающих

Вот как создать меню параметров в tkinter:

t = Tk ()
Омену = StringVar () # установить тип переменной для опций
Omenu.set («MUO») # укажите значение по умолчанию для значка меню
OptionMenu (t, Omenu, «MUO», «Amazon», «Учебник»). Grid ()
t.mainloop ()

Создайте многоразовое настольное приложение с помощью Tkinter

Tkinter предлагает множество функций, которые помогут вам создавать настольные приложения с интерактивным графическим интерфейсом. Хотя у него может не быть многих гибких функций украшения, как у некоторых других модулей графического интерфейса Python, это все же удобный инструмент, который стоит изучить. И хотя приведенные здесь примеры показывают только некоторые из основных концепций, tkinter предлагает более продвинутые функции, которые вы можете попробовать.

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

Электронное письмо
GUI? Что такое графический интерфейс пользователя?

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

Читать далее

Похожие темы
  • Программирование
  • Python
Об авторе
Идову Омисола (Опубликовано 88 статей)

Идову увлечен интеллектуальными технологиями и производительностью. В свободное время он играет с кодированием и переключается на шахматную доску, когда ему скучно, но он также любит время от времени отвлекаться от рутины. Его страсть показывать людям современные технологии побуждает его писать больше.

Ещё от Idowu Omisola

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться