-
Notifications
You must be signed in to change notification settings - Fork 0
/
ch10_movie_chooser_2.py
73 lines (60 loc) · 2.85 KB
/
ch10_movie_chooser_2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Киноман 2.0
# Демонстрирует переключатель
from tkinter import *
class Application(Frame):
"""GUI-приложение, позволяющее выбрать один любимый жанр кино"""
def __init__(self, master):
"""Инициализирует рамку"""
super(Application, self).__init__(master)
self.grid()
self.create_widgets()
def create_widgets(self):
"""Создаёт элементы, с помощью которых пользователь будет выбирать"""
# метка-описание
Label(self,
text = "Укажите ваш любимый жанр кино"
).grid(row = 0, column = 0, sticky = E)
# метка-инструкция
Label(self,
text = "Выберите ровно один:"
).grid(row = 1, column = 0, sticky = W)
# переменная для хранения сведений о единственном любимом жанре
self.favorite = StringVar()
self.favorite.set(None)
# положение "Комедия" переключателя
Radiobutton(self,
text = "Комедия",
variable = self.favorite,
value = "комедия",
command = self.update_text
).grid(row = 2, column = 0, sticky = W)
# положение "Драма" переключателя
Radiobutton(self,
text = "Драма",
variable = self.favorite,
value = "драма",
command = self.update_text
).grid(row = 3, column = 0, sticky = W)
# положение "Кино о любви" переключателя
Radiobutton(self,
text = "Кино о любви",
variable = self.favorite,
value = "кино о любви",
command = self.update_text
).grid(row = 4, column = 0, sticky = W)
# текстовая область с результатами
self.results_txt = Text(self, width = 40, height = 1, wrap = WORD)
self.results_txt.grid(row = 5, column = 0, columnspan = 3)
def update_text(self):
"""Обновляя текстовую область, вписывает в неё любимый жанр"""
message = "Ваш любимый киножанр - "
message += self.favorite.get()
self.results_txt.delete(0.0, END)
self.results_txt.insert(0.0, message)
# основная часть
root = Tk()
root.title("Киноман 2.0")
app = Application(root)
root.mainloop()