在Qt中嵌入Linux可执行程序窗口 - 代码示例
在Linux系统中,可以使用Qt的QProcess类来启动一个可执行程序,并将其窗口嵌入到Qt开发的可执行程序界面中。下面是一个示例代码:\n\ncpp\n#include <QApplication>\n#include <QProcess>\n#include <QHBoxLayout>\n#include <QWindow>\n#include <QWidget>\n\nint main(int argc, char *argv[]) {\n QApplication a(argc, argv);\n\n // 创建一个QWidget作为主窗口\n QWidget mainWindow;\n QHBoxLayout layout(&mainWindow);\n\n // 创建一个QProcess对象来启动可执行程序\n QProcess process;\n process.start("/path/to/executable"); // 将"/path/to/executable"替换为你的可执行程序的路径\n\n // 获取可执行程序的窗口句柄\n WId windowId = 0;\n if (process.waitForStarted()) {\n QWindow *window = QWindow::fromWinId(process.pid());\n if (window) {\n windowId = window->winId();\n }\n }\n\n // 将可执行程序的窗口嵌入到主窗口中\n if (windowId != 0) {\n QWidget *embeddedWidget = QWidget::createWindowContainer(QWindow::fromWinId(windowId), &mainWindow);\n layout.addWidget(embeddedWidget);\n }\n\n // 显示主窗口\n mainWindow.show();\n\n return a.exec();\n}\n\n\n在上述代码中,通过QProcess启动一个可执行程序,并获取其窗口句柄。然后,使用QWidget::createWindowContainer函数将该窗口嵌入到主窗口中。最后,显示主窗口并进入Qt的事件循环。请将"/path/to/executable"替换为你的可执行程序的路径。
原文地址: https://www.cveoy.top/t/topic/p2Wl 著作权归作者所有。请勿转载和采集!