【问题标题】:QIODevice::read(QFile, path): device not openQIODevice::read(QFile, path): 设备未打开
【发布时间】:2020-07-13 07:30:07
【问题描述】:

我是 qt 的新手,我正在尝试读取文本文件并将其放入文本浏览器中。我创建了按钮和文本浏览器,当我单击按钮时,我希望将文件的内容放入文本浏览器。这是在主窗口上使用的方法:

void MainWindow::on_pushButton_clicked() {
QFile file(C:\\Users\\branda\\Desktop\\Tools.txt");

if(!file.open(QIODevice::ReadOnly))
    QMessageBox::information(0, "info", file.errorString());

QTextStream in(&file);

ui->textBrowser->setText(in.readAll()); }

错误信息:“QIODevice::read (QFile, "??C:\Users\branda\Desktop\Tools.txt"): device not open”。

消息框显示:“文件名、目录名或卷标语法不正确”。 不是,因为我从文件属性中复制了路径。

main.cpp 文件仍与创建时相同。

【问题讨论】:

  • 您的文件路径缺少引号,但我认为这不是您的问题,因为它可能无法编译。此外,错误消息在路径中有两个问号这一事实让我认为您不小心粘贴了一些不可打印的字符。试试这个:删除整个路径并手动重新输入,这样您就可以确切地知道那里有哪些字符。
  • 是的,缺少的报价是一个错字,我很抱歉。所以:我重写了路径,它就成功了!

标签: c++ qt qt-creator


【解决方案1】:

你在 dir 字符串的开头错过了一个 ";

QFile file(C:\\Users\\branda\\Desktop\\Tools.txt");

试试这个:

   QFile file("C:/Users/branda/Desktop/Tools.txt");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    相关资源
    最近更新 更多