Tkinter python примеры программ

Есть несколько способов взаимодействия с программой: через командную строку или через графический интерфейс. GUI – это настольное приложение, которое предоставляет пользовательский интерфейс, помогающий визуально взаимодействовать с компьютером или любым электронным устройством с помощью графических значков. Благодаря этому графический интерфейс расширяет круг пользователей нашего программного обеспечения.

Python предоставляет множество пакетов, таких как Kivy, PythonQt, wxPython, Tkinter и т.д. для создания графических интерфейсов. Среди этих популярных пакетов, поддерживаемых Python для создания приложений с графическим интерфейсом, – это Tkinter.

Tkinter в Python – это стандартная встроенная библиотека графического интерфейса пользователя, которая предоставляет пользователям объектно-ориентированный интерфейс для набора инструментов графического интерфейса пользователя Tk. Модуль Tkinter является наиболее предпочтительным интерфейсом для построения графического интерфейса для программистов из-за его простоты использования.

КРАСИВЫЙ ДИЗАЙН PYTHON ПРИЛОЖЕНИЯ при помощи библиотеки CUSTOMTKINTER

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

Создание образца окна

Введение в Tkinter

image

Tkinter – это кроссплатформенная библиотека для разработки графического интерфейса на языке Python (начиная с Python 3.0 переименована в tkinter). Tkinter расшифровывается как Tk interface, и является интерфейсом к Tcl/Tk.
Tkinter входит в стандартный дистрибутив Python.

Весь код в этой статье написан для Python 2.x.
Чтобы убедиться, что Tkinter установлен и работает, воспользуемся стандартной функцией Tkinter _test():

import Tkinter Tkinter._test()

После выполнения данного кода должно появиться следующее окно:

Отлично, теперь можно приступать к написанию нескольких простых программ для демонстрации основных принципов Tkinter.

Hello world

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

from Tkinter import * root = Tk()

