如何从Qt启动外部文件?

时间:2014-04-15 09:38:37

标签: c++ qt file external

我想打开一个pdf文件,只需双击QListWidget的一个元素即可。 我创建了一个批处理文件来打开Acrobat Reader(reader.bat),但我想要一个特定的pdf文件:

void MainWindow::on_FileListWidget_itemDoubleClicked(QListWidgetItem *item)
{
        QFile SelectedModel(Current_Path  + "/Template/" + item->text());
        QString FileName;
        FileName = (Current_Path  + "/Template/" + item->text());
        ::system("e:\\reader.bat");
}

1)我不知道从QFile或QString可以更好的是从QListWidget中识别和选择文件; 2)我不知道如何将文件添加到命令中打开Acorbat Reader(在显示的行中我可以打开程序但不能打开我的文件)。 有什么想法吗?

2 个答案:

答案 0 :(得分:10)

您可以使用Qt本机方法通过调用

来实现此行为
QDesktopServices::openUrl(QUrl::fromLocalFile("someFilePath"));

请参阅QUrl::fromLocalFile()QDesktopServices::openUrl()

(请参阅this帖子)

答案 1 :(得分:2)

看看这个:http://qt-project.org/doc/qt-5/qdesktopservices.html#openUrl

QDesktopServices::openUrl(QUrl("file://path/to/file"));

这不仅需要使用默认应用程序打开文件(如果使用file://方案),还会使用默认浏览器打开Web URL(如果http://或{使用{1}}方案)或者在https://方案的情况下使用默认电子邮件客户端打开它。它也适用于mailto://steam://等其他方案。