QComboBox

时间:2016-03-23 00:58:10

标签: python pyside

我有一个与vfx项目相同的文件夹结构。我试图根据文件夹结构制作一个小UI来打开文件。这是我陷入困境的地方:

我有3 QComboBox。我希望他们从目录结构中拉出来。我的目录结构是/mnt/sv01/projects_directory/*projectname/sequences/*seq###/*shot###/comp/filename.comp

星号是更改的文件夹名称,我希望用户在3个单独的组合框中进行选择。

我布置了第一个这样的组合框:

fsm = QtGui.QFileSystemModel()
index = fsm.setRootPath("/mnt/sv01/projects_directory")
self.project_combo.setModel(fsm)
self.project_combo.setRootModelIndex(index)

这会在组合框中正确显示Project文件夹。接下来的部分是我陷入困境的地方。

self.project_combo.activated[str].connect(self.Directory)
def Directory(self,item):
    fsm2 = QtGui.QFileSystemModel()
    index2 = fsm2.setRootPath(os.path.join("/mnt/sv01/projects_directory",item))
    self.seq_combo.setModel(fsm2)
    self.seq_combo.setRootModelIndex(index2)

我对python很新,真的只知道非常非常准确。看起来在这种情况下我无法使用os.path.join,但我需要移动到组合框中的下一个目录。如果我做

index2 = fsm2.setRootPath("/mnt/sv01/projects_directory/" + item + "/")

它返回到/mnt/sv01/projects_directory/*projectname/sequences,其中序列是组合框中的内容,而不是*seq###.

1 个答案:

答案 0 :(得分:0)

好吧,因为它似乎总是发生,我想出了粗暴的做法(我敢肯定)。 我走得不够远。如果我把线放进去 index2 = fsm2.setRootPath("/mnt/sv01/projects_directory/" + item + "/sequences/") 然后它找到正确的文件夹。男孩,根本不干净,但它的工作原理。