Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Лабораторная работа №2
- Задание: На основании иерархии объектов предметной области, заданной вариантом в табл. 7.2, сформировать главное меню проекта. В меню должно быть не менее 20 опций и четырех уровней. 2. У двух конечных опций должны быть горячие клавиши. Выбор одной из таких опций приводит к появление в окне однострочного редактора фамилии студента. Выбор другой такой опции приводит к исчезновению вышеуказанного текста. Создать контекстное меню, привязанное к редактору. В меню пять опций: для задания размера шрифта текста. Выбор опции сопровождается установкой рядом с ней символа √.
- Структура проекта: lab2.py
- Форма:
- Листинг программы:
- from tkinter import *
- root = Tk()
- # Функции
- def font(font):
- entry.config(font=('Arial', font))
- k = False
- def on():
- global entry, k
- if k == False:
- entry = Entry(width=15)
- entry.insert(0, "Махмуджонов")
- entry.place(x=220, y=150)
- entry.bind("<Button-3>", self)
- k = True
- def off():
- global entry, k
- if k:
- entry.place_forget()
- k = False
- def on_k(event):
- global entry, k
- if k == False:
- entry = Entry(width=15)
- entry.insert(0, "Махмуджонов")
- entry.place(x=220, y=150)
- entry.bind("<Button-3>", self)
- k = True
- def off_k(event):
- global entry, k
- if k:
- entry.place_forget()
- k = False
- def self(event):
- selfmenu.post(event.x_root, event.y_root)
- # Горячие клавиши
- root.bind("<z>", on_k)
- root.bind("<x>", off_k)
- # Контекстное меню
- selfmenu = Menu(tearoff=0)
- selfmenu.add_radiobutton(label="5", command=lambda: font(5))
- selfmenu.add_radiobutton(label="10", command=lambda: font(10))
- selfmenu.add_radiobutton(label="15", command=lambda: font(15))
- selfmenu.add_radiobutton(label="20", command=lambda: font(20))
- selfmenu.add_radiobutton(label="25", command=lambda: font(25))
- # Окно
- root.geometry("500x300")
- root.title("Телефоны")
- # Картинки для меню
- image1 = PhotoImage(file="eye.png")
- image2 = PhotoImage(file="blind.png")
- # Меню
- mainmenu = Menu(root)
- root.config(menu=mainmenu)
- A = Menu(mainmenu, tearoff=0)
- A.add_command(label='Apple', image=image1, compound=LEFT, command=on, accelerator="z")
- A.add_command(label='Android', image=image2, compound=LEFT, command=off, accelerator="x")
- B = Menu(mainmenu, tearoff=0)
- B.add_cascade(label='OC:', menu=A)
- C = Menu(mainmenu, tearoff=0)
- C.add_command(label='Redmi note 3')
- C.add_command(label='Redmi note 4')
- C.add_command(label='Redmi note 5')
- D = Menu(mainmenu, tearoff=0)
- D.add_command(label='Galaxy 7')
- D.add_command(label='Galaxy 10')
- E = Menu(mainmenu, tearoff=0)
- E.add_command(label='Iphone 6')
- E.add_command(label='Iphone 7')
- E.add_command(label='Iphone 10')
- F = Menu(mainmenu, tearoff=0)
- F.add_command(label='МТС')
- F.add_command(label='ТЕЛЕ2')
- F.add_command(label='Мегафон')
- F.add_separator()
- F.add_cascade(label='Дополнительно...', menu=B)
- G = Menu(mainmenu, tearoff=0)
- G.add_cascade(label='Xiaomi', menu=C)
- G.add_cascade(label='Samsung', menu=D)
- G.add_command(label='Nokia')
- H = Menu(mainmenu, tearoff=0)
- H.add_command(label='Xiaomi')
- H.add_command(label='Samsung')
- H.add_cascade(label='Другие...', menu=E)
- mainmenu.add_cascade(label='Таксофоны', menu=F)
- mainmenu.add_cascade(label='Мобильные', menu=H)
- mainmenu.add_cascade(label='Стационарные', menu=G)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement