我在编程方面很新,所以我不了解很多基础知识。我到处尝试搜索,但没有得到我需要的答案。
在这个网站上我发现了类似的问题,但它适用于Python3
我可以改为python 3解释器,但由于语法原因,我不得不重写代码。
无论如何,我的问题是,我想在文本框中写下文本,我需要将其用于使用(例如打印出来或在linux命令中将其用作名称)。
我尝试了raw_input
,甚至试图添加.get commands
。
.get
对我不起作用,输入或raw_input输入什么都不做,他们不打印文本,我的编程卡住了
我的代码
def filtras():
root = Tk()
root.title("Filtravimas pagal uzklausa")
root.geometry("300x100")
tekstas = Text(root, height=1, width=15).pack(side=TOP)
virsus = Frame(root)
virsus.pack()
apacia = Frame(root)
apacia.pack(side=BOTTOM)
myg1 = Button(virsus, text="Filtruoti", command=lambda: gauti())
myg1.pack(side=BOTTOM)
def gauti():
imti=input(tekstas)
print(imti)
答案 0 :(得分:1)
你的问题是这一行中的一个常见错误:
tekstas = Text(root, height=1, width=15).pack(side=TOP)
.pack
和.grid
等几何方法返回None,None.get不起作用。而是像对帧和按钮那样做。
tekstas = Text(root, height=1, width=15)
tekstas.pack(side=TOP)
现在tekstas.get()和其他Text方法都可以。
此代码未触及2< => 3种语法更改。唯一的问题是名称Tkinter
与tkinter
以及其他模块名称更改。
请阅读MCVEs。 “文本”小部件之后的所有内容都只是与您的问题相关的噪音。
input
和raw_input
从stdin
获取字符,这通常是终端。除了开发和调试之外,不要将它们与GUI程序一起使用,只有在从终端或IDLE或其他IDE运行GUI程序时才使用它们。同上print
。