如何在TKINTER GUI窗口python中从类的函数打印输出?
import tkinter as tk
class Math:
def calcArea(self):
pass
def show(self):
pass
class Triangle(Math):
def __init__(self, height=2, base=3):
self.height = height
self.base = base
self.area = self.calcArea()
def getHeight(self):
return self.height
def getBase(self):
return self.base
def setHeight(self, height):
self.height = height
def setBase(self, base):
self.base = base
def calcArea(self):
self.area = (height*base) / 2
return self.area
def show(self):
self.calcArea()
print("Area of Triangle: {:.2f}".format(self.area))
class Rectangle:
def __init__(self, length=4, width=5):
self.length = length
self.width = width
self.area = self.calcArea()
def getLength(self):
return self.length
def getWidth(self):
return self.width
def setLength(self, length):
self.length = length
def setWidth(self, width):
self.width = width
def calcArea(self):
self.area = length*width
return self.area
def show(self):
self.calcArea()
print("Area of Rectangle: {:.2f}".format(self.area))
class Parallelogram:
def __init__(self, height=6, base=7):
self.height = height
self.base = base
self.area = self.calcArea()
def getHeight(self):
return self.height
def getBase(self):
return self.base
def setHeight(self, height):
self.height = height
def setBase(self, base):
self.base = base
def calcArea(self):
self.area = height*base
return self.area
def show(self):
self.calcArea()
print("Area of Parallelogram: {:.2f}".format(self.area))
def main():
global var
output = []
shapeName = None
results = ''
for _ in range(8):
randomChoice = random.randint(1,3)
if randomChoice == 1:
output.append(Triangle())
elif randomChoice == 2:
output.append(Rectangle())
elif randomChoice == 3:
output.append(Parallelogram())
for result in output:
result.display()
if isinstance(shape, Triangle):
shapeName = "Triangle"
if isinstance(shape, Rectangle):
shapeName = "Rectangle"
if isinstance(shape, Parallelogram):
shapeName = "Parallelogram"
results += "Area of {}: {}".format(shapeName, result.show())
var.set(results)
master = tk.Tk()
master.title("Area")
master.geometry("300x250")
btn = tk.Button(master, text="Show Output", command=main)
btn.pack()
var = tk.StringVar(master, '')
Label = tk.Label(master, textvariable=var)
Label.pack()
master.mainloop()
上面是我想知道的代码,以便如何将结果打印在窗口中。我不想制作一个按钮,结果将在闲置/视觉工作室代码/pycharm中打印结果,而是想在GUI窗口中显示计算。上面的代码是随机打印结果8次,但是我能做什么使其在GUI窗口中打印结果。我尝试制作按钮,但是在我单击按钮后,按钮仅在闲置下执行结果。
import tkinter as tk
class Math:
def calcArea(self):
pass
def show(self):
pass
class Triangle(Math):
def __init__(self, height=2, base=3):
self.height = height
self.base = base
self.area = self.calcArea()
def getHeight(self):
return self.height
def getBase(self):
return self.base
def setHeight(self, height):
self.height = height
def setBase(self, base):
self.base = base
def calcArea(self):
self.area = (height*base) / 2
return self.area
def show(self):
self.calcArea()
print("Area of Triangle: {:.2f}".format(self.area))
class Rectangle:
def __init__(self, length=4, width=5):
self.length = length
self.width = width
self.area = self.calcArea()
def getLength(self):
return self.length
def getWidth(self):
return self.width
def setLength(self, length):
self.length = length
def setWidth(self, width):
self.width = width
def calcArea(self):
self.area = length*width
return self.area
def show(self):
self.calcArea()
print("Area of Rectangle: {:.2f}".format(self.area))
class Parallelogram:
def __init__(self, height=6, base=7):
self.height = height
self.base = base
self.area = self.calcArea()
def getHeight(self):
return self.height
def getBase(self):
return self.base
def setHeight(self, height):
self.height = height
def setBase(self, base):
self.base = base
def calcArea(self):
self.area = height*base
return self.area
def show(self):
self.calcArea()
print("Area of Parallelogram: {:.2f}".format(self.area))
def main():
global var
output = []
shapeName = None
results = ''
for _ in range(8):
randomChoice = random.randint(1,3)
if randomChoice == 1:
output.append(Triangle())
elif randomChoice == 2:
output.append(Rectangle())
elif randomChoice == 3:
output.append(Parallelogram())
for result in output:
result.display()
if isinstance(shape, Triangle):
shapeName = "Triangle"
if isinstance(shape, Rectangle):
shapeName = "Rectangle"
if isinstance(shape, Parallelogram):
shapeName = "Parallelogram"
results += "Area of {}: {}".format(shapeName, result.show())
var.set(results)
master = tk.Tk()
master.title("Area")
master.geometry("300x250")
btn = tk.Button(master, text="Show Output", command=main)
btn.pack()
var = tk.StringVar(master, '')
Label = tk.Label(master, textvariable=var)
Label.pack()
master.mainloop()
Above is my code for what I want to know for how can I just print the result in the window. I don't want to make a button where the result will print in Idle/Visual Studio Code/Pycharm instead I want to show the calculate in gui window. The above code is printing the result randomly 8 times, but what can i do make it print the result in GUI window. I tried making the button, but the button was only executing the result in Idle after I would click on the button.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
基本上与Aria的答案相同,但输出结果到TKINTER应用程序
Basically is the same as aria's answer but outputs results to the tkinter app
在这里,您在第107行上有
shapename
和result.calcarea()
。然后,您需要将结果放在tkinter上。玩得开心 :)here you have the
shapeName
andresult.calcArea()
on the 107th line. Then you need to put the result to tkinter. Have fun :)