#include #include #include #include #include #include #include #include #include #include #include #include #include "main.h" #include "main.moc" Win::Win() { KLibFactory* factory = KLibLoader::self()->factory( "libkonsolepart" ); assert( factory ); KParts::Part* p = static_cast( factory->create( this, "tralala", TQOBJECT_OBJECT_NAME_STRING, "KParts::ReadOnlyPart" ) ); setCentralWidget( p->widget() ); TerminalInterface* t = ::tqqt_cast( p ); t->showShellInDir( TQDir::home().path() ); // TQStrList l; // l.append( "python" ); // t->startProgram( TQString::fromUtf8( "/usr/bin/python" ), l ); connect( p, TQT_SIGNAL( processExited( int ) ), this, TQT_SLOT( pythonExited( int ) ) ); } int main( int argc, char** argv ) { TDEAboutData* about = new TDEAboutData( "tetest", "TETest", "0.1" ); TDECmdLineArgs::init( argc, argv, about ); TDEApplication a; Win* win = new Win(); win->show(); return a.exec(); }; #include void Win::pythonExited() { std::cerr << "hee, " << p << std::endl; std::cerr << ( ::tqqt_cast(p) ) << std::endl; // KMessageBox::sorry( this, TQString::fromUtf8( "Exited, status was %1" ).arg( status ) ); disconnect(p, TQT_SIGNAL( processExited() ), this, TQT_SLOT( pythonExited() )); TerminalInterface* t = ::tqqt_cast( p ); TQStrList l; l.append( "echo" ); l.append( "hello world" ); t->startProgram( TQString::fromUtf8( "/bin/echo" ), l ); } void Win::forked() { std::cerr << "hello from the child process!" << std::endl; }