簡體   English   中英

TKinter數學輸出到canvas.create_text

[英]TKinter math output to canvas.create_text

我正在嘗試計算公式並將其輸出顯示為TKinter中的表格。 由於它不起作用,我只是想獲得一個簡單的結果並將其打印到畫布小部件。 當它開始工作時,我將完成整個貸款公式。 因為它是我在GUI或控制台中沒有輸出。 甚至可以將計算結果作為文本放置在canvas.create_text中嗎?

from tkinter import * # Import tkinter

width = 500
height = 500

class MainGUI:
    def __init__(self):
        window = Tk() # Create a window
        window.title(" Loan Schedule ") # Set title

        frame1 = Frame(window)
        frame1.grid(row = 1, column = 1)

        Label(frame1, text = " Loan Amount ").grid(row = 1, column = 1, sticky = W)
        self.v1 = StringVar()
        Entry(frame1, textvariable = self.v1, justify = RIGHT).grid(row = 1, column = 2)

        Label(frame1, text = " Years ").grid(row = 1, column = 3, sticky = W)
        self.v2 = StringVar()
        Entry(frame1, textvariable = self.v2, justify = RIGHT).grid(row = 1, column = 4)

        btCalculate = Button(frame1, text = " Calculate ", command = self.calculate()).grid(row = 1, column = 5, sticky = E)

        frame2 = Frame(window)
        frame2.grid(row = 2, column = 1)

        self.canvas = Canvas(frame2, width = width, height = height, bg = "white")
        self.canvas.pack()

        self.canvas.create_text(25, 25, text = self.calculate(), tags = "text")       

        window.mainloop() # Create an event loop

    def calculate(self):
        result = self.v1.get() + self.v2.get()
        print(result)
        return result

MainGUI()

command需要不帶()的函數名

command = self.calculate

所以現在可以了

from tkinter import * # Import tkinter

width = 500
height = 500

class MainGUI:
    def __init__(self):
        window = Tk() # Create a window
        window.title(" Loan Schedule ") # Set title

        frame1 = Frame(window)
        frame1.grid(row = 1, column = 1)

        Label(frame1, text = " Loan Amount ").grid(row = 1, column = 1, sticky = W)
        self.v1 = StringVar()
        Entry(frame1, textvariable = self.v1, justify = RIGHT).grid(row = 1, column = 2)

        Label(frame1, text = " Years ").grid(row = 1, column = 3, sticky = W)
        self.v2 = StringVar()
        Entry(frame1, textvariable = self.v2, justify = RIGHT).grid(row = 1, column = 4)

        btCalculate = Button(frame1, text = " Calculate ", command = self.calculate).grid(row = 1, column = 5, sticky = E)

        frame2 = Frame(window)
        frame2.grid(row = 2, column = 1)

        self.canvas = Canvas(frame2, width = width, height = height, bg = "white")
        self.canvas.pack()

        self.canvas.create_text(55, 10, text = self.add_text(), tags = "text")       

        window.mainloop() # Create an event loop

    def calculate(self):
        result = int(self.v1.get()) + int(self.v2.get())
        self.canvas.create_text(25, 25, text = result, tags = "text")          
        print(result)
        return result

    def add_text(self):
        return "HELLO WORLD"

MainGUI()

順便說一句:下面的一行意味着-運行self.calculate()並將結果分配給command

command = self.calculate()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM