Урок_9.2

 Урок_2.

Тема: Візуалізація елементів табличної величини за допомогою графічних
           примітивів. Елемент керування «багаторядкове текстове поле».
           Введення та виведення елементів масиву можна організувати також засобами
           об’єктно-орієнтованого програмування.

1 спосіб

         Для введення елементів списку зручно використовувати вікна введення даних
askstring. Так, після натискання у вікні програми кнопки Створити масив має
з’явитися вікно, в якому слід увести вказаний елемент масиву.
Виводити елементи масиву краще всього до такого елемента керування, як список,
що створюється з допомогою конструктора Listbox.
Розглянемо, як увести масив із використанням вікон уведення даних askstring та
виведенням його до елемента керування Listbox, виконавши практичне завдання.

ЗАВДАННЯ 1.

1. Cтворення інтерфейсу графічного вікна введення елементів одновимірного масиву.



2. Додайте команди обробника події натискання кнопки Створення масиву.

mas=[]
def btn_click(): #введення елементів
for i in range(5):
a = int(askstring('Введення елемента', 'mas['+str(i)+']='))
mas.append(a)
for i in range(5):
Lbox.insert(END,mas[i])

     Тут команда a = int(askstring('Введення елемента','mas['+str(i)+']=')) створює вікно введення даних, у якому в якості заголовка використовується напис
Введення елемента, а в якості запрошення утворюється повідомлення щодо введення
елемента за номером, указаним у дужках. Значення, введене користувачем у даному
вікні, буде перетворено на цілий тип завдяки функції int та присвоєно змінній а.
     Виведення масиву здійснюється в окремому циклі, що має такий же діапазон, що і
цикл для введення елементів масиву. Для додавання елементів до об’єкта Lbox
використовується метод insert, в якому перший аргумент End указує позицію
вставлення елементу масиву, а саме, кінець, другий аргумент — значення елемента
масиву mas, що розташований у масиві за вказаним індексом i.

3. Додайте команду виклику обробника події в конструкторі кнопки:

Btn=Button(text="Створення масиву", command=btn_click)

4. Запустіть програму та перевірте, як вона працює.

          Після запуску програми та натискання кнопки Створити масив з допомогою вікна
введення даних ви послідовне введете елементи масиву. Після введення останнього
елемента усі вони будуть відображені у списку Listbox.

Реалізувати введення елементів масиву можна виконавши наступний програмний код:
import tkinter as tk
from tkinter import messagebox

# Функція для збору введених елементів
def get_array():
    try:
        # Отримуємо значення з поля для кількості елементів
        n = int(entry_size.get())
        
        # Перевірка на позитивне число
        if n <= 0:
            raise ValueError
        
        # Вікно для введення елементів
        array = []
        for i in range(n):
            val = entry_elements[i].get()
            # Перевірка на правильність введеного числа
            try:
                array.append(int(val))
            except ValueError:
                messagebox.showerror("Помилка", f"Елемент {i+1} має бути числом!")
                return

        # Виводимо масив у вікно
        messagebox.showinfo("Масив", f"Введений масив: {array}")
        
    except ValueError:
        messagebox.showerror("Помилка", "Невірно введено кількість елементів!")

# Головне вікно
root = tk.Tk()
root.title("Введення елементів масиву")

# Пояснення
label_size = tk.Label(root, text="Кількість елементів масиву:")
label_size.pack()

# Поле для введення кількості елементів
entry_size = tk.Entry(root)
entry_size.pack()

# Список для зберігання полів введення елементів
entry_elements = []

# Функція для створення полів вводу для елементів масиву
def create_input_fields():
    try:
        # Видаляємо старі поля вводу
        for widget in frame_elements.winfo_children():
            widget.destroy()
        
        # Кількість елементів
        n = int(entry_size.get())
        
        # Створюємо нові поля для кожного елемента
        for i in range(n):
            label = tk.Label(frame_elements, text=f"Елемент {i+1}:")
            label.grid(row=i, column=0)
            entry = tk.Entry(frame_elements)
            entry.grid(row=i, column=1)
            entry_elements.append(entry)
        
    except ValueError:
        messagebox.showerror("Помилка", "Невірно введено кількість елементів!")

# Кнопка для створення полів вводу
button_create = tk.Button(root, text="Створити поля для введення", command=create_input_fields)
button_create.pack()

# Рамка для введення елементів масиву
frame_elements = tk.Frame(root)
frame_elements.pack()

# Кнопка для збору і виведення масиву
button_get = tk.Button(root, text="Отримати масив", command=get_array)
button_get.pack()

# Запуск програми
root.mainloop()

2 спосіб

        Для введення елементів масиву в об’єктно-орієнтовному програмуванні також 
використовують текстові поля (Textbox). Розглянемо введення елементів масиву через текстове поле, виконавши завдання 2.

 ЗАВДАННЯ 2.

1. Уведіть команди створення інтерфейсу графічного вікна.

from tkinter import*
window=Tk()
mas=[]
Lbl=Label(text='Текстове поле')
Lbl.pack() #текстове поле
Ent=Entry()
Ent.pack()
Btn=Button(text="Вивести масив") #кнопка
Btn.pack()
Lbox=Listbox() #список
Lbox.pack()

2. Додайте команди створення порожнього списку mas та обробника події натиснення

кнопки Створення масиву.

mas=[]
def btn_click():
a = Ent.get() #введення елементів
mas = a.split()
for i in mas: #виведення масиву
Lbox.insert(END,i)

     Розглянемо обробник події натиснення кнопки. Значення, введені користувачем до
текстового поля, мають бути зчитані, перетворені на список та виведені до елемента
керування списком у вигляді окремих елементів.
        В результаті виконання команди a = Ent.get() завдяки методу get змінна а одержить
значення, введені користувачем до текстового поля, а саме, числа, введені через пробіл.
Наступна команда mas = a.split() з допомогою методу split перетворює рядок даних,
записаних через пробіл, на список, значення якого присвоюється змінній mas.

3. Запустіть програму на виконання.

4. В текстовому полі введіть через пробіл елементи списку.

5. Натисніть кнопку Створити список. У результаті введені до текстового поля

елементи списку буде відображено в елементі Listbox.

За матеріалами сайту

Немає коментарів:

Дописати коментар