QDesktopServices :: openUrl с выбором указанного файла в проводнике - PullRequest
3 голосов
/ 04 февраля 2012

В большинстве программ кодирования вы можете щелкнуть правой кнопкой мыши на элементе и выбрать «Показать» в проводнике, и он показывает файл в проводнике с выбранным элементом.Как бы вы сделали это в Qt с QDesktopServices?(или любой другой способ сделать это в QT)

Ответы [ 2 ]

5 голосов
/ 04 февраля 2012

вы можете использовать этот метод для выбора файла в Windows или MacOS, если вы хотите выбрать в linux, вы можете найти путь в источниках QtCreator.

void select(const QString& path){
#if defined(Q_OS_WIN)
    const QString explorer = "explorer";
        QStringList param;
        if (!QFileInfo(path).isDir())
            param << QLatin1String("/select,");
        param << QDir::toNativeSeparators(path);
        QProcess::startDetached(explorer, param);
#elif defined(Q_OS_MAC)
    QStringList scriptArgs;
        scriptArgs << QLatin1String("-e")
                   << QString::fromLatin1("tell application \"Finder\" to reveal POSIX file \"%1\"")
                                         .arg(path);
        QProcess::execute(QLatin1String("/usr/bin/osascript"), scriptArgs);
        scriptArgs.clear();
        scriptArgs << QLatin1String("-e")
                   << QLatin1String("tell application \"Finder\" to activate");
        QProcess::execute("/usr/bin/osascript", scriptArgs);
0 голосов
/ 04 февраля 2012

Вы пытались использовать синтаксис file:///?Следующее взято из базы кода, с которой я работаю:

PyQt4.QtGui.QDesktopServices.openUrl(PyQt4.QtCore.QUrl('file:///%s' % dirname))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...