[Qt]调用windows进程(打开文档,打开图片,打开文件夹...)

 打开文档:

QStringLiteral用于兼容中文。

QString fileName(qApp->applicationDirPath() + QStringLiteral("/Help/使用手册.doc"));
    if (!QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(fileName).absoluteFilePath())))
    {
        QMessageBox::information(this, tr("warning"),
            tr("Failed to open the help guide."),
            QMessageBox::Ok);
    }

打开图片:

方式一:

QDesktopServices::openUrl(QUrl(QString("file:///‪C:/Users/Desktop/image.bmp"));

方式二:

QProcess* process = new QProcess();
QString lastPicPath = logPath;

QString sPicPath = lastPicPath.replace("/", "\\");
QString program = "cmd.exe";
QStringList para;
para << "/c";
//命令间需要添加空格
para << QString("rundll32") + QString(" %Systemroot%\\System32\\shimgvw.dll,ImageView_Fullscreen ")+ sPicPath;
process->start(program, para);

打开文件夹:

openFileExplorer(QString path)
{
    QString filepath = path;
    //打开资源管理器并高亮文件
    const QString explorer = "explorer";
    QStringList param;
    if (!QFileInfo(filepath).isDir())
        param << QLatin1String("/select,");
    param << QDir::toNativeSeparators(filepath);
    QProcess::startDetached(explorer, param);
}

你可能感兴趣的:(qt)