【发布时间】:2014-09-09 18:02:56
【问题描述】:
我正在尝试这样当一个值不等于另一个值时,它会绘制一个矩形。这是我的代码。
import tkinter
def a():
c1 = 1
c2 = 2
root = tkinter.Tk()
canvas = tkinter.Canvas(root, width=800, height=600)
def b():
if c1 != c2:
print ("test")
canvas.create_rectangle(100, 100, 500, 500, fill='blue')
root.after(10, b)
root.after(10, b)
a()
如您所见,在函数b 中,如果变量c1 不等于c2(反之亦然),那么它应该是print "test"。但是它没有打印,甚至没有运行绘制矩形代码。
但是,当我在 ifstatement 之前放置另一个虚拟 print 语句时,它会打印出来。
因此我可以判断我的 Not Equals to operand 不起作用,任何人都可以看到我的代码有什么问题吗?
【问题讨论】:
-
您需要将
root.mainloop()添加到您的a()方法的末尾,否则它永远不会绘制应用程序。你也忘了.pack()你的画布小部件。 -
“当我在
if语句之前放置另一个虚拟的print语句时,它会打印出来。” 你确定吗?如果我在def b():和if c1 != c2:之间放置一个打印语句,我根本看不到任何输出。程序立即终止。
标签: python python-3.x tkinter python-3.3