+-
在目录QT中启动终端

我正在尝试写一个文件管理器。复制,删除功能很好。现在我需要添加终端功能,它将在当前目录中运行终端。

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);
}

这里是复制功能

0
投票

您可以使用Qt QProcess在Ubuntu上执行此操作,将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();
}