Да-да, всего одна строка, это вам не WinAPI (=. Теперь создадим кнопку, при нажатии на которую будет выводиться текст в консоль:

def Hello(event): print «Yet another hello world» btn = Button(root, #родительское окно text=»Click me», #надпись на кнопке width=30,height=5, #ширина и высота bg=»white»,fg=»black») #цвет фона и надписи btn.bind(«», Hello) #при нажатии ЛКМ на кнопку вызывается функция Hello btn.pack() #расположить кнопку на главном окне root.mainloop()

Всё просто, не так ли? Создаём экземпляр класса Button, указываем родителя и при желании список параметров. Есть еще немало параметров, таких как шрифт, толщина рамки и т.д.

#Изи TKINTER за 5 минут


Затем привязываем к нажатию на кнопку событие (можно привязать несколько разных событий в зависимости, например, от того, какой кнопкой мыши был нажат наш btn.
mainloop() запускает цикл обработки событий; пока мы не вызовем эту функцию, наше окно не будет реагировать на внешние раздражители.

Упаковщики

Функция pack() — это так называемый упаковщик, или менеджер расположения. Он отвечает за то, как виджеты будут располагаться на главном окне. Для каждого виджета нужно вызвать метод упаковщика, иначе он не будет отображён. Всего упаковщиков три:

pack(). Автоматически размещает виджеты в родительском окне. Имеет параметры side, fill, expand. Пример:

Читайте также:
Как работает логистическая программа

from Tkinter import * root = Tk() Button(root, text = ‘1’).pack(side = ‘left’) Button(root, text = ‘2’).pack(side = ‘top’) Button(root, text = ‘3’).pack(side = ‘right’) Button(root, text = ‘4’).pack(side = ‘bottom’) Button(root, text = ‘5’).pack(fill = ‘both’) root.mainloop()

grid(). Размещает виджеты на сетке. Основные параметры: row/column – строка/столбец в сетке, rowspan/columnspan – сколько строк/столбцов занимает виджет. Пример:

from Tkinter import * root = Tk() Button(root, text = ‘1’).grid(row = 1, column = 1) Button(root, text = ‘2’).grid(row = 1, column = 2) Button(root, text = ‘__3__’).grid(row = 2, column = 1, columnspan = 2) root.mainloop()

place(). Позволяет размещать виджеты в указанных координатах с указанными размерами.
Основные параметры: x, y, width, height. Пример:

from Tkinter import * root = Tk() Button(root, text = ‘1’).place(x = 10, y = 10, width = 30) Button(root, text = ‘2’).place(x = 45, y = 20, height = 15) Button(root, text = ‘__3__’).place(x = 20, y = 40) root.mainloop()

Теперь для демонстрации других возможностей Tkinter, напишем простейший

Текстовый редактор

Без лишних слов приведу код:

from Tkinter import * import tkFileDialog def Quit(ev): global root root.destroy() def LoadFile(ev): fn = tkFileDialog.Open(root, filetypes = [(‘*.txt files’, ‘.txt’)]).show() if fn == »: return textbox.delete(‘1.0’, ‘end’) textbox.insert(‘1.0’, open(fn, ‘rt’).read()) def SaveFile(ev): fn = tkFileDialog.SaveAs(root, filetypes = [(‘*.txt files’, ‘.txt’)]).show() if fn == »: return if not fn.endswith(«.txt»): fn+=».txt» open(fn, ‘wt’).write(textbox.get(‘1.0’, ‘end’)) root = Tk() panelFrame = Frame(root, height = 60, bg = ‘gray’) textFrame = Frame(root, height = 340, width = 600) panelFrame.pack(side = ‘top’, fill = ‘x’) textFrame.pack(side = ‘bottom’, fill = ‘both’, expand = 1) textbox = Text(textFrame, font=’Arial 14′, wrap=’word’) scrollbar = Scrollbar(textFrame) scrollbar[‘command’] = textbox.yview textbox[‘yscrollcommand’] = scrollbar.set textbox.pack(side = ‘left’, fill = ‘both’, expand = 1) scrollbar.pack(side = ‘right’, fill = ‘y’) loadBtn = Button(panelFrame, text = ‘Load’) saveBtn = Button(panelFrame, text = ‘Save’) quitBtn = Button(panelFrame, text = ‘Quit’) loadBtn.bind(«», LoadFile) saveBtn.bind(«», SaveFile) quitBtn.bind(«», Quit) loadBtn.place(x = 10, y = 10, width = 40, height = 40) saveBtn.place(x = 60, y = 10, width = 40, height = 40) quitBtn.place(x = 110, y = 10, width = 40, height = 40) root.mainloop()

Здесь есть несколько новых моментов.

Во-первых, мы подключили модуль tkFileDialog для диалогов открытия/закрытия файла. Использовать их просто: нужно создать объект типа Open или SaveAs, при желании задав параметр filetypes, и вызвать его метод show(). Метод вернёт строку с именем файла или пустую строку, если пользователь просто закрыл диалог.

Во-вторых, мы создали два фрейма. Фрейм предназначен для группировки других виджетов. Один содержит управляющие кнопки, а другой — поле для ввода текста и полосу прокрутки.
Это сделано, чтобы textbox не налезал на кнопки и всегда был максимального размера.

В-третьих, появился виджет Text. Мы его создали с параметром wrap=’word’, чтобы текст переносился по словам. Основные методы Text: get, insert, delete. Get и delete принимают начальный и конечный индексы. Индекс — это строка вида ‘x.y’, где x — номер символа в строке, а y — номер строки, причём символы нумеруются с 1, а строки — с 0. То есть на самое начала текста указывает индекс ‘1.0’.

Для обозначения конца текста есть индекс ‘end’. Также допустимы конструкции вида ‘1.end’.

B в-четвёртых, мы создали полосу прокрутки (Scrollbar). После создания её нужно связать с нужным виджетом, в данном случае, с textbox. Связывание двустороннее:

scrollbar[‘command’] = textbox.yview textbox[‘yscrollcommand’] = scrollbar.set

Вот и всё. Tkinter – это, безусловно, мощная и удобная библиотека. Мы осветили не все её возможности, остальные — тема дальнейших статей.

Читайте также:
Как удалить все рекламные программы с компьютера

Источник: habr.com

Учебник по Tkinter в Python – руководство и примеры

Python предоставляет стандартную библиотеку Tkinter для создания графического пользовательского интерфейса для настольных приложений.

Учебник по Python Tkinter

Разработка настольных приложений с помощью python Tkinter – не сложная задача. Пустое окно верхнего уровня Tkinter можно создать, выполнив следующие действия:

  1. Импортировать модуль Tkinter.
  2. Создайте главное окно приложения.
  3. Добавьте в окно виджеты, такие как метки, кнопки, рамки и т. д.
  4. Вызовите основной цикл событий, чтобы действия могли отображаться на экране компьютера пользователя.

# !/usr/bin/python3 from tkinter import * #creating the application main window. top = Tk() #Entering the event main loop top.mainloop()

Пример Python Tkinter

Виджеты

Существуют различные виджеты, такие как button, canvas, checkbutton, entry и т. д., которые используются для создания приложений с графическим интерфейсом пользователя Python.

№ Виджет Описание
1 Button Виджет кнопки используется для добавления различных типов кнопок в приложение Python.
2 Canvas Этот виджет используется для рисования на холсте в окне.
3 Checkbutton Используется для отображения кнопки-флажка в окне.
4 Entry Виджет ввода используется для отображения однострочного текстового поля. Обычно он используется для принятия пользовательских значений.
5 Frame Этот виджет можно определить как контейнер, в который можно добавить и организовать другой виджет.
6 Label Метка – это текст, используемый для отображения некоторого сообщения или информации о других виджетах.
7 ListBox Виджет ListBox используется для отображения пользователю списка параметров.
8 Menubutton Menubutton используется для отображения пунктов меню пользователю.
9 Menu Он используется для добавления пользователю пунктов меню.
10 Message Виджет сообщения используется для отображения окна сообщения пользователю.
11 Radiobutton Радиокнопка отличается от кнопки-флажка. Здесь пользователю предоставляются различные варианты, и пользователь может выбрать среди них только один вариант.
12 Scale Используется для предоставления пользователю ползунка.
13 Scrollbar Он предоставляет пользователю полосу прокрутки, чтобы пользователь мог прокручивать окно вверх и вниз.
14 Text Он отличается от Entry, поскольку предоставляет пользователю многострочное текстовое поле, чтобы пользователь мог писать текст и редактировать текст внутри него.
15 Toplevel Используется для создания отдельного оконного контейнера.
16 Spinbox Это виджет ввода, используемый для выбора вариантов значений.
17 PanedWindow Похож на виджет-контейнер, который содержит горизонтальные или вертикальные панели.
18 LabelFrame LabelFrame – это виджет, который действует как контейнер.
19 MessageBox Этот модуль используется для отображения окна сообщения в настольных приложениях.

Геометрия

Геометрия Tkinter определяет метод, с помощью которого виджеты отображаются на дисплее. Python Tkinter предоставляет следующие геометрические методы.

  1. Метод pack().
  2. Метод grid().
  3. Метод place().

Давайте подробно обсудим каждый из них.

Метод Python Tkinter pack()

Метод pack() используется для организации виджета в блоке. Виджетами позиций, добавленными в приложение Python с помощью метода pack(), можно управлять с помощью различных параметров, указанных в вызове метода.

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

Синтаксис использования pack() приведен ниже:

widget.pack(options)

Список возможных параметров, которые можно передать в pack(), приведен ниже.

  • expand: если для параметра «expand» задано значение «истина», виджет расширяется, заполняя любое пространство.
  • Fill: по умолчанию для заливки установлено значение NONE. Однако мы можем установить для него значение X или Y, чтобы определить, есть ли в виджете лишнее пространство.
  • size: представляет сторону родительского элемента, с которой виджет должен быть размещен в окне.
Читайте также:
Как сделать ВПН на компьютере без программ

# !/usr/bin/python3 from tkinter import * parent = Tk() redbutton = Button(parent, text = «Red», fg = «red») redbutton.pack( side = LEFT) greenbutton = Button(parent, text = «Black», fg = «black») greenbutton.pack( side = RIGHT ) bluebutton = Button(parent, text = «Blue», fg = «blue») bluebutton.pack( side = TOP ) blackbutton = Button(parent, text = «Green», fg = «red») blackbutton.pack( side = BOTTOM) parent.mainloop()

Метод Python Tkinter pack()

Метод Python Tkinter grid()

Менеджер геометрии grid() организует виджеты в табличной форме. Мы можем указать строки и столбцы в качестве параметров при вызове метода. Мы также можем указать диапазон столбцов (ширину) или диапазон строк (высоту) виджета.

Это более организованный способ размещения виджетов в приложении Python. Синтаксис использования grid() приведен ниже:

widget.grid(options)

Список возможных параметров, которые можно передать внутри метода grid():

  • Column
    Номер столбца, в который будет помещен виджет. Крайний левый столбец представлен 0.
  • Columnspan
    Ширина виджета. Он представляет количество столбцов, до которых столбец расширяется.
  • ipadx, ipadyПредставляет количество пикселей для заполнения виджета внутри границы.
  • padx, pady
    Представляет количество пикселей для размещения виджета за пределами его границы.
  • row
    Номер строки, в которую должен быть помещен виджет. Самая верхняя строка представлена 0.
  • rowspan
    Высота виджета, то есть номер строки, до которой расширяется виджет.
  • Sticky
    Если ячейка больше, чем виджет, то используется Sticky, чтобы указать положение виджета внутри ячейки. Это может быть соединение букв, представляющих позицию виджета. Это может быть N, E, W, S, NE, NW, NS, EW, ES.

# !/usr/bin/python3 from tkinter import * parent = Tk() name = Label(parent,text = «Name»).grid(row = 0, column = 0) e1 = Entry(parent).grid(row = 0, column = 1) password = Label(parent,text = «Password»).grid(row = 1, column = 0) e2 = Entry(parent).grid(row = 1, column = 1) submit = Button(parent, text = «Submit»).grid(row = 4, column = 0) parent.mainloop()

Метод Python Tkinter grid()

Метод Python Tkinter place()

Менеджер place() упорядочивает виджеты по определенным координатам x и y.

widget.place(options)

Список возможных вариантов приведен ниже:

  • Anchor: он представляет собой точное положение виджета в контейнере. Значение по умолчанию (direction) – NW (левый верхний угол).
  • bordermode: значение по умолчанию для типа границы – INSIDE, что означает игнорирование родительского элемента внутри границы. Другой вариант – OUTSIDE.
  • height, width: это высота и ширина в пикселях.
  • relheight, relwidth: представлен как число с плавающей запятой между 0,0 и 1,0, указывающее долю высоты и ширины родительского элемента.
  • relx, rely: представлен в виде числа с плавающей запятой между 0,0 и 1,0, которое представляет собой смещение в горизонтальном и вертикальном направлениях.
  • x, y: это относится к горизонтальному и вертикальному смещению в пикселях.

# !/usr/bin/python3 from tkinter import * top = Tk() top.geometry(«400×250») name = Label(top, text = «Name»).place(x = 30,y = 50) email = Label(top, text = «Email»).place(x = 30, y = 90) password = Label(top, text = «Password»).place(x = 30, y = 130) e1 = Entry(top).place(x = 80, y = 50) e2 = Entry(top).place(x = 80, y = 90) e3 = Entry(top).place(x = 95, y = 130) top.mainloop()

Метод Python Tkinter place()

Прежде чем изучать Tkinter, вы должны иметь базовые знания Python. Наше руководство по Python Tkinter разработано, чтобы помочь новичкам и профессионалам.

Источник: pythonpip.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru