Pygtk挂载文件通过sftp没有用户名和密码对话框?

时间:2015-05-05 16:04:56

标签: gtk sftp pygtk

我正在尝试通过sftp在pygtk中挂载一个目录。由于我已经在变量中存储了用户名和密码,因此我不想让对话框询问用户名和密码。我使用以下代码:

def error_printer(o,r)
    try:
        o.mount_enclosing_volume_finish(r)
    except gio.Error, e:
        print str(e.message),"error code:", e.code

myfile = gio.File("sftp://" + my_ip_address)
op = gtk.MountOperation()
op.set_username(my_username)
op.set_password(my_password)
my_file.mount_enclosing_volume(op, error_printer)

当我运行时,即使我已经设置了用户名和密码,也会出现一个询问用户名和密码的对话框。

如何使对话框永不显示并使用我设置的用户名和密码?

(我正在使用pygtk 2.16)

1 个答案:

答案 0 :(得分:0)

解决了!
不得不像these guys:

那样做
class DupMountOperation(gio.MountOperation):
"""A simple MountOperation that grabs the password from the environment
   or the user.
"""
def __init__(self, backend):
    gio.MountOperation.__init__(self)
    self.backend = backend
    self.connect('ask-password', self.ask_password)

def ask_password(self, *args, **kwargs):
    self.set_password(self.backend.get_password())
    self.reply(gio.MOUNT_OPERATION_HANDLED)
相关问题