You are currently viewing Графический интерфейс Python – tkinter

Графический интерфейс Python – tkinter

Python предлагает несколько вариантов разработки графического интерфейса (графический интерфейс пользователя). Из всех методов графического интерфейса наиболее часто используется tkinter. Это стандартный интерфейс Python для инструментария Tk GUI, поставляемого вместе с Python. Python с tkinter-это самый быстрый и простой способ создания графических приложений. Создание графического интерфейса с помощью tkinter-это простой task.
To создайте приложение tkinter:

  1. Импорт модуля – tkinter
  2. Создайте главное окно (контейнер)
  3. Добавьте любое количество виджетов в главное окно
  4. Примените триггер события к виджетам.

Импорт tkinter аналогичен импорту любого другого модуля в коде Python. Обратите внимание, что имя модуля в Python 2.x — «Tkinter’, а в Python 3.x — «tkinter».

import tkinter

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

  1. Tk(screenName=None,  baseName=None,  className=’Tk’,  useTk=1): Для создания главного окна tkinter предлагает метод » Tk(Имя экрана=Нет, Базовое имя=Нет, имя класса=’Tk’, useTk=1)’. Чтобы изменить имя окна, вы можете изменить имя класса на нужное. Основным кодом, используемым для создания главного окна приложения, является:m=tkinter.Tk() , где m — имя объекта главного окна
  2. mainloop(): Существует метод, известный под именем mainloop (), который используется, когда приложение готово к запуску. mainloop () — это бесконечный цикл, используемый для запуска приложения, ожидания наступления события и обработки события, пока окно не закрыто.
m.mainloop()
import tkinter
m = tkinter.Tk()
'''
widgets are added here
'''
m.mainloop()

tkinter также предоставляет доступ к геометрической конфигурации виджетов, которые могут упорядочивать виджеты в родительских окнах. В основном существует три класса geometry manager classes.

  1. pack() method: Он организует виджеты в блоки перед размещением в родительском виджете.
  2. grid() method: Он организует виджеты в сетке (табличной структуре) перед размещением в родительском виджете.
  3. place() method: Он организует виджеты, размещая их на определенных позициях, направленных программистом.

Существует ряд виджетов, которые вы можете разместить в своем приложении tkinter. Некоторые из основных виджетов описаны ниже:

  1. Button: Для добавления кнопки в ваше приложение используется этот виджет.
    Общий синтаксис таков:
w = Button(master, option=value)

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

  • activebackground: для установки цвета фона, когда кнопка находится под курсором.
  • activeforeground: для установки цвета переднего плана, когда кнопка находится под курсором.
  • bg: чтобы установить нормальный цвет фона.
  • command: для вызова функции.
  • font: чтобы установить шрифт на метке кнопки.
  • image: чтобы установить изображение на кнопке.
  • width: для установки ширины кнопки.
  • height: для установки высоты кнопки.
import tkinter as tk
r = tk.Tk()
r.title('Counting Seconds')
button = tk.Button(r, text='Stop', width=25, command=r.destroy)
button.pack()
r.mainloop()

Выход:

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

Общий синтаксис таков:

w = Canvas(master, option=value)
master is the parameter used to represent the parent window.

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

  • bd: для установки ширины границы в пикселях.
  • bg: для установки нормального цвета фона.
  • cursor: для установки курсора, используемого на холсте.
  • highlightcolor: для установки цвета, отображаемого в выделенном фокусе.
  • width: чтобы задать ширину виджета.
  • height: для установки высоты виджета.
from tkinter import *
master = Tk()
w = Canvas(master, width=40, height=60)
w.pack()
canvas_height=20
canvas_width=200
y = int(canvas_height / 2)
w.create_line(0, y, canvas_width, y )
mainloop()

Выход:

3. Кнопка проверки: Чтобы выбрать любое количество опций, отобразив несколько опций пользователю в виде кнопок переключения. 

Общий синтаксис таков:

w = CheckButton(master, option=value)

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

  • Title: Чтобы задать заголовок виджета.
  • activebackground: чтобы задать цвет фона, когда виджет находится под курсором.
  • activeforeground: чтобы задать цвет переднего плана, когда виджет находится под курсором.
  • bg: чтобы установить нормальную backgrouSteganography

Break

Секретный код:

Прикрепите файл: nd color.

  • command: для вызова функции.
  • font: чтобы установить шрифт на метке кнопки.
  • image: чтобы установить изображение на виджете.
from tkinter import *
master = Tk()
var1 = IntVar()
Checkbutton(master, text='male', variable=var1).grid(row=0, sticky=W)
var2 = IntVar()
Checkbutton(master, text='female', variable=var2).grid(row=1, sticky=W)
mainloop()

Выход:

4. Entry: Используется для ввода однострочного текстового ввода от пользователя.. Для многострочного ввода текста используется текстовый виджет.

Общий синтаксис таков:

w = Entry(master, option=value) 

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

  • bd: для установки ширины границы в пикселях.
  • bg: для установки нормального цвета фона.
  • cursor: для установки используемого курсора.
  • command: для вызова функции.
  • highlightcolor: для установки цвета, отображаемого в выделенном фокусе.
  • width: чтобы установить ширину кнопки.
  • height: чтобы установить высоту кнопки.
from tkinter import *
master = Tk()
Label(master, text='First Name').grid(row=0)
Label(master, text='Last Name').grid(row=1)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
mainloop()

Выход:

5. Frame: Она действует как контейнер для хранения виджетов. Он используется для группировки и организации виджетов. 

Общий синтаксис таков:

w = Frame(master, option=value)
master is the parameter used to represent the parent window.

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

  • highlightcolor: Для установки цвета выделения фокуса, когда виджет должен быть сфокусирован.
  • bd: для установки ширины границы в пикселях.
  • bg: для установки нормального цвета фона.
  • cursor: для установки используемого курсора.
  • width: чтобы задать ширину виджета.
  • height: для установки высоты виджета.
from tkinter import *

root = Tk()
frame = Frame(root)
frame.pack()
bottomframe = Frame(root)
bottomframe.pack( side = BOTTOM )
redbutton = Button(frame, text = 'Red', fg ='red')
redbutton.pack( side = LEFT)
greenbutton = Button(frame, text = 'Brown', fg='brown')
greenbutton.pack( side = LEFT )
bluebutton = Button(frame, text ='Blue', fg ='blue')
bluebutton.pack( side = LEFT )
blackbutton = Button(bottomframe, text ='Black', fg ='black')
blackbutton.pack( side = BOTTOM)
root.mainloop()

Выход:

6. Label: Это относится к окну отображения, в которое вы можете поместить любой текст или изображение, которые могут быть обновлены в любое время в соответствии с кодом.

Общий синтаксис таков:

w = Label(master, option=value) master is the parameter used to represent the parent window.

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

  • bg: чтобы установить нормальный цвет фона.
  • bg: чтобы установить нормальный цвет фона.
  • command: для вызова функции.
  • font: чтобы установить шрифт на метке кнопки.
  • image: чтобы установить изображение на кнопку.
  • width: чтобы установить ширину кнопки.
  • height: чтобы установить высоту кнопки.
from tkinter import *
root = Tk()
w = Label(root, text='GeeksForGeeks.org!')
w.pack()
root.mainloop()

Выход:

7. Listbox: Он предлагает пользователю список, из которого пользователь может выбрать любое количество вариантов.

Общий синтаксис таков:

w = Listbox(master, option=value) master is the parameter used to represent the parent window.

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

  • highlightcolor: Для установки цвета выделения фокуса, когда виджет должен быть сфокусирован.
  • bg: чтобы установить нормальный цвет фона.
  • bd: для установки ширины границы в пикселях.
  • font: чтобы установить шрифт на метке кнопки.
  • image: чтобы установить изображение на виджете.
  • width: чтобы задать ширину виджета.
  • height: для установки высоты виджета.
from tkinter import *

top = Tk()
Lb = Listbox(top)
Lb.insert(1, 'Python')
Lb.insert(2, 'Java')
Lb.insert(3, 'C++')
Lb.insert(4, 'Any other')
Lb.pack()
top.mainloop()

Выход:

8. MenuButton: Это часть нисходящего меню, которое постоянно отображается в окне. Каждая кнопка меню имеет свою собственную функциональность. Общий синтаксис таков:

w = MenuButton(master, option=value)
master is the parameter used to represent the parent window.

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

  • activebackground: Для установки фона при наведении курсора мыши на виджет.
  • activeforeground: Чтобы установить передний план, когда мышь находится над виджетом.
  • bg: чтобы установить нормальный цвет фона.
  • bd: чтобы установить размер границы вокруг индикатора.
  • cursor: Для отображения курсора при наведении курсора мыши на меню.
  • image: чтобы установить изображение на виджете.
  • width: чтобы задать ширину виджета.
  • height: для установки высоты виджета.
  • highlightcolor: Для установки цвета выделения фокуса, когда виджет должен быть сфокусирован.
from tkinter import *

top = Tk()
mb = Menubutton ( top, text = "GfG")
mb.grid()
mb.menu = Menu ( mb, tearoff = 0 )
mb["menu"] = mb.menu
cVar = IntVar()
aVar = IntVar()
mb.menu.add_checkbutton ( label ='Contact', variable = cVar )
mb.menu.add_checkbutton ( label = 'About', variable = aVar )
mb.pack()
top.mainloop()

Выход:

9. Menu: Оно используется для создания всех видов меню, используемых приложением.

Общий синтаксис таков:

w = Menu(master, option=value) master is the parameter used to represent the parent window.

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

  • title: Чтобы задать заголовок виджета.
  • activebackground: чтобы задать цвет фона, когда виджет находится под курсором.
  • activeforeground: чтобы задать цвет переднего плана, когда виджет находится под курсором.
  • bg: чтобы установить нормальный цвет фона.
  • command: для вызова функции.
  • font: чтобы установить шрифт на метке кнопки.
  • image: чтобы установить изображение на виджете.
from tkinter import *
	
root = Tk()
menu = Menu(root)
root.config(menu=menu)
filemenu = Menu(menu)
menu.add_cascade(label='File', menu=filemenu)
filemenu.add_command(label='New')
filemenu.add_command(label='Open...')
filemenu.add_separator()
filemenu.add_command(label='Exit', command=root.quit)
helpmenu = Menu(menu)
menu.add_cascade(label='Help', menu=helpmenu)
helpmenu.add_command(label='About')
mainloop()

Выход:

10. Сообщение: Оно относится к многострочному и не редактируемому тексту. Он работает так же, как и этикетка.

Общий синтаксис таков:

w = Message(master, option=value)
master is the parameter used to represent the parent window.

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

  • bd: чтобы установить границу вокруг индикатора.
  • bg: чтобы установить нормальный цвет фона.
  • font: чтобы установить шрифт на метке кнопки.
  • image: чтобы установить изображение на виджете.
  • width: чтобы задать ширину виджета.
  • height: для установки высоты виджета.
from tkinter import *
main = Tk()
ourMessage ='This is our Message'
messageVar = Message(main, text = ourMessage)
messageVar.config(bg='lightgreen')
messageVar.pack( )
main.mainloop( )

Выход:

11. RadioButton: Используется для предоставления пользователю возможности выбора из нескольких вариантов. Он предлагает пользователю несколько вариантов, и пользователь должен выбрать один из них.

Общий синтаксис таков:

w = RadioButton(master, option=value)

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

  • activebackground: чтобы задать цвет фона, когда виджет находится под курсором.
  • activeforeground: чтобы задать цвет переднего плана, когда виджет находится под курсором.
  • bg: чтобы установить нормальный цвет фона.
  • command: для вызова функции.
  • font: чтобы установить шрифт на метке кнопки.
  • image: чтобы установить изображение на виджете.
  • width: чтобы задать ширину метки в символах.
  • height: чтобы задать высоту метки в символах.
from tkinter import *
root = Tk()
v = IntVar()
Radiobutton(root, text='GfG', variable=v, value=1).pack(anchor=W)
Radiobutton(root, text='MIT', variable=v, value=2).pack(anchor=W)
mainloop()

Выход:

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

Общий синтаксис таков:

w = Scale(master, option=value)
master is the parameter used to represent the parent window.

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

  • cursor: Чтобы изменить шаблон курсора, когда мышь находится над виджетом.
  • activebackground: Для установки фона виджета при наведении курсора мыши на виджет.
  • bg: чтобы установить нормальный цвет фона.
  • orient: Установите его в ГОРИЗОНТАЛЬНОЕ или ВЕРТИКАЛЬНОЕ положение в соответствии с требованиями.
  • from_: Для установки значения на одном конце диапазона шкалы.
  • to: Для установки значения другого конца диапазона шкалы.
  • image: чтобы установить изображение на виджете.
  • width: чтобы задать ширину виджета.
from tkinter import *
master = Tk()
w = Scale(master, from_=0, to=42)
w.pack()
w = Scale(master, from_=0, to=200, orient=HORIZONTAL)
w.pack()
mainloop()

Выход:

13. Scrollbar: Относится к контроллеру слайдов, который будет использоваться для реализации перечисленных виджетов.

Общий синтаксис таков:

w = Scrollbar(master, option=value) master is the parameter used to represent the parent window.

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

  • width: чтобы задать ширину виджета.
  • activebackground: Для установки фона при наведении курсора мыши на виджет.
  • bg: чтобы установить нормальный цвет фона.
  • bd: чтобы установить размер границы вокруг индикатора.
  • cursor: Для отображения курсора при наведении курсора мыши на меню.
from tkinter import *
root = Tk()
scrollbar = Scrollbar(root)
scrollbar.pack( side = RIGHT, fill = Y )
mylist = Listbox(root, yscrollcommand = scrollbar.set )
for line in range(100):
mylist.insert(END, 'This is line number' + str(line))
mylist.pack( side = LEFT, fill = BOTH )
scrollbar.config( command = mylist.yview )
mainloop()

Выход:

14. TextДля редактирования многострочного текста и форматирования его отображения.

Общий синтаксис таков:

w = Text(master, option=value)

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

  • highlightcolor: Для установки цвета выделения фокуса, когда виджет должен быть сфокусирован.
  • insertbackground: Для установки фона виджета.
  • bg: чтобы установить нормальный цвет фона.
  • font: чтобы установить шрифт на метке кнопки.
  • image: чтобы установить изображение на виджете.
  • width: чтобы задать ширину виджета.
  • height: для установки высоты виджета.
from tkinter import *
root = Tk()
T = Text(root, height=2, width=30)
T.pack()
T.insert(END, 'GeeksforGeeks\nBEST WEBSITE\n')
mainloop()

Выход:

15. TopLevelЭтот виджет напрямую управляется оконным менеджером. Для работы с ним не требуется никакого родительского окна.

Общий синтаксис таков:

w = TopLevel(master, option=value)

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

  • bg: чтобы установить нормальный цвет фона.
  • bd: чтобы установить размер границы вокруг индикатора.
  • cursor: Для отображения курсора при наведении курсора мыши на меню.
  • width: чтобы задать ширину виджета.
  • height: для установки высоты виджета.
from tkinter import *
root = Tk()
root.title('GfG')
top = Toplevel()
top.title('Python')
top.mainloop()

Выход:

16. SpinBoxЭто запись виджета » Запись’. Здесь значение можно ввести, выбрав фиксированное значение чисел.

Общий синтаксис таков:

w = SpinBox(master, option=value) 

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

  • bg: чтобы установить нормальный цвет фона.
  • bd: чтобы установить размер границы вокруг индикатора.
  • cursor: Для отображения курсора при наведении курсора мыши на меню.
  • command: Для вызова функции.
  • width: чтобы задать ширину виджета.
  • activebackground: Для установки фона при наведении курсора мыши на виджет.
  • disabledbackground: Чтобы отключить фон, когда мышь находится над виджетом.
  • from_: Для установки значения на одном конце диапазона.
  • to: Для установки значения на другом конце диапазона.
from tkinter import *
master = Tk()
w = Spinbox(master, from_ = 0, to = 10)
w.pack()
mainloop()

Выход:

17. PannedWindow: Это виджет-контейнер, который используется для обработки количества расположенных в нем панелей. 

Общий синтаксис таков:

w = PannedWindow(master, option=value) 

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

  • bg: чтобы установить нормальный цвет фона.
  • bd: чтобы установить размер границы вокруг индикатора.
  • cursor: Для отображения курсора при наведении курсора мыши на меню.
  • width: чтобы задать ширину виджета.
  • height: для установки высоты виджета.
from tkinter import *
m1 = PanedWindow()
m1.pack(fill = BOTH, expand = 1)
left = Entry(m1, bd = 5)
m1.add(left)
m2 = PanedWindow(m1, orient = VERTICAL)
m1.add(m2)
top = Scale( m2, orient = HORIZONTAL)
m2.add(top)
mainloop()

Выход: