Запустить терминал в каталоге QT - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь написать файловый менеджер.Копирование, удаление функций работают хорошо.Теперь мне нужно добавить функцию «Терминал», которая будет запускать терминал в текущем каталоге.

void MainWindow::onCopyActionTriggered()
{
    // Get current index.
    QModelIndex cIndex = mainExplorer->currentIndex();
    if(!cIndex.isValid()) return;

    // Get path of file to be copied.
    QString cPath = mainExplorerModel->fileInfo(cIndex).absoluteFilePath();

    QMimeData *data = new QMimeData();

    QList<QUrl> urlsList;
    urlsList.append(QUrl::fromLocalFile(cPath));

    data->setUrls(urlsList);

    clipboard->setMimeData(data);
}

Вот, например, функция копирования

1 Ответ

0 голосов
/ 25 мая 2018

Вы можете сделать это в Ubuntu с помощью Qt QProcess, установить QProcess программу как gnome-terminal, каталог задается с помощью QProcess::setWorkingDirectory.

Вы можете написатьфункция, которая принимает directory в качестве аргумента.

void MainWindow::startTerminal(QString directory)
{
    QProcess* p = new QProcess(this);
    p->setWorkingDirectory(directory);
    p->setProgram("/usr/bin/gnome-terminal");
    p->start();
    p->waitForStarted();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...