tkinter учебник
Начало работы с tkinter
Поиск…
замечания
Tkinter (« Tk Inter face») представляет собой стандартный кросс-платформенный пакет python для создания графических пользовательских интерфейсов (GUI). Он обеспечивает доступ к базовому интерпретатору Tcl с помощью инструментария Tk, который сам является межплатформенной многоязычной графической библиотекой пользовательского интерфейса.
Tkinter - не единственная библиотека графического интерфейса для python, но она входит в стандартную комплектацию. Дополнительные библиотеки GUI, которые можно использовать с python, включают wxPython , PyQt и kivy .
Величайшая сила Ткинтера - его вездесущность и простота. Он работает из коробки на большинстве платформ (linux, OSX, Windows) и поставляется с широким спектром виджетов, необходимых для большинства распространенных задач (кнопок, меток, холста для рисования, многострочного текста и т. Д.).
В качестве обучающего инструмента tkinter обладает некоторыми функциями, которые уникальны среди наборов графических интерфейсов, таких как именованные шрифты, теги привязки и трассировка переменных.
Различия между python 2 и 3
Tkinter практически не изменился между python 2 и python 3, причем основное отличие заключалось в том, что пакет tkinter и модули были переименованы.
Импорт в python 2.x
В python 2.x пакет tkinter называется Tkinter
, а связанные пакеты имеют свои собственные имена. Например, следующий пример показывает типичный набор операторов импорта для python 2.x:
import Tkinter as tk
import tkFileDialog as filedialog
import ttk
Импорт в python 3.x
Хотя функциональность не сильно изменилась между python 2 и 3, имена всех модулей tkinter изменились. Ниже приведен типичный набор операторов импорта для python 3.x:
import tkinter as tk
from tkinter import filedialog
from tkinter import ttk
Дальнейшее чтение
Версии
Tcl
Версия | Дата выхода |
---|---|
8,6 | 2016-07-27 |
8,5 | 2016-02-12 |
8,4 | 2013-06-01 |
8,3 | 2002-10-18 |
8,2 | 1999-12-16 |
8,1 | 1999-05-26 |
8,0 | 1999-03-09 |
питон
Версия | Дата выхода |
---|---|
3,6 | 2016-12-23 |
3,5 | 2015-09-13 |
3,4 | 2014-03-17 |
3,3 | 2012-09-29 |
3,2 | 2011-02-20 |
3,1 | 2009-06-26 |
3.0 | 2008-12-03 |
2,7 | 2010-07-03 |
2,6 | 2008-10-02 |
2.5 | 2006-09-19 |
2,4 | 2004-11-30 |
2,3 | 2003-07-29 |
2,2 | 2001-12-21 |
2,1 | 2001-04-15 |
2,0 | 2000-10-16 |
Установка или настройка
Tkinter поставляется с предустановленными двоичными файлами установщика Python для Mac OS X и платформы Windows. Поэтому, если вы устанавливаете Python из официальных двоичных файлов для платформы Mac OS X или Windows, вы можете пойти с Tkinter.
Для версий Linux Debian вы должны установить его вручную, используя следующие команды.
Для Python 3
sudo apt-get install python3-tk
Для Python 2.7
sudo apt-get install python-tk
Linux-дистрибутивы с установкой yum могут установить модуль tkinter с помощью команды:
yum install tkinter
Проверка установки
Чтобы проверить, успешно ли вы установили Tkinter, откройте консоль Python и введите следующую команду:
import tkinter as tk # for Python 3 version
или же
import Tkinter as tk # for Python 2.x version
Вы успешно установили Tkinter, если приведенная выше команда выполняется без ошибок.
Чтобы проверить версию Tkinter, введите следующие команды в Python REPL:
Для python 3.X
import tkinter as tk
tk._test()
Для python 2.X
import Tkinter as tk
tk._test()
Примечание. Импорт Tkinter as tk
не требуется, но является хорошей практикой, поскольку он помогает поддерживать совместимость между версией.
Привет, мир! (Минимальный)
Давайте проверим наши базовые знания о tkinter, создав классический «Hello, World!». программа.
Во-первых, мы должны импортировать tkinter, это будет зависеть от версии (см. Раздел замечаний «Различия между Python 2 и 3»)
В Python 3 модуль tkinter
имеет строчную букву t:
import tkinter as tk
В Python 2 модуль Tkinter
имеет прописную букву T:
import Tkinter as tk
Использование as tk
не является строго необходимым, но мы будем использовать его, поэтому остальная часть этого примера будет работать одинаково для обеих версий.
теперь, когда мы импортируем модуль tkinter, мы можем создать корень нашего приложения, используя класс Tk
:
root = tk.Tk()
Это будет действовать как окно для нашего приложения. (обратите внимание, что дополнительные окна должны быть экземплярами Toplevel
)
Теперь, когда у нас есть окно, давайте добавим к нему текст с помощью Label
label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window
После того, как приложение будет готово, мы можем запустить его (введите основной цикл событий) с mainloop
метода mainloop
root.mainloop()
Это откроет и запустит приложение до тех пор, пока оно не будет остановлено закрывающимся окном или вызовом выхода из функций обратного вызова (см. root.destroy()
), таких как root.destroy()
.
Объединяя все это:
import tkinter as tk # Python 3.x Version
#import Tkinter as tk # Python 2.x Version
root = tk.Tk()
label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window
root.mainloop()
И что-то вроде этого должно появиться:
Привет, мир! (модульная, объектно-ориентированная)
import tkinter as tk
class HelloWorld(tk.Frame):
def __init__(self, parent):
super(HelloWorld, self).__init__(parent)
self.label = tk.Label(self, text="Hello, World!")
self.label.pack(padx=20, pady=20)
if __name__ == "__main__":
root = tk.Tk()
main = HelloWorld(root)
main.pack(fill="both", expand=True)
root.mainloop()
Примечание. Наследование можно получить только из любого виджета tkinter, включая корневое окно. Наследование от tkinter.Frame
является, по крайней мере, самым гибким в том, что он поддерживает несколько интерфейсов документов (MDI), tkinter.Frame
интерфейсы (SDI), одностраничные приложения и многостраничные приложения.