我正在尝试写一个文件管理器。复制,删除功能很好。现在我需要添加终端功能,它将在当前目录中运行终端。
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);
}
这里是复制功能
您可以使用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();
}