【问题标题】:Backslash or Forward Slash in Qt?Qt中的反斜杠还是正斜杠?
【发布时间】:2016-12-13 02:13:01
【问题描述】:

我正在尝试在 Qt 中打开一个文件。我在这个函数中使用了双反斜杠

doc->dynamicCall("Open(QVariant)", "E:\\QT\\build-untitled-Desktop_Qt_5_7_0_MSVC2015_64bit-Debug\\My Question.doc")

它有效。但是,我的目录变量的绝对路径返回这个,它有正斜杠:

"E:/QT/build-untitled-Desktop_Qt_5_7_0_MSVC2015_64bit-Debug/My Question.doc"

它不起作用。错误说:“抱歉,我们找不到您的文件。它可能被移动、重命名或删除了吗?”我尝试了一切,它只适用于双反斜杠。

我知道我必须将\ 转义为\\,但是如何使用我的变量编写此函数?

【问题讨论】:

  • 如果您只是在代码中使用正斜杠会发生什么?
  • 它不起作用。他们找不到我的文件。
  • 那么也许你的路径在某些方面是错误的。好像拼错了。如果您必须使用绝对路径名,这通常也是出现问题的迹象。
  • 我确定我没有拼错任何东西。你介意看看这张图片,也许想知道发生了什么吗?
  • 一般情况下,在 Qt 代码、代码和项目文件中使用正斜杠。仅在 Windows 特定界面需要时转换,如答案中所述。

标签: c++ qt ms-word


【解决方案1】:

我认为toNativeSeparators 功能可能会对您有所帮助。由于您在 Windows 上,它会将正斜杠替换为反斜杠。

代码是这样的:

string path = "E:/QT/build-untitled-Desktop_Qt_5_7_0_MSVC2015_64bit-Debug/My Question.doc";

doc->dynamicCall("Open(QVariant)", QDir::toNativeSeparators(path));

【讨论】:

    猜你喜欢
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2015-08-11
    • 2021-05-29
    • 1970-01-01
    相关资源
    最近更新 更多