为什么QFileDialog使用斜杠而不是反斜杠?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么QFileDialog使用斜杠而不是反斜杠?相关的知识,希望对你有一定的参考价值。

为什么“”和“/”是混合的?

os.getcwd()发出反斜杠字符串。

另一方面,QFileDialog发出正斜杠字符串。

为什么?

请执行此示例代码。

from PySide import QtGui
from PySide import QtCore
import sys
import os

class DirectoryPrinter(QtGui.QWidget):
    def __init__(self,parent=None):
        super(DirectoryPrinter,self).__init__(parent=None)

        self.filedialog_pushbutton = QtGui.QPushButton("filedialog",self)
        self.connect(self.filedialog_pushbutton,QtCore.SIGNAL("clicked()"),self.filename_getter)

    def filename_getter(self):
        print("from os.getcwd()",os.getcwd())
        filename = QtGui.QFileDialog.getOpenFileName(self,"Select your file",os.path.expanduser("~"))[0]
        print("from QFileDialog",filename)


def main():
    try:
        QtGui.QApplication([])
    except Exception as e:
        print(22,e)
    directoryprinter = DirectoryPrinter()
    directoryprinter.show()

    sys.exit(QtGui.QApplication.exec_())
if __name__ == "__main__":
    main()

结果(在我看来)

来自os.getcwd()J:

来自QFileDialogC:/Users/******/setup.py

答案

这是因为QFileDialog uses forward slashes regardless of OS. This makes it easier to write path handling code

您可以使用os.path.normpath将正斜杠转换为Windows上路径中的反斜杠。

以上是关于为什么QFileDialog使用斜杠而不是反斜杠?的主要内容,如果未能解决你的问题,请参考以下文章

为啥顺风 css 类名中有反斜杠?

你能告诉我而不是python中的反斜杠“\”,还有其他可能性吗? [复制]

删除C#变体中的单个反斜杠

斜杠/和反斜杠 的区别

斜杠/和反斜杠的区别

路径中 斜杠/和反斜杠 的区别