[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: How to spawn a konsole from another app?
From:       Robin Atwood <robin.atwood () attglobal ! net>
Date:       2008-03-07 16:57:52
Message-ID: 200803072357.52672.robin.atwood () attglobal ! net
[Download RAW message or body]

On Friday 07 Mar 2008, Andreas Pakulat wrote:
> On 07.03.08 17:53:29, Robin Atwood wrote:
> > I want to execute a bash script and display the results to the user.
> > Since the output is very heavily formated, executing the script
> > in "konsole --noclose ..." seems the most tidy solution. I currently just
> > use the system() function to do this and it works but the main
> > application freezes until the user closes the konsole. I think there must
> > be a better KDE way of doing this and I have found KProcess but that
> > causes Konsole problems; it does not provide the right environment. The
> > error messages:
> >
> > 	konsole: WARNING: Unable to open a pseudo teletype!
> > 	Uh oh.. can't get terminal attributes..
>
> Sounds as if your hosting application doesn't run in an X11 environment
> or some such. KDevelop3 also executes the application inside an external
> konsole using KProcess (without blocking the Ui) if the user wants that.
>
> Its using KProcess::start( KProcess::OwnGroup, KProcess::AllOutput ) to
> do that.

I had a look at the KDevelop code and now have:

	KProcess *proc = new KProcess( this );
	*proc << "konsole";
	proc->setUseShell( true );
	connect( proc, SIGNAL(processExited(KProcess *)), this, SLOT(slotProcess( 
KProcess * )) );
	proc->start( KProcess::NotifyOnExit, KProcess::CTtyOnly );

which does the trick. :)

Thanks for the pointers
-Robin
-- 












 
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic