如何使用另一台PC的信息设置QFileSystemModel?

时间:2015-11-22 13:59:12

标签: python qt pyqt pyqt4 pickle

我正在做一个大学项目,我们需要在本地网络中设置类似Dropbox的服务。我可以在一个终端轻松地做到这一点,但是对于一些额外的点我正在尝试为它设置一个QtPy ui。

我的一个小部件是带有QFileSystemModel的QTreeView,我想要可视化用户在“dropbox”上保存的文件和文件夹。问题是,信息和文件夹本身在另一台计算机中。我已经尝试将小部件从一台PC发送到另一台,但你不能腌制小部件。我也试过发送'self.model'并稍后添加它,但它没有用。有解决方案吗这是小部件代码:

class MyFolder(*form):

    def __init__(self):
        super().__init__()
        self.client = ""
        self.setupUi(self)
        self.model = QtGui.QFileSystemModel()
        self.model.setRootPath("./Archivos/MyFolder")
        self.myFolder.setModel(self.model)
        self.myFolder.setRootIndex(self.model.index("./Archivos/MyFolder"))
        self.addButton.clicked.connect(self.addDialog)

1 个答案:

答案 0 :(得分:4)

简短的回答是你不能直接这样做。如文件所述:

  

QFileSystemModel类为本地提供数据模型   文件系统

  • 另一方面,只要底层的O.S可以将远程文件系统表示为本地文件系统,QT就可以将其显示为具有QFileSystemModel的本地文件系统。

可以表示本地的每个远程文件系统(使用HTTP,(s)FTP,SMB(CIFS; Samba),SSH协议和其他可能的源等协议)也可以表示为一个QFileSystemModel。

例如,在Windows上,您可以在专用驱动器盘符上“安装”远程文件系统(例如,通过使用SMB共享)。在这种情况下,远程文件系统完全可以作为本地系统使用,并且对于使用已安装的本地驱动器的任何应用程序都是透明的。

  • 另一种解决方案是序列化远程文件系统,并在本地系统上以explained here on SO取消序列化。