0

Tklinter でボタンを定義しました

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

コメントしたように、解決策は、ventana のクラス定義の前に作成する必要があるクラス SSH の変数を作成することでした。

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

すべてに感謝します。

于 2013-06-07T13:12:01.113 に答える
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 に答える