我是所有这些东西的初学者。我试图创建一个打开文件的函数(在Windows中使用Qt),我尝试了QProcess
库中的一些函数,但它们无法满足我的需求。所以,我决定使用system()执行文件的功能。问题是系统功能只从我的系统驱动器打开.exe文件和其他文件,并没有打开任何文件
任何其他驱动器。在Qt中有一个内置函数,我可以用它打开任何文件,并为该文件类型分配默认程序。为什么会这样?我做错了什么?
我的代码:
QString FilePath = openFileDialog.getOpenFileName(this, tr("Open File"),"/home",tr("All Files"));
ui->Label_7->setText("Choose file to open.");
const char *file;
QByteArray bArray;
bArray = FilePath.toLatin1();
file = bArray.data();
system(file);
答案 0 :(得分:2)
您可以使用QDesktopServices::openUrl
函数打开具有合适应用程序的本地文件。
试试这个:
void Widget::open()
{
QString filename = QFileDialog::getOpenFileName();
if (!filename.isEmpty())
{
QUrl url = QUrl::fromLocalFile(filename);
QDesktopServices::openUrl(url);
}
}