Tkinter不会正确显示变量

时间:2017-05-04 14:15:15

标签: python tkinter calculator

我是Tkinter的新手,我只是想为我的多重性计算器制作一个GUI。当我告诉它打印多重性时,它给了我一个看似随机的数字串。有什么帮助吗?

import sys
import tkinter
from tkinter import *

def Start():
    numberOneList = []
    numberTwoList = []
    multiples = 10000
    iterations = 0

    multiplicity = int(entry3.get())
    numberOne = int(entry1.get())
    numberTwo = int(entry2.get())

    for i in range(multiples):
        mNumberOne = numberOne * i
        numberOneList.append(mNumberOne)
        mNumberTwo = numberTwo * i
        numberTwoList.append(mNumberTwo)
    text1.insert(INSERT, "\n")
    text1.insert(INSERT, "Common multiplicities:")
    text1.insert(INSERT, "\n")
    text1.insert(INSERT, "Calculating...")
    text1.insert(INSERT, "\n")
    for i in numberOneList:
        for a in numberTwoList:
            if a == i:
                if a != 0:
                    text1.insert(INSERT, int(entry1.get()), "x", i / int(entry1.get()), "=", i)
                    text1.insert(INSERT, int(entry2.get()), "x", a / int(entry2.get()), "=", a)
                    text1.insert(INSERT, "\n")
                    iterations += 1
                    if iterations == multiplicity:
                        sys.exit()
                    else:
                        continue
                else:
                    continue
            else:
                continue

master = tkinter.Tk()
master.title("Multiplicity Calculator")

text1 = Text(master)
text1.pack(side = BOTTOM)

label1 = Label(master, text = "Number 1: ")
label1.pack(side = LEFT)

entry1 = Entry(master, bd = 5, textvariable = IntVar())
entry1.pack(side = LEFT)

label2 = Label(master, text = "Number 2: ")
label2.pack(side = LEFT)

entry2 = Entry(master, bd = 5, textvariable = IntVar())
entry2.pack(side = LEFT)

label3 = Label(master, text = "Number of Multiplicities")
label3.pack(side = LEFT)

entry3 = Entry(master, bd = 5, textvariable = IntVar())
entry3.pack(side = LEFT)

button1 = Button(master, text = "Calculate", width = 8, command = Start)
button1.pack()



master.mainloop()

问题在于行

text1.insert(INSERT, int(entry1.get()), "x", i / int(entry1.get()), "=", i)
text1.insert(INSERT, int(entry2.get()), "x", a / int(entry2.get()), "=", a)

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

不是使用逗号,而是将它们连接成一个参数。

text1.insert(INSERT, str(int(entry1.get())) + "x" + str(i / int(entry1.get())) + "=" + str(i))
  

您可以使用可选的第三个参数来附加插入方法   新插入文本的一个或多个标签

text.insert(INSERT, "link", ("a", "href"+href))
相关问题