Интерактивные компоненты


В окне кнопка может располагаться через класс Button модуля tkinter. Кнопка связывается с какой-нибудь переменной. У класса Button есть обязательный параметр – объект, которому кнопка принадлежит.

b = Button(root)

У кнопки много свойств: размер, цвет фона и надписи и др. Для надписи текста на кнопке используется свойство – text :

b["text"] = "Рисовать"

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

Действия (алгоритм), которые происходят при том или ином событии, могут быть достаточно сложным. Поэтому часто их оформляют в виде функции, а затем вызывают, когда они понадобятся. Пусть ввод с экрана оформляется в виде функции reader:

def reader(event):

input (a)

Событие нажатия левой кнопкой мыши выглядит так: для связи предназначен метод bind. Синтаксис связывания события с обработчиком выглядит так:

b.bind("<Button-1>",reader)

Кнопка отображается в окне используя метод pack.

b.pack()

Без этой строчки кнопка в окне не появится.

Главное окно появится после вызова методом mainloop:

root.mainloop()

Код программы может выглядеть таким образом:

from tkinter import*

def reader(event):

input(a)

root = Tk()

b = Button(root)

b["text"] = "Ввод"

b.bind("<Button-1>",reader)

b.pack()

root.mainloop()

Объект-кнопка создается вызовом класса Button модуля tkinter. При этом обязательным аргументом является лишь родительский виджет (например, окно верхнего уровня). Другие свойства могут указываться при создании кнопки или задаваться позже. Синтаксис:

переменная = Button (родит_виджет, *свойство=значение, … ….+)

У кнопки много свойств, в примере ниже указаны лишь некоторые из них.

from tkinter import*

root = Tk()

b = Button(root,text="Это кнопка", #надпись на кнопке

width=30,height=5, #ширина и высота

bg="white",fg="blue") #цвет фона и надписи

b.pack()

root.mainloop()

bg и fg – это сокращения от background (фон) и foreground (передний план). Ширина и высота измеряются в знакоместах (количество символов).

Метка (или надписи) – виджеты, содержащие строку текста и служащие для информирования пользователя.

Lab = Label(root, text="Метка! \nИз двух строк.", font="Arial 18")

Класс Entry модуля tkinter позволяет ввести строку текста.

Ent = Entry(root,width=20,bd=3) # bd – ширина границы.

Textпредназначен для многострочного текстового поля.

tex = Text(root,width=40, font="Verdana 12", wrap=WORD)

Cвойство wrap в зависимости от своего значения позволяет переносить текст, вводимый пользователем либо по символам, либо по словам, либо вообще не переносить, пока пользователь не нажмет Enter.

Радиокнопки (переключатели) используют группами, при этом в одной группе может быть «включена» лишь одна кнопка.

v=IntVar()

v.set(1)

r0 = Radiobutton(root,text="1-ая",variable=v,value=0)

r1 = Radiobutton(root,text="2-ая",variable=v,value=1)

r2 = Radiobutton(root,text="3-я",variable=v,value=2)

Одна группа определяет значение одной переменной, т.е. если в примере будет выбрана радиокнопка r2, то значение переменной будет v будет 2. Изначально также требуется установить значение переменной (выражение v.set(1) задает значение переменной v равное 1).

Флажки.Объект checkbutton предназначен для выбора не взаимоисключающих пунктов в окне (можно активировать несколько флажков). Значение каждого флажка привязывается к своей переменной, значение которой определяется опциями onvalue (включено) и offvalue (выключено) в описании флажка.

c1 = IntVar()

c2 = IntVar()

ch1 = Checkbutton(root,text="1-ый флажок",variable=c1,onvalue=1,offvalue=0)

ch2 = Checkbutton(root,text="2-ой флажок",variable=c2,onvalue=2,offvalue=0)

Меню – объект, находящийся под строкой заголовка и представляющий собой выпадающие списки со словами; каждый такой список может содержать другой вложенный в него список. Каждый пункт списка представляет собой команду, запускающую какое-либо действие или открывающую диалоговое окно.

Создание меню в Tkinter

from tkinter import *

root = Tk()

m = Menu(root) # создается объект Меню на главном окне

root.config(menu=m) # окно конфигурируется с указанием меню для него

f = Menu(m) #создается пункт меню с размещением на основном меню (m)

m.add_cascade(label="File",menu=f) #пункт располагается на меню (m)

f.add_command(label="Open...") #формируется список команд пункта меню

f.add_command(label="New")

f.add_command(label="Save...")

f.add_command(label="Exit")

h = Menu(m) #2-ой пункт меню

m.add_cascade(label="Help",menu=h)

h.add_command(label="Help")

h.add_command(label="About")

root.mainloop()

Метод add_cascadeдобавляет новый пункт в меню, который указывается как значение опции menu.

Метод add_command добавляет новую команду в пункт меню. Одна из опций данного метода (в примере выше ее пока нет) – command – связывает данную команду с функцией-обработчиком.

Можно создать вложенное меню. Для этого создается еще одно меню и с помощью add_cascade привязать к родительскому пункту.

nf = Menu(fm)

f.add_cascade(label="Import",menu=nf)

nf.add_command(label="Image")

nf.add_command(label="Text")



Дата добавления: 2022-04-12; просмотров: 179;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.011 сек.