Tkinter е набор от инструменти за графичен потребителски интерфейс (GUI), който трябва да изпробвате, ако искате да изследвате силата на Python при създаването на приложения за настолни компютри.

Тук ще разгледаме основите на Tkinter GUI модула.

Настройка на Tkinter

Обикновено не е необходимо да инсталирате tkinter отделно, ако сте инсталирали по-нова версия на Python, започвайки с Python 3. Библиотеката обаче може да не работи със стари версии на Python. Това е често срещан проблем за потребителите на Mac и Linux, тъй като тези операционни системи обикновено се предлагат с по-стари версии на Python по подразбиране.

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

Ако сте на Mac, като алтернатива можете да изтеглите най-новата версия на ActiveTcl, a tkinter компилатор от ActiveState.

Как да използвате Tkinter

Tkinter зависи от вградения си TK клас. И обхваща всички събития в GUI в

instagram viewer
mainloop. По този начин mainloop обвивка прави вашия tkinter изпълним код.

За да започнете tkinter:

от tkinter import Tk
Tk (). Mainloop ()

Изпълнението на горния код завърта празно tkinter кадър.

Функциите за персонализиране на Tkinter обаче са във вградените му джаджи.

За да използвате тези приспособления, можете да ги импортирате от tkinter чрез заместване от tkinter import Tk с:

от внос на tkinter *
t = Tk ()
t.mainloop ()

Можете също да регулирате размера на прозореца с геометрия и след това посочете заглавие с помощта на заглавие джаджа на tkinter:

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

Tkinter ви позволява да пишете обикновени текстове директно в GUI с помощта на Етикет джаджа:

t = Tk ()
Етикет (t, text = "MUO Tkinter tutorial"). Grid ()
t.mainloop ()

The решетка () методът обаче е алтернатива на пакет () метод. Той залепва вашите джаджи към GUI, като ги прави видими.

Можете също да посочите шрифт за вашия Етикет текст:

t = Tk ()
Етикет (t, text = "MUO Tkinter tutorial", font = (60)). Grid ()
t.mainloop ()

Бутоните са едни от най-използваните джаджи в tkinter. И можете да добавите тези бутони за кликване към вашия GUI, като използвате различните вградени джаджи за бутони.

Ето как да добавите основен бутон към вашия GUI с помощта на Бутон джаджа:

t = Tk ()
Бутон (t, text = "Clickable", bg = "black", fg = "white"). Grid ()
t.mainloop ()

The bg и fg ключовите думи описват съответно цвета на фона на бутона и цвета на текста в него.

Можете също така да регулирате размера на бутона, като включите височина и ширина параметри:

t = Tk ()
Бутон (t, text = "Clickable", bg = "black", fg = "white", height = "2", width = "10"). Grid ()
t.mainloop ()

Ето изхода за това:

И ако искате да направите бутона по-привлекателен визуално, можете да включите a облекчение и след това коригирайте нейната ширина на границата:

t = Tk ()
Бутон (t, текст = "Кликващ", bg = "син", fg = "бял",
височина = 2, ширина = 10, релеф = ВДИГАН, граница = 6) .grid ()
t.mainloop ()

И това изглежда така:

Сменете ВДИГАНА с АПАРТАМЕНТ за да видим как става това.

Можете да добавите колкото искате бутони. Но бъдете внимателни, за да избегнете припокриване на съдържание.

За да избегнете припокриване, можете да посочите позицията на реда и колоната за всеки бутон:

t = Tk ()
Бутон (t, текст = 1, bg = "черен", fg = "бял"). Решетка (ред = 1, колона = 1)
Бутон (t, текст = 2, bg = "черен", fg = "бял"). Решетка (ред = 2, колона = 1)
Бутон (t, текст = 3, bg = "черен", fg = "бял"). Решетка (ред = 3, колона = 1)
Бутон (t, текст = 4, bg = "черен", fg = "бял"). Решетка (ред = 4, колона = 1)
t.mainloop ()

По избор команда ключовата дума обаче добавя събития към Бутон джаджа. По същество той закрепва незадължителна функция, която обработва определени събития, когато щракнете върху бутон.

Кодът по-долу например умножава стойността на всеки бутон по 6, когато щракнете върху него. И се основава на предварително дефинирана функция:

натискане на бутон (r):
r = 6 * r
Етикет (t, text = r, font = (60)). Мрежа (ред = 5, колона = 2)
t = Tk ()
Бутон (t, текст = 1, bg = "черен", fg = "бял", ширина = 10, височина = 2,
команда = ламбда: натискане на бутон (1)). решетка (ред = 1, колона = 1, pady = 6)
Бутон (t, текст = 2, bg = "черен", fg = "бял", ширина = 10,
команда = ламбда: натискане на бутон (2)). решетка (ред = 2, колона = 1, pady = 6)
Бутон (t, текст = 3, bg = "черен", fg = "бял", ширина = 10,
команда = ламбда: натискане на бутон (3)). решетка (ред = 3, колона = 1, pady = 6)
Бутон (t, текст = 4, bg = "черен", fg = "бял", ширина = 10,
команда = ламбда: натискане на бутон (4)). решетка (ред = 4, колона = 1, pady = 6)
t.mainloop ()

В горния код, натискане на бутон обработва събитието за умножение. The Бутон widget след това сочи към този манипулатор на събития, използвайки анонимен ламбда функция.

И ако се притеснявате за пади ключова дума, тя разделя ясно всеки бутон в реда. Замяна на това с padx разделя бутоните в колоната. И можете да използвате двете ключови думи едновременно, за да разделите бутоните по двете оси, както желаете.

Това каза, че не искате да преоткривате колелото за всеки бутон, както направихте в предишния код. Това забавя времето за изпълнение, плюс затруднява четенето и стесняването на кода ви.

Но ти можеш използвайте цикъл for за да се избегне това повторение.

И така, ето по-кратка и по-добра версия на горния код:

натискане на бутон (r):
r = 6 * r
Етикет (t, text = r, font = (60)). Мрежа (ред = 5, колона = 2)
t = Tk ()
a = [1, 4, 6, 7]
за i в a:
j = ламбда y = i: натискане на бутон (y)
Бутон (t, текст = i, bg = "черен", fg = "бял", ширина = 10, височина = 2,
команда = j) .grid (ред = i, колона = 1, pady = 6)
t.mainloop ()

Бутони от менюто и бутони за проверка

Нека допълнително да изследваме силата на за цикъл, за да добавите бутони от менюто към вашия GUI:

от внос на tkinter *
t = Tk ()
бутони = ["Файлове", "Табло за управление", "Меню", "Настройки", "Помощ"]
m = 0
за i в обхват (len (бутони)):
# Вземете всеки текст в масива с бутони, като използвате индекс на списък, когато m се увеличава.
# След това оставете колоната да се увеличи с 1 през дължината на масива:

Менютон (t, текст = бутони [m], bg = "син", fg = "бял"). Решетка (ред = 5, колона = i)
m + = 1
t.mainloop ()

Добавянето на бутони за проверка към вашия GUI също е доста лесно:

t = Tk ()
Бутон за отметка (t, text = "Избор на опция"). Grid ()
t.mainloop ()

Чувствайте се свободни да умножите този бутон за проверка с помощта на за цикъл, както направихме по-рано.

The Меню джаджа ви позволява да проектирате падащи менюта, върху които можете да кликнете tkinter.

Както беше посочено по-рано, tkinter предлага много опции за джаджи. И ще използвате някои от тях, докато проектирате падащото меню.

Ето някои от често срещаните опции за приспособления, които ще срещнете, докато правите падащо меню:

  • add_cascade: Показва етикет на менюто и го залепва там, където му е мястото.
  • add_separator: Той разграничава подменютата и ги групира в горни и долни подменюта.
  • add_command: Тук давате име на подменюто си. В крайна сметка той приема команден аргумент, където можете да посочите манипулатор на събития.

Ето пример за падащо меню, който използва тези три опции:

от внос на tkinter *
t = Tk ()
fileOptions = ["New", "open", "Save", "Save as"]
fileOptionsAfterseparator = ["Внос", "Експорт", "Изход"]
viewOptions = ["Трансформиране", "Редактиране", "Създаване"]
menuBar = Меню (t)
файл = Меню (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 = "File", menu = file)
Изглед = Меню (menuBar, tearoff = 0)
за i in viewOptions:
View.add_command (label = i, command = None)
menuBar.add_cascade (label = "View", menu = View)
t.config (menu = menuBar)
t.mainloop ()

Вижте как изглежда това:

Меню с опции на Tkinter

An Меню с опции, за разлика от Меню падащото меню превключва етикета си в избрана опция.

Въпреки че можете да зададете стойност по подразбиране за етикет за меню с опции, по подразбиране той няма етикет.

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

Ето как да създадете меню с опции в tkinter:

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

Създайте многократно приложение за настолни компютри с Tkinter

Tkinter предлага набор от функции, които ви помагат да създавате интерактивни приложения за настолен GUI. Въпреки че може да няма много гъвкави функции за разкрасяване като някои други Python GUI модули, това все още е удобен инструмент, който си заслужава да бъде проучен. И докато примерите тук показват само някои от основните понятия, tkinter предлага по-разширени функции, които можете да изпробвате.

Въпреки това можете да създадете GUI настолен калкулатор, да направите мини текстов редактор или дори да създадете GUI настолно приложение за управление на вашите запаси. Ако искате да разперите крилата си и да станете основен GUI за настолен компютър, можете дори да проверите други GUI модули на Python.

електронна поща
GUI? Какво е графичен потребителски интерфейс?

Използвате ли GUI? Шансовете са, че ги използвате всеки ден.

Прочетете Напред

Свързани теми
  • Програмиране
  • Python
За автора
Idowu Omisola (88 статии публикувани)

Idowu е запален по всичко интелигентни технологии и производителност. В свободното си време той си играе с кодиране и превключва на шахматната дъска, когато му е скучно, но също така обича да се откъсва от рутината от време на време. Страстта му да показва на хората пътя към съвременните технологии го мотивира да пише повече.

Още от Idowu Omisola

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате