Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 在qwidget内运行外部应用程序_Qt_Qt4 - Fatal编程技术网

Qt 在qwidget内运行外部应用程序

Qt 在qwidget内运行外部应用程序,qt,qt4,Qt,Qt4,我们如何在QWidget中嵌入外部应用程序 我使用QX11EmbedContainer尝试了相同的方法,但出现错误“XEvent尚未声明” 我已经尝试了下面提到的代码(“this”表示qwidget类引用) 我试图将容器对象添加到tabwidget对象的当前选项卡中,我想在其中运行一些外部应用程序(Application1)。 这是我的密码 QTabWidget *tabWidget = new QTabWidget; /* Trying to add external a

我们如何在QWidget中嵌入外部应用程序

我使用QX11EmbedContainer尝试了相同的方法,但出现错误“XEvent尚未声明”

我已经尝试了下面提到的代码(“this”表示qwidget类引用)

我试图将容器对象添加到tabwidget对象的当前选项卡中,我想在其中运行一些外部应用程序(Application1)。 这是我的密码

     QTabWidget *tabWidget = new QTabWidget;

     /* Trying to add external appllication to a tab of tabwidget object */
     QX11EmbedContainer * container = new QX11EmbedContainer(tabWidget->currentWidget());
     container->show();

     QProcess * process = new QProcess(container);
     QString executable("/home/abhishek/practice/Applicaion1");

     process->start(executable);

Application1在单独的窗口中执行,但我希望它在我的选项卡中运行

QX11EmbedContainer
仅在X11上运行(例如,在Linux上)。从外观上看,您正在尝试在Windows上执行此操作


我不太熟悉在Windows上使用Qt,但它看起来像是由该模块提供的等效功能。您可能可以在该框架内完成类似的操作。

QX11EmbedContainer适用于XWindows。我在Linux(RHEL 6)上也尝试过同样的操作,但不起作用。在linux中,我给出的路径是QString可执行文件(“/home/abhishek/practice/application1”);当我运行代码时,Application1从我当前的应用程序执行,但它在一个单独的窗口中运行。我想把它嵌入到我当前的QWidget中。我明白了。那么听起来您上面的代码示例不完整——您如何处理
容器
小部件?它看起来不像是添加到布局或作为现有小部件的子部件,这就是为什么它会出现在自己的窗口中。容器我正在添加到上面代码中定义的tabwidget对象的选项卡我已经找到了解决方案。谢谢你的帮助我也有同样的问题,我还需要在qwidget-cvan中运行一个外部应用程序。你能告诉我你是怎么做的吗?
     QTabWidget *tabWidget = new QTabWidget;

     /* Trying to add external appllication to a tab of tabwidget object */
     QX11EmbedContainer * container = new QX11EmbedContainer(tabWidget->currentWidget());
     container->show();

     QProcess * process = new QProcess(container);
     QString executable("/home/abhishek/practice/Applicaion1");

     process->start(executable);