Тема: При підключенні команди на кнопку пропадає сама кнопка
Доброго вечора, шановні форумчани. Доньці у школі на інформатиці задали практичну роботу. Вирішив реалізувати у графічному інтерфейсі, але мізків не вистачає. Дуже прошу допомогти.
Є титульна сторінка з переліком із 7 завдань (кожному відповідає кнопка)
При натисканні на кнопку завдання повинне відкриватися віконце з його виконанням, де у форми вводяться дані згідно з завданнями та виходить результат обчислення примітивними формулами.
Я ніколи не стикався з цією мовою програмування, тому й уперся в проблемку. Завдання 1, кнопка повинна рахувати, але коли прикріплюю до неї def Calc(), то зникає сама кнопка.
Буду дуже вдячний за допомогу
python-3.11.1-amd64
from tkinter import *
import tkinter as tk
class Main(tk.Tk):
def __init__(self,*args, **kwargs):
tk.Tk.__init__(self,*args, *kwargs)
self.title("Практична робота №9")
self.geometry("900x450")
self.resizable(False, False)
lab1 = Label(text="Практична робота №9",font=20)
lab1.pack()
lab2 = Label(text="учениці 8А класу",font=16)
lab2.pack()
lab3 = Label(text="Ц***** Аріни",font=16)
lab3.pack()
#Кнопка "Задача 1. Створити програму для розв’язування рівнянь"
self.button = tk.Button(self,text="Задача 1", command=lambda: Z1())
self.button.place(x=100,y=150)
#Кнопка "Задача 2. Переведення величин"
self.button1 = tk.Button(self,text="Задача 2", command=lambda: Z2())
self.button1.place(x=100,y=180)
#Кнопка "Задача 3. Переведення величин"
self.button2 = tk.Button(self,text="Задача 3", command=lambda: Z3())
self.button2.place(x=100,y=210)
#Кнопка "Задача 4. Створити програму для знаходження площі прямокутного трикутника"
self.button2 = tk.Button(self,text="Задача 4", command=lambda: Z4())
self.button2.place(x=100,y=240)
#Кнопка "Задача 5. Знайти відсоток від числа"
self.button2 = tk.Button(self,text="Задача 5", command=lambda: Z5())
self.button2.place(x=100,y=270)
#Кнопка "Задача 6. Створити валютний калькулятор (за курсом НБУ)"
self.button2 = tk.Button(self,text="Задача 6", command=lambda: Z6())
self.button2.place(x=100,y=300)
#Кнопка "Задача 7. Користувач робить депозитний вклад в розмірі a гривень строком на b років під 10 % річних (щороку розмір вкладу збільшиться на 10%)"
self.button2 = tk.Button(self,text="Задача 7", command=lambda: Z7())
self.button2.place(x=100,y=330)
class Z1(tk.Toplevel):
def __init__(self,*args, **kwargs):
tk.Toplevel.__init__(self,*args, *kwargs)
self.title("Задача 1")
self.geometry("900x450")
self.resizable(False, False)
z1l = Label(self, text="Задача 1. Створити програму для розв’язування рівнянь.",font=20).pack()
z1l = Label(self, text="Рівняння типу – Знаходження невідомого доданка (Х – невідомий доданок, Y – відомий доданок, С – сума)",font=14).pack()
z1l= Label(self, text="Алгоритм:",font=12).pack()
z1l= Label(self, text=" Ввести з клавіатури відомий доданок і суму;",font=12).pack()
z1l= Label(self, text=" Визначити невідомий доданок;",font=12).pack()
z1l= Label(self, text=" Вивести невідомий доданок на екран;",font=12).pack()
z1l= Label(self, text=" Вивести рівняння на екран",font=12).pack()
z1l= Label(self, text="",font=12).pack()
#место ввода "Y"
Label(self, text="Y = ",font=30).pack()
EntryY=Entry(self)
EntryY.pack()
#место ввода "C"]
Label(self, text="C = ",font=30).pack()
EntryC=Entry(self)
EntryC.pack()
#место вывода значения "X"]
Label(self, text="X = ",font=30).pack()
EntryX=Entry(self)
EntryX.pack()
def calc():
Y=EntryY.get()
Y=int(Y)
C=EntryC.get()
C=int(C)
result=str(C-Y)
EntryX.delete(0, END)
EntryX.insert(0, result)
#кнопка "Порахувати"
but=Button(self, text='Порахувати')#,command=Calc)
but.pack()
if __name__ == "__main__":
app = Main()
app.mainloop()