在QT应用程序中嵌入应用程序(在这种情况下是终端)

Gia*_*rlo 6 linux x11 qt kde xterm

我正在编写一个QT应用程序,我需要在QDialog中嵌入一个终端(我们说,xterm),就像一些KDE应用程序(参见kdevelop/kate/...).

我一直在尝试: - QX11EmbedContainer放入我的QDialog的QLayout - QProcess我想要的程序

我希望QProcess在QX11EmbedContainer中运行,但它不起作用.

问题是我不能把xterm放到QX11EmbedContainer中,我唯一得到的是一个xterm窗口(不幸的是与我的QDialog分开).有没有人遇到同样的问题?

Gia*_*rlo 3

抱歉,在发布此网站之前我已经尝试过您的解决方案,但它不起作用。我已经解决了切换到 kdelibs 并使用这些导入和这段代码的问题

#include <kparts/part.h>
#include <assert.h>
#include <kde_terminal_interface.h>
#include <kpluginfactory.h>
#include <klibloader.h>
Run Code Online (Sandbox Code Playgroud)
KLibFactory* factory = KLibLoader::self()->factory( "libkonsolepart" );
KParts::Part* p = static_cast<KParts::Part*>(factory->create( this,"tralala",         
QStringList() << "dio") );

assert(p);
setCentralWidget( p->widget() );
TerminalInterface *t = qobject_cast<TerminalInterface*>(p);
t->showShellInDir( QDir::home().path() );
Run Code Online (Sandbox Code Playgroud)