python - 如何使用另一台电脑的信息设置 QFileSystemModel?

标签 python qt pyqt pyqt4 pickle

我正在做一个大学项目,我们需要在本地网络中设置类似保管箱的服务。我可以在终端中轻松完成此操作,但为了一些额外的好处,我尝试为其设置一个 QtPy ui。

我的小部件之一是带有 QFileSystemModel 的 QTreeView,我想在其中可视化用户保存在其“保管箱”上的文件和文件夹。问题是,信息和文件夹本身位于另一台计算机上。我尝试过将小部件从一台电脑发送到另一台电脑,但您无法 pickle 小部件。我还尝试发送“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)

最佳答案

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

The QFileSystemModel class provides a data model for the local filesystem

  • 另一方面,只要底层操作系统可以将远程文件系统表示为本地文件系统,QT 就可以使用 QFileSystemModel 将其显示为本地文件系统。

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

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

  • 另一个解决方案是序列化远程文件系统并在本地系统上将其取消序列化为 explained here on SO .

关于python - 如何使用另一台电脑的信息设置 QFileSystemModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33855592/

相关文章:

python - 我可以导入 CSV 文件并自动推断分隔符吗?

python - 防止 Pandas 将 None 读作 Nan

qt - 使用 QObject 代替容器

python - PySide 如何获取 QWebInspector 相同的窗口

python - 更改事件键上的光标形状

qt - 顶级窗口的非像素化圆角

Python:比较带有重音字符的字符串不起作用

python - 在进一步的 url 中抓取

qt - 如何在 View (PyQt/PySide/Qt)中实现富文本编辑器?

python - 尽管调用了 show() ,但插入的选项卡未显示在 QTabWidget 中