Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QFile错误:设备未打开_Qt_Qfile - Fatal编程技术网

Qt QFile错误:设备未打开

Qt QFile错误:设备未打开,qt,qfile,Qt,Qfile,我有一个密码: int actualSize = 8; QFile tableFile("C:\\Users\\Ms\\Documents\\L3\\table"+QString::number(actualSize)+".txt"); QTextStream in(&tableFile); QString oneLine; oneLine.append(in.readAll()); if(tableFile.exists()) { messageLabel->setTex

我有一个密码:

int actualSize = 8;
QFile tableFile("C:\\Users\\Ms\\Documents\\L3\\table"+QString::number(actualSize)+".txt");
QTextStream in(&tableFile);
QString oneLine;
oneLine.append(in.readAll());
if(tableFile.exists())
{
    messageLabel->setText(oneLine);
}else
{
    messageLabel->setText("Not open");
}
C:\Users\Ms\Documents\L3\
文件夹中,我有一个“table8.txt”文件。但是
messageLabel
(它是一个QLabel)将有一个“未打开”文本,
oneLine
为空,
tableFile.exists()
为false,并且我收到一个设备未打开警告/错误

我试过相对路径,比如

QFile tableFile("table"+QString::number(actualSize)+".txt");

但是我提出的方法都不好。

您应该能够对所有QFile相关路径使用
/
分隔符阅读前打开文件,完成后关闭

int actualSize = 8;
QFile tableFile("C:/Users/Ms/Documents/L3/table"+QString::number(actualSize)+".txt");
if(tableFile.exists() && tableFile.open(QIODevice::ReadOnly | QIODevice::Text))
{
    QTextStream in(&tableFile);
    QString oneLine;
    oneLine.append(in.readAll());
    messageLabel->setText(oneLine);
    tableFile.close();
} else
{
    messageLabel->setText("Not open");
}

调用
open
method?tableFile.open(QIODevice::ReadOnly | QIODevice::Text)的位置在哪里;我添加了这一行,它成功了,谢谢