1

我的 qt/kde 应用程序上有这个终端

KLibFactory* factory = KLibLoader::self()->factory("libkonsolepart");
KParts::Part* p = static_cast<KParts::Part*> (factory->create(this,"terminal",QStringList() << "terminal"));
assert(p);
TerminalInterface* terminalInterface= qobject_cast<TerminalInterface*> (p);
terminalInterface->showShellInDir(QDir::home().path());
QWidget* terminal = p->widget();

所以,我在窗口中看到的小部件是“终端”,但是当定义的事件发生时(显然,当终端已经显示时)我如何更改它的内部命令?我试过:

terminalInterface->startProgram( QString::fromUtf8( "/usr/bin/python" ), QStringList() << "python");

但只有当我在最后一行之前这样做时它才有效:

QWidget* terminal = p->widget();

即代替 ->showShellInDir(QDir::home().path()); 方法。

一些帮助?谢谢

4

1 回答 1

1

哈拉阿米戈!您可以使用以下命令将任何命令发送到 TerminalInterface 提示符

   terminalInterface->sendInput("/usr/bin/python\n"); 

我希望它会有用:D

于 2008-12-16T21:33:34.833 回答