Qt嵌入子Qt程序窗口到当前程序

子程序主要代码#

#include "ChildWidgets.h"
#include <QtWidgets/QApplication>
#include <QWindow>
#include <iostream>
#include <QMessageBox>
#include <thread>
int main(int argc, char* argv[])
{
	QApplication a(argc, argv);
	ChildWidgets w;
	w.show();
	w.createWinId();
	// 输出
	std::cerr << w.winId() << std::endl;
	return a.exec();
}

主程序主要代码#

InWidgets::InWidgets(QWidget* parent)
	: QMainWindow(parent)
{
	this->resize(600, 400);
	// 获取程序所在路径
	QString path = QCoreApplication::applicationDirPath();
	path += "/ChildWidgets.exe";

	process = new QProcess(this);

	connect(process, &QProcess::readyReadStandardError, [&]() {
		quint64 winId = process->readAllStandardError().toLongLong();
		QWindow* childWin = QWindow::fromWinId(winId);
		if (childWin)
		{
			QWidget* widget = QWidget::createWindowContainer(childWin);
			this->setCentralWidget(widget);
		}
		});
	process->start(path);

	// 子窗口嵌入当前窗口
	process->setParent(this);

}

结果#

QQ截图20220627161313.png

地址:https://download.csdn.net/download/qq_44575789/85800705#

作者:Esofar

出处:https://www.cnblogs.com/WindSnowLi/p/16998159.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   WindSnowLi  阅读(94)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示