2009-10-18 48 views
0

與外部連通編輯我Mac OS X上問題的Qt4

我使用這個代碼適於從C++編程使用Qt 4,第2版編寫的命令行腳本的Qt4(使用QCoreApplication)。頁。 313:

QTemporaryFile outFile; 
if (!outFile.open()) 
    return; 

QString fileName = outFile.fileName(); 
QTextStream out(&outFile); 
out << initial_text; 
outFile.close(); 

QProcess::execute(editor, QStringList() << fileName); 

QFile inFile(fileName); 
if (!inFile.open(QIODevice::ReadOnly)) 
    return; 

QTextStream in(&inFile); 
QString text = in.readAll(); 

std::cout << text.toStdString() << std::endl;

當上述運行與編輯器被設置爲「在/ usr /斌/ VIM」,「Vim:警告:輸入是不是從終端」被印刷,然後VIM啓動的初始文本(字符串initial_text);但是,我無法編輯或退出,因爲按下escape鍵會在光標位置打印一個藍色^ [與其他所有鍵相似。

當編輯器被設置爲「/ Users/jason/bin/mate」(TextMate命令行工具)時,TextMate將啓動,不帶的初始文本。我可以編輯和保存文檔,當我退出時,應用程序讀入初始文本(應該被覆蓋)。

我很困惑,因爲這段代碼是在印刷書籍中,所以它應該工作。我爲編輯器變量使用了錯誤的字符串嗎?

回答

0

看來你的編輯器「/ Users/jason/bin/mate」不支持作爲參數傳遞的文件名。

在終端,你可以試試:

echo "Test text" > test.txt 
/Users/jason/bin/mate test.txt 

看它打開與右邊的文本編輯器。

+0

我發現你必須執行「mate -w」來等待文件被關閉。 – titaniumdecoy 2009-10-22 21:15:16