2012-02-19 137 views
-2

我正在嘗試編寫文本編輯器。我無法打開文件。爲什麼?這裏是我的代碼:C++ Qt無法打開文件

void MainWindow::readfromfile(){ 
QFile inputFile(":/text.txt"); 
inputFile.open(QIODevice::ReadOnly); 
QTextStream in(&inputFile); 
QString line = in.readAll(); 
inputFile.close(); 
ui->textEdit->setPlainText(line); 
QTextCursor cursor = ui->textEdit->textCursor(); 
cursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, 1); 

} 

void MainWindow::on_actionOpen_triggered() 
{ 
    connect(ui->actionOpen,SIGNAL(triggered()),ui->textEdit,SLOT(readfromfile())); 
} 
+0

「它不起作用」 - 意味着什麼?崩潰?空'線'?錯誤的數據? – 2012-02-19 05:52:51

+1

如果插槽是在MainWindow中定義的,插槽連接不應該是'this'而不是'ui-> textEdit'嗎? – ChrisV 2012-02-19 05:57:48

+0

@MichaelBurr這意味着當我點擊時,沒有任何反應。 – ddacot 2012-02-19 06:05:34

回答

1

首先,似乎你使用的是文本文件,所以它可能是值得指定,當你打開文件:

inputFile.open(QIODevice::ReadOnly | QIODevice::Text); 

然後再檢查open()調用的輸出:

bool ok = inputFile.open(QIODevice::ReadOnly || QIODevice::Text); 
if (!ok) qWarning() << "Cannot open file"; 

如果文件無法打開,請檢查文件路徑是否正確。

+0

當我把這個:inputFile.open(QIODevice :: ReadOnly || QIODevice :: Text); ,它給我的錯誤,http://img535.imageshack.us/img535/2172/screenshot20120218001.png – ddacot 2012-02-19 06:16:32

+1

應該只有1 |在打開的語句中.inputFile.open(QIODevice :: ReadOnly | QIODevice :: Text); – drescherjm 2012-02-19 06:19:56

+0

@drescherjm謝謝。 – ddacot 2012-02-19 06:27:29