0

我用 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'”

有任何想法吗?谢谢!

4

3 回答 3

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')`
于 2013-06-06T18:46:52.047 回答
0

正如评论的那样,解决方案是创建一个类 SSH 的变量,应该在 ventana 的类定义之前创建。

ssh = ssh() button = Button(self,text=u"realizar la conexion",command=lambda: ssh.crear_ssh())

非常感谢大家。

于 2013-06-07T13:12:01.113 回答
0

创建所有变量的顺序非常重要!

命令=ssh.crear_ssh()

应该是第一!

问候

于 2013-06-17T14:36:35.127 回答