需要一个用户可以输入多行文字的简单GUI。这是我的代码如何从表单中获取值?我是否还必须手动创建按钮? 我喜欢gooey模块的简单性,但它似乎无法制作多行文本框?什么是完成主题的最佳方式?
import tkinter as tk
root=tk.Tk()
text=tk.Text(root)
text.pack()
root.mainloop()
答案 0 :(得分:0)
像这样( Python2.7 ):
from Tkinter import *
root=Tk()
text=Text(root)
text.pack()
gui = {}
gui["text"] = text
def keyUp(e):
print e.keycode
oldText = gui["text"].get(1.0,END)
oldText = oldText[:-1] if (oldText[-1] == u"\n") else oldText
if e.keycode in (36,104) :
gui["text"].delete(1.0,END)
if ord(oldText[-1]) != 10 :
newText = oldText + "\n"
gui["text"].insert("1.0",newText)
else :
gui["text"].insert("1.0",oldText)
gui["text"].update()
gui["text"].insert(1.0,u"Re hello\nWorld\n")
gui["text"].bind("<KeyRelease>", lambda event: keyUp(event))
root.mainloop()
取消键盘上的所有新行字符。(我得到36(alpha),104(numlock))。某些操作系统可能能够在写入框中添加行(我的大Enter键)。如果最后一个字符是新行字符oldText = oldText[:-1] if (oldText[-1] == u"\n") else oldText
,则忽略。如果不忘记,则无法添加空行!