Я пытаюсь использовать QDesktopServices для открытия каталога, определенного как cpath.QDesktopServices openUrl не работает
QString openPath = QDir::toNativeSeparators(cpath);
QDesktopServices::openUrl(QUrl(cpath, QUrl::TolerantMode));
Однако приведенный выше код ничего не делает.
Код помещается в функцию, привязанную к кнопке с помощью connect(). Я проверил, что функция подключения работает, создав MessageBox, который открывается при нажатии кнопки.
connect(openButton, SIGNAL(clicked()), this, SLOT(OpenDirectory()));
Код:
void QtReader::OpenDirectory()
{
QString openPath = QDir::toNativeSeparators(cpath);
QDesktopServices::openUrl(QUrl::fromLocalFile(qApp-ApplicationDirPath()+QDir::separator()+"ReaderArchives")); //current working code
}
cpath декларация:
QString cpath = qApp->applicationDirPath()+QDir::separator()+"ReaderArchives";
Заголовочный файл
public:
explicit QtReader(QWidget *parent = 0);
~QtReader();
QString cpath, spath, tpath;
Почему вы звоните вNationalSeparators (и не используете результат)? – Ilya
Как выглядит 'cpath'? Кроме того, удалите второй аргумент из конструктора 'QUrl'. –
cpath - это qApp-> applicationDirPath() + QDir :: separator(). Также toNativeSeparators был тестовым кодом. – Akito