2008-12-16 3 views
1

J'ai ce terminal sur ma demande qt/kdeChanger commande terminalinterface après avoir montré sur l'application qt/kdelibs

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

donc, le widget que je vois dans ma fenêtre est « terminal », mais comment puis-je changer sa commande interne lorsqu'un événement défini se produit (et, évidemment, lorsque le terminal est déjà affiché)? Je l'ai essayé avec:

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

mais il ne fonctionne que si je le fais avant la dernière ligne:

QWidget* terminal = p->widget(); 

savoir au lieu de la -> showShellInDir (QDir :: maison() chemin (.)); méthode.

De l'aide? Merci

Répondre

1

Hola amigo! Vous pouvez envoyer une commande à l'invite TerminalInterface avec

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

J'espère que ce sera utile: D

Questions connexes