开放式有两个插槽在我的gui关闭。 当我打开文件时,其内容显示在文本编辑器中,然后我按下关闭按钮更改将保存到文件。
但现在当我再次按下,打开&重新加载相同的文件。文本编辑器,空白编辑器中没有显示任何内容。
为什么文件没有重新加载?
private:
Ui::MainWindow *ui;
QFile file;
QTextStream out;
QString url; // the url of the file
void MainWindow::on_actionOpen_triggered()
{
QString openfileurl = QFileDialog::getOpenFileName();
if(openfileurl.isEmpty() || openfileurl == url) return;
file.setFileName(openfileurl);
//if(file.open(QIODevice::ReadOnly|QIODevice::Text))
if(file.open(QIODevice::ReadWrite|QIODevice::Text))
{
url = openfileurl;
ui->textEdit->setPlainText(QString::fromUtf8(file.readAll()));
}
//Set file to -- Qtextstream
out.setDevice(&file);
}
void MainWindow::on_actionClose_triggered()
{
//Set file to -- Qtextstream
out << ui->textEdit->toPlainText();
file.close();
ui->textEdit->clear();
}
答案 0 :(得分:0)
试试这种方式
void MainWindow::on_actionClose_triggered()
{
//Set file to -- Qtextstream
out << ui->textEdit->toPlainText();
file.close();
ui->textEdit->clear();
uri.clear();
}
我认为在进行此检查之前,您应该清除 uri :
if(openfileurl.isEmpty() || openfileurl == url) return;
openfileurl == url
时它会爆炸。如果你没有清除 uri ,它肯定会确定。你在这里:
重新加载相同的文件
...具有相同的内容......所以if语句变为 true 而返回这就是为什么下面的代码没有第二次执行。