Я работаю с Qt в Linux. Мне нужно запустить программу чтения PDF-файлов "evince" из Qt.
Я искал, и, насколько я понимаю, я могу использовать Qprocess, чтобы заставить его работать. Что-то вроде этого:
QStringList args;
args.append("/home/user/presentacion0.pdf");
QProcess p(this);
p.start("/usr/bin/evince", args, QIODevice::ReadWrite);
p.waitForFinished();
QString p_stdout = p.readAllStandardOutput();
QString p_stderr = p.readAllStandardError();
Но я всегда получаю следующую ошибку:
Протокол не указан. Не удается разобрать аргументы: невозможно открыть дисплей:
Итак, я попробовал system(char *cmd)
из stdlib.h
и не работает system("/usr/bin/evince /home/user/presentacion0.pdf");
Я думаю, что system() не работает, потому что «evince» — это графическое приложение. Однако я могу без проблем запускать команды «ls», «mkdir» и т. д. с помощью system()
.
Пожалуйста, мне нужна помощь с этой темой.
Я очень ценю вашу помощь заранее.
Спасибо.