我需要创建一个用于选择日志目录的对话框,该对话框允许选择目录,或者如果键入的名称不存在,则允许创建目录。我能够做到其中一个,但不能同时做到两个
使用接受模式QFileDialog.AcceptOpen
,我可以打开目录
使用Accept模式QFileDialog.AcceptSave
,我可以创建目录,但无法打开现有目录
代码段:
def open_or_create_directory(self, log_dir):
"""
open or create a directory
Doesn't work!!!
"""
dialog = QtWidgets.QFileDialog(self, caption='Data Log File Dir')
dialog.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)
dialog.setDirectory(log_dir)
dialog.setFileMode(QtWidgets.QFileDialog.ExistingFiles)
dialog.setOption(QtWidgets.QFileDialog.ShowDirsOnly, True)
dialog.setLabelText(QtWidgets.QFileDialog.Accept, "Select")
if dialog.exec_() == QtWidgets.QFileDialog.Accepted:
logdir = dialog.selectedFiles()
我能找到的最接近的路径是QFileDialog: Selecting directories and files,但我不知道如何在python中实现这一点
当然OP指出的内容取决于操作系统的本机对话,因为在我的桌面管理器(plasma KDE)中,它允许我完成这两项任务,例如,单击一次,它允许我在目录中导航,双击它允许编辑路线,右键单击打开一个菜单,其中一个选项允许创建目录
如果本机对话框存在问题,则可以使用自定义Qt对话框启用QFileDialog::DontUseNativeDialog选项,在该对话框中,您可以单击导航,右键单击将打开一个菜单,其中一个操作允许创建新文件夹选项
如果你认为this link的解是正确的,那么很容易将其转化为Python:
相关问题 更多 >
编程相关推荐