【发布时间】:2016-04-19 13:16:52
【问题描述】:
我目前正在尝试使用 Tkinter 为现有的 python 程序制作 GUI。该程序为用户提供了两个选项,用户必须从中选择接受或拒绝。在使用 Tkinter 之前,选项被放置在终端中并等待 raw_input。 (是/否)。我该如何做到这一点,以便画布文本使用新数据更新并等待用户按钮单击?
为了让我的问题更具体:如何在 Tkinter 主循环运行时运行另一个程序代码并使这两个程序交互?
下面的示例代码。
from Tkinter import *
root = Tk()
root.resizable(width=False, height=False)
root.geometry('{}x{}'.format(500,550))
root.wm_title("Tkinter test")
BtnFrame = Frame (root)
BtnFrame.pack(side = BOTTOM)
BtnFrame.place(y=450, x=20)
canvas_1 = Canvas(root, width = "200", height ="300")
canvas_2 = Canvas(root, width = "250", height ="300")
canvas_1.pack(side = LEFT)
canvas_2.pack(side = RIGHT)
textfield_1 = canvas_1.create_text(100,50)
textfield_2 = canvas_2.create_text(100,50,)
def update_textfiel_1(text):
global textfield_1
canvas_1.delete(textfield_1)
textfield = canvas.create_text(100,50,text = text)
def update_textfiel_2(text):
global textfield_2
canvas_2.delete(textfield_2)
textfield1 = canvas1.create_text(100,50,text = text)
Accept = Button(BtnFrame, text="Accept", width=25)
Decline = Button(BtnFrame, text="Decline", width=25)
Accept.pack(side = LEFT)
Decline.pack(side = RIGHT)
root.mainloop()
【问题讨论】:
-
command构造函数的command选项可能是您想要的。否则events 和Canvas.bind。 -
更新后的文本会是什么?
-
更新后的文本将是原始程序中的循环函数传递给 Tkinter 程序的内容。我试过
command和Canvas.bind都没有成功... @TadhgMcDonald-Jensen
标签: python tkinter tkinter-canvas