如何使用另一台 PC 的信息设置 QFileSystemModel?
How can I set a QFileSystemModel with information from another PC?
我正在做一个大学项目,我们需要在本地网络中设置类似保管箱的服务。我可以在终端中轻松完成,但为了获得一些额外的好处,我正在尝试为其设置 QtPy ui。
我的一个小部件是带有 QFileSystemModel 的 QTreeView,我想在其中可视化用户保存在其 "dropbox" 上的文件和文件夹。问题是,信息和文件夹本身在另一台计算机上。我试过将小部件从一台电脑发送到另一台电脑,但你不能腌制小部件。我也试过发送 '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
- 另一方面,只要底层 O.S 可以将远程文件系统表示为本地文件系统,QT 就可以使用 QFileSystemModel 将其显示为本地文件系统。
每个可以在本地表示的远程文件系统(使用 HTTP、(s)FTP、SMB(CIFS;Samba)、SSH 协议和可能的协议)其他来源),也可以用 QFileSystemModel 表示。
例如,在 Windows 上,您可以 "mount" 专用驱动器号上的远程文件系统(例如,通过使用 SMB 共享)。在这种情况下,远程文件系统与本地文件系统完全一样可用,并且它对使用已安装本地驱动器的任何应用程序都是透明的。
- 另一种解决方案是序列化远程文件系统并在本地系统上将其反序列化为 explained here on SO。
我正在做一个大学项目,我们需要在本地网络中设置类似保管箱的服务。我可以在终端中轻松完成,但为了获得一些额外的好处,我正在尝试为其设置 QtPy ui。
我的一个小部件是带有 QFileSystemModel 的 QTreeView,我想在其中可视化用户保存在其 "dropbox" 上的文件和文件夹。问题是,信息和文件夹本身在另一台计算机上。我试过将小部件从一台电脑发送到另一台电脑,但你不能腌制小部件。我也试过发送 '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
- 另一方面,只要底层 O.S 可以将远程文件系统表示为本地文件系统,QT 就可以使用 QFileSystemModel 将其显示为本地文件系统。
每个可以在本地表示的远程文件系统(使用 HTTP、(s)FTP、SMB(CIFS;Samba)、SSH 协议和可能的协议)其他来源),也可以用 QFileSystemModel 表示。
例如,在 Windows 上,您可以 "mount" 专用驱动器号上的远程文件系统(例如,通过使用 SMB 共享)。在这种情况下,远程文件系统与本地文件系统完全一样可用,并且它对使用已安装本地驱动器的任何应用程序都是透明的。
- 另一种解决方案是序列化远程文件系统并在本地系统上将其反序列化为 explained here on SO。