Урок 8. Меню та діалогові вікна

Меню

Меню – це віджет, який присутній у багатьох користувацьких додатках. У меню представлені всі команди та функції програми, які доступні користувачеві через графічний інтерфейс.

    from tkinter import *
root = Tk()

def hello():
    print("Привіт!")

menubar = Menu(root)
root.config(menu=menubar)

menubar.add_command(label="Привіт!", command=hello)
menubar.add_command(label="Вийти", command=quit)

root.mainloop()

Створюємо підменю в головному меню так:

name_ = Menu(M)

M.add_cascade(label = t, menu = name_)

name_ – ім'я підменю,
M – ім'я головного меню,
t – текст, який буде відображатись як назва підменю.

Заповнювати підменю пунктами-командами можна так:

name_.add_command(label = text_, command = f)

name_ – ім'я підменю, в яке додатися команда; text_ – текст, який буде відображатись як назва команди; f – ім'я функції, яка виконається після вибору даної команди.

Приклад 1 Вказівка. Значення tearoff=0 відключає можливість відкріплення підменю.

from tkinter import *                             # імпортування графічної бібліотеки
root = Tk()                                       # створення головного вікна
root.geometry("200x150")                          # задання розмірів вікна
mainmenu = Menu(root)                             # створення головного меню
root.config(menu=mainmenu)
filemenu = Menu(mainmenu, tearoff=0)              # створення підменю "Файл"
filemenu.add_command(label="Новий")               # додавання команди "Новий" до підменю "Файл"
filemenu.add_command(label="Відкрити...")         # додавання команди "Відкрити..." до підменю "Файл"
filemenu.add_separator()                          # вставлення горизонтального роздільника
filemenu.add_command(label="Вихід")               # додавання команди "Вихід" до підменю "Файл"
helpmenu = Menu(mainmenu, tearoff=0)              # створення підменю "Довідка"
mainmenu.add_cascade(label="Файл", menu=filemenu)           # підв'язуємо підменю "Файл" до головного меню
mainmenu.add_cascade(label="Довідка", menu=helpmenu)        # підв'язуємо підменю "Довідка" до головного меню
root.mainloop()                                 # задання команди відображення вікна при запуску

Діалогові вікна

op = askopenfilename () Вікно відкриття файлу
sa = asksaveasfilename () Вікно збереження файлу
showinfo(“Заголовок вікна”, “Повідомлення”) метод створення вікна з повідомленням;
showwarning(“Заголовок вікна”, “Попередження”) метод створення вікна з попередженням (відрізняється від вікна з повідомленням звуковим сигналом та зображенням);
showerror(“Заголовок вікна”, “Повідомлення про помилка”) метод створення вікна з повідомленням про помилку (відрізняється від вікна з повідомленням звуковим сигналом та зображенням);
askyesno(“Заголовок вікна”, “Запитання”) метод створення вікна з запитанням, з можливістю відповісти Так або Ні. Метод повертає True або False в залежності від натиснутої кнопки. False повертається також у випадку, якщо вікно було закрито користувачем;
askokcancel(“Заголовок вікна”, “Запитання”) метод створення вікна з запитанням, з можливістю натиснути кнопку Ok або Cancel. Метод повертає True або False в залежності від натиснутої кнопки. False повертається також у випадку, якщо вікно було закрито користувачем;
askyesnocancel(“Заголовок вікна”, “Запитання”) - мте саме, що й askyesno(), але з додатковим варіантом Cancel. При натисканні на кнопку Cancel не повертає нічого.