QDesktopServices::openUrl ( QUrl::fromLocalFile(fileName) );
fileName:文件名,如C:/新建 Microsoft Word 文檔.doc
QUrl::fromLocalFile()一定要用這個方法,因爲文件名或路徑中中文或空格,不然打不開文件.
直接用QUrl(fileName)只能打開英文名稱和沒有空格路徑的文件.
如何啓動一個外部程序
答:1、使用QProcess::startDetached()方法,啓動外部程序後立即返回;
2、使用QProcess::execute(),不過使用此方法時程序會最阻塞直到此方法執行的程序結束後返回,這時候可使用QProcess和QThread這兩個類結合使用的方法來處理,以防止在主線程中調用而導致阻塞的情況
先從QThread繼承一個類,重新實現run()函數:
Quote:
class MyThread : public QThread
{
public:
void run();
};
void MyThread::run()
{
QProcess::execute("notepad.exe");
}
這樣,在使用的時候則可定義一個MyThread類型的成員變量,使用時調用其start()方法:
Quote:
class ...............
{...........
MyThread thread;
............
};
.....................
thread.start();