我在tkinter上阅读了一些教程(基础),并学习了如何创建一个mainloop并为其添加gui元素。还学习了如何将操作绑定到按钮小部件。
现在我想这样做:
例如: 我在控制台上用参数编写命令,并且一些图形元素被添加到画布中(并且画布在之后更新)。
是否有可能,可能是相关的? 你能指出一个你认为最合理的方向吗?
答案 0 :(得分:0)
这是一个通过标准input
功能从控制台获取用户输入的简单演示。这种技术有点笨重,因为我们必须通过单击Button(或其他一些GUI事件)明确告诉Tkinter获取输入字符串,但这对您的应用程序来说可能不是什么大问题。
import tkinter as tk
root = tk.Tk()
stuff = tk.StringVar()
display = tk.Label(root, textvariable=stuff)
display.pack()
def get_input():
s = input("CMD: ")
stuff.set(s)
tk.Button(root, text="Get input", command=get_input).pack()
root.mainloop()
当您点击"Get input"
按钮时," CMD:"提示将打印在控制台窗口中。输入输入后,字符串将复制到Label。如果在输入输入行之前再次单击该按钮,将会发生Bad Things™。 :)
答案 1 :(得分:0)
想出了这个:
from Tkinter import *
import random
root = Tk()
width = 800
height = 600
def key(event):
s = raw_input("CMD: ")
if s == 'quit':
root.destroy()
if s == 'l':
x1 = random.randint(0,width)
x2 = random.randint(0,width)
y1 = random.randint(0,height)
y2 = random.randint(0,height)
frame.create_line(x1,y1,x2,y2)
frame.focus_force()
frame = Canvas(root, width=width, height=height)
frame.bind("<Key>", key)
frame.pack()
frame.focus_set()
root.mainloop()
通过这种方式它有点复杂,因为在控制台上输入内容之前,我必须将焦点重新点击其窗口。也许直接从Tkinter读取命令然后打开用于设置命令参数的对话框会更好。