我已经用Tklinter定义了一个Button
class ventanapp(Tk):
def initialize(self):
self.grid()
self.entry = Entry(self)
msg = Message(text=' SSH - Ingresar IP ->')
self.entry.grid(column=0,row=0,sticky='EW')
button = Button(self,text=u"realizar la conexion",command=ssh.crear_ssh())
button.grid(column=1,row=0)
但是当我从另一个班级打电话给command=ssh.crear_ssh()
时
class ssh():
def crear_ssh():
print('PONER ACA EL CODIGO DE LA CONEXION')`
我收到错误:“未定义全局名称'ssh'”
有什么想法吗?谢谢!
答案 0 :(得分:0)
我不确定你的项目是如何布局的,但是:
class ventanapp(Tk):
def initialize(self):
self.grid()
self.entry = Entry(self)
msg = Message(text=' SSH - Ingresar IP ->')
self.entry.grid(column=0,row=0,sticky='EW')
#note the lambda below, so the method doesn't run until the button is clicked
button = Button(self,text=u"realizar la conexion",command=lambda: ssh.crear_ssh)
button.grid(column=1,row=0)
在同一档案的其他地方:
class ssh():
def crear_ssh(self): #added 'self' to the args
print('PONER ACA EL CODIGO DE LA CONEXION')`
答案 1 :(得分:0)
如评论所述,解决方案是创建类的变量,应该在ventana的类定义之前创建SSH。
ssh = ssh() button = Button(self,text = u“realizar la conexion”,command = lambda:ssh.crear_ssh())
非常感谢所有人。
答案 2 :(得分:0)
创建所有变量的顺序非常重要!
命令= ssh.crear_ssh()
应该是第一个!
此致