Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用按钮从Tkinter条目搜索框中获取文本_Python_Tkinter_Box_Tkinter Entry - Fatal编程技术网

Python 使用按钮从Tkinter条目搜索框中获取文本

Python 使用按钮从Tkinter条目搜索框中获取文本,python,tkinter,box,tkinter-entry,Python,Tkinter,Box,Tkinter Entry,我对python非常陌生,我刚开始学习Tkinter。我想做一些自我锻炼的档案。到目前为止还不错,但我遇到了一个问题(我将发布整个代码,之后我将继续解决这个问题,以便您可以看到我想要做什么,以及我不知道如何做) 按下“安装”按钮时出错。“未定义cmd1” 如您所见,我希望它从我在此处添加的搜索框条目中获取文本: cmd1 = StringVar() mEntry = Entry(self,textvariable=cmd1).pack() installButton = Butto

我对python非常陌生,我刚开始学习Tkinter。我想做一些自我锻炼的档案。到目前为止还不错,但我遇到了一个问题(我将发布整个代码,之后我将继续解决这个问题,以便您可以看到我想要做什么,以及我不知道如何做)

按下“安装”按钮时出错。“未定义cmd1”

如您所见,我希望它从我在此处添加的搜索框条目中获取文本:

  cmd1 = StringVar()
  mEntry = Entry(self,textvariable=cmd1).pack()

  installButton = Button(self, text="Install", command=self.system_install)
  installButton.place(x=50, y=150)

我知道我的条目位于
def init_窗口(self):
下,但我如何从那里获取
cmd1
的值?可能吗?如果没有或太麻烦,类似的替代方案是什么?

系统安装方法中,您无法访问
cmd1
变量,因为您没有将其附加到对象实例。您刚刚在
init\u窗口
方法中将其创建为局部变量。要解决这个问题,请在每个位置使用
self.cmd1
,使其成为一个实例变量,所有方法都可以通过
self
参数看到它

另一个问题是
mEntry
将被定义为
None
,因为
pack()
方法不返回任何内容。我想你的意思应该是:

self.cmd1 = StringVar()
self.mEntry = Entry(self,textvariable=self.cmd1)
self.mEntry.pack()

对非常感谢你。在我写完之后,我意识到我真正想要的是什么,我用谷歌搜索了一下,并尝试了更多的东西。cmd1是init_窗口的局部变量,函数system_安装无法了解它。你的解决方案很有效。安装到系统中的cmd1、mEntry和self.cmd1。谢谢你的课!
  cmd1 = StringVar()
  mEntry = Entry(self,textvariable=cmd1).pack()

  installButton = Button(self, text="Install", command=self.system_install)
  installButton.place(x=50, y=150)
self.cmd1 = StringVar()
self.mEntry = Entry(self,textvariable=self.cmd1)
self.mEntry.pack()