Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Python. Модуль tkinter. Добавить окно, рассчитывающее периметр и площадь треугольника и квадрата

Помогите, пожалуйста, с доработкой программы. Необходимо создать пятое окно, в котором должны находиться 2 Radiobutton элемента, в одном из которых можно выбрать треугольник, в другом квадрат. Потом появляются рядом элементы Checkbutton, с помощью которых можно посчитать площадь и периметр треугольника или квадрата (в зависимости от того, какая фигура была выбрана). При выборе вывода площади на экран должна выводится площадь, при выборе периметра - периметр. Пользователем должны вводится необходимые размеры фигур для вычисления.
Весь мой код не влез, поэтому дополнительно скинула остаток кода.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
 from tkinter import *  
from tkinter import ttk  
from tkinter.ttk import Combobox  
from tkinter.ttk import Checkbutton  
from tkinter.ttk import Radiobutton  
   
lst = []  
def simple_numbers (n):#функция нахождения простых чисел  
    for i in range(1, n+1):  
        for j in range(2, i):  
            if i % j == 0:  
                break  
        else:  
            lst.append(i)  
x = [0]  
   
def clicked ():#функция счетчика кликов  
    y = [1]  
    x[0] += 1  
    y[0] += 1  
    z = x[0]  
    btn_1.configure(text=f'номер клика: {x[0]}\nпростое число: {lst[z - 1]}')  
good = '123'  
   
def code():#проверка правильности пароля  
    if password.get() == good:  
        txt_2.delete(1.0, END)  
        txt_2.insert(INSERT, 'Тупить!')  
    else:  
        txt_2.delete(1.0, END)  
        txt_2.insert(INSERT, 'Это неправильный пароль')  
        password.delete(first=0, last=len(password.get()))  
   
def chkButton():#функция проверки нажатых букв в 3 окне  
    str = ''  
    if (chk_state.get()):  
        str += 'А'  
    if (chk_state_1.get()):  
        str += 'Б'  
    if (chk_state_2.get()):  
        str += 'В'  
    if (chk_state_3.get()):  
        str += 'Г'  
    if (chk_state_4.get()):  
        str += 'Д'  
    lbl_txt.configure(text=str)  
def chk_RadioButton():  
    lbl.configure(text=selected.get())  
window = Tk()  
window.title("Hello world")  
window.geometry('600x600')  
tab_control = ttk.Notebook(window)  
tab1 = ttk.Frame(tab_control)  
tab2 = ttk.Frame(tab_control)  
tab3 = ttk.Frame(tab_control)  
tab4 = ttk.Frame(tab_control)  
tab_control.add(tab1, text='Первое окно')  
tab_control.add(tab2, text='Второе окно')  
tab_control.add(tab3, text='Третье окно')  
tab_control.add(tab4, text='Четвертое окно')  
   
#первое окно  
simple_numbers(1000)  
btn_1 = Button(tab1, text='0', command=clicked, width='20', height='5')  
btn_1.grid(column=0, row=0)  
   
#второе окно  
lbl_1 = Label(tab2, text="Введите текст")  
lbl_1.grid(column=0, row=0)  
txt_1 = Text(tab2, width=30, height=6)  
txt_1.insert(INSERT, f'Что все люди умеют делать\nневероятно хорошо?')  
txt_1.grid(column=1, row=0)  
lbl_2 = Label(tab2, text="Введите пароль")  
lbl_2.grid(column=0, row=1)  
password = Entry(tab2, width=40)  
password.grid(column=1, row=1)  
password.focus()  
btn_2 = Button(tab2, text="Клик!", command=code, width=34)  
btn_2.grid(column=1, row=2)  
txt_2 = Text(tab2, width=30, height=1)  
txt_2.grid(column=1, row=3)  
   
#третье окно  
chk_state = BooleanVar()  
chk_state_1 = BooleanVar()  
chk_state_2 = BooleanVar()  
chk_state_3 = BooleanVar()  
chk_state_4 = BooleanVar()  
chk = Checkbutton(tab3, text='А', var=chk_state)  
chk.grid(column=0, row=0, sticky=W)  
chk_1 = Checkbutton(tab3, text='Б', var=chk_state_1)  
chk_1.grid(column=0, row=1, sticky=W)  
chk_2 = Checkbutton(tab3, text='В', var=chk_state_2)  
chk_2.grid(column=0, row=2, sticky=W)  
chk_3 = Checkbutton(tab3, text='Г', var=chk_state_3)  
chk_3.grid(column=0, row=3, sticky=W)  
chk_4 = Checkbutton(tab3, text='Д', var=chk_state_4)  
chk_4.grid(column=0, row=4, sticky=W) 
Дополнен

lbl = Label(tab3, text='Слово, состоящие из выбранных букв:')
lbl.grid(column=0, row=5, sticky=W, columnspan=2)
lbl_txt = Label(tab3, text=' ')
lbl_txt.grid(column=2, row= 5, sticky=W)
btn_2 = Button(tab3, text="Клик!", command=chkButton)
btn_2.grid(column=0, row=6, sticky=W)
tab_control.pack(expand=1, fill="both")

#Четвертое окно
selected = StringVar()
list = [[1,2,3],[4,5,6],[7,8,9]]
tuple = ('Privet', 9, 3.14)
set = {1,2,3,4,'abcd'}
dict = {'key1': 'z1', 'key2': 'z2'}
rad1 = Radiobutton(tab4, text='Список(list)', value=list, variable=selected)
rad1.grid(column=0, row=0, sticky=W)
rad2 = Radiobutton(tab4, text='Кортеж(tuple)', value=tuple, variable=selected)
rad2.grid(column=0, row=1, sticky=W)
rad3 = Radiobutton(tab4, text='Множество(set)', value=set, variable=selected)
rad3.grid(column=0, row=2, sticky=W)
rad4 = Radiobutton(tab4, text='Словарь(dict)', value=dict, variable=selected)
rad4.grid(column=0, row=3, sticky=W)
btn = Button(tab4, text="Клик", command=chk_RadioButton)
btn.grid(column=0, row=4, sticky=W)
lbl_txt_1 = Label(tab4, text="Пример: ")
lbl.grid(column=1, row=4, sticky=W)
lbl = Label(tab4)
lbl.grid(column=2, row=4, sticky=W)
window.mainloop()

По дате
По рейтингу
Аватар пользователя
Просветленный

так место тут уже нет чтобы его опубликовать




Рабочий код можно скачать тут
https:// inlnk.ru/goVQ3j