Введення даних — це передача інформації від зовнішнього носія (клавіатури) в оперативну пам′ять для опрацювання. Виведення — зворотній процес, коли дані передаються після опрацювання з оперативної пам′яті на зовнішній носій (на екран).
Створення віджетів класу Entry
Компонент Entry — це поле для введення і виведення тексту.
Синтаксис створення об’єкта класу Entry:
змінна = Entry(батьківський_віджет, [властивість = значення])
змінна = Entry(батьківський_віджет, [властивість = значення])
Головним атрибутом віджета Entry є атрибут text, який прив’язує віджет до текстової змінної, в якій зберігатиметься інформація для введення/виведення через поле віджета Entry.
Приклад:
Створимо об’єкт entry1 із такими атрибутами:
• текст, уведений у текстове поле, зберігається у змінній s;
• ширина текстового поля — 14 знакомісць;
• параметри шрифту — Arial, 18 кегль.
entry1 = Entry(root, text = s, width = 14, font = 'Arial 18')
• текст, уведений у текстове поле, зберігається у змінній s;
• ширина текстового поля — 14 знакомісць;
• параметри шрифту — Arial, 18 кегль.
entry1 = Entry(root, text = s, width = 14, font = 'Arial 18')
Методи Entry
• Метод get() дозволяє отримати значення, що міститься в текстовому полі.
Отримати значення з поля об’єкта entry1 класу Entry і присвоїти його змінній а цілого типу можна так:
a = int(entry1.get())
• Метод insert(index, str) виводить у текстове поле рядок, починаючи зі знакомісця з номером index.
Виведемо до поля об’єкта entry1 класу Entry значення змінної х:
entry1.insert(0, х)
• Метод delete(first, last) вилучає символи, починаючи зі знакомісця з номером first, до знакомісця з номером last (нумерація символів починається із 0). Щоб вилучити весь текст, як другий параметр потрібно указати END. Бажано перед викликом методу insert() викликати метод delete(), тобто перед виведенням очищувати текстове поле.
Алгоритм використання віджетів Entry для виведення даних:
entry1 = Entry(root, text = s, width = 8, font = 'Arial 16')
entry1.place(x = 80, y = 10)
labb = Label(root, text = 'a ** 2 =', font = 'Arial 16')
labb.place(x = 10, y = 110)
entry2 = Entry(root, text = s, width = 8, font = 'Arial 16')
entry2.place(x = 80, y = 110)
b1 = Button(root, text = 'Обчислити', font = 'Arial 16', command = b1_click)
b1.place(x = 20, y = 50)root.mainloop()
Отримати значення з поля об’єкта entry1 класу Entry і присвоїти його змінній а цілого типу можна так:
a = int(entry1.get())
• Метод insert(index, str) виводить у текстове поле рядок, починаючи зі знакомісця з номером index.
Виведемо до поля об’єкта entry1 класу Entry значення змінної х:
entry1.insert(0, х)
• Метод delete(first, last) вилучає символи, починаючи зі знакомісця з номером first, до знакомісця з номером last (нумерація символів починається із 0). Щоб вилучити весь текст, як другий параметр потрібно указати END. Бажано перед викликом методу insert() викликати метод delete(), тобто перед виведенням очищувати текстове поле.
Приклад:
Очистимо текстове поле перед виведенням:
entry1.delete(0, END)
entry1.insert(0, 'Молодець!')
Видалимо символи з 7-го по 12-й із текстового поля:
entry1.delete(7, 12)
entry1.delete(0, END)
entry1.insert(0, 'Молодець!')
Видалимо символи з 7-го по 12-й із текстового поля:
entry1.delete(7, 12)
Алгоритм використання віджетів Entry для введення даних:
Створити об‘єкт класу Entry | s = '' e1 = Entry(root, text = s) e1.pack() |
Створити об‘єкт класу Button | b1 = Button(root, text = 'Ввести', command = b1_click) b1. pack() |
Описати обробник події «Натискання на кнопку» для об‘єкта b1 | def b1_click(): |
В тілі метода b1_click() змінній присвоїти значення з поля e1 | a = float (e1.get()) |
Алгоритм використання віджетів Entry для виведення даних:
Створити об‘єкт класу Entry | s = '' e2 = Entry(root, text = s) e2.pack() |
Створити об‘єкт класу Button | b2 = Button(root, text = 'Вивести', command = b2_click) b2. pack() |
Описати обробник події «Натискання на кнопку» для об‘єкта b2 | def b2_click(): |
В тілі метода b2_click() очистити поле е2 і виввести в поле значення змінної, перетворене до рядкового типу | e2.delete(0, END) e2.insert(0, str(а)) |
Приклад:
Уведемо число до поля об’єкта entry1 і виведемо квадрат цього числа до поля об’єкта entry2 (рис.1).
from tkinter import*
def b1_click():
def b1_click():
a = float(entry1.get())
b = a ** 2
entry2.delete(0, END)
entry2.insert(0, str(b))
root = Tk()
root.title('Квадрат числа')
root.geometry('220x160')
laba = Label(root, text = 'a =', font = 'Arial 16')
laba.place(x = 10, y = 10)
s = ''
root = Tk()
root.title('Квадрат числа')
root.geometry('220x160')
laba = Label(root, text = 'a =', font = 'Arial 16')
laba.place(x = 10, y = 10)
s = ''
entry1.place(x = 80, y = 10)
labb = Label(root, text = 'a ** 2 =', font = 'Arial 16')
labb.place(x = 10, y = 110)
entry2 = Entry(root, text = s, width = 8, font = 'Arial 16')
entry2.place(x = 80, y = 110)
b1 = Button(root, text = 'Обчислити', font = 'Arial 16', command = b1_click)
b1.place(x = 20, y = 50)root.mainloop()
Рис.1
Джерела:
Інформатика : підруч. для 6 кл. закл. загал. серед. освіти / [О. О. Бондаренко, В. В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов]. — Харків : Вид-во «Ранок», 2019