Qt嵌入外部EXE程序,并显示在主界面中!

2023-05-16

一、获取程序句柄以及类

打开Visual Studio 进行查询
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、QT调用程序

H文件

#ifndef VISUAL_H
#define VISUAL_H

#include <QWidget>
#include <QProcess>
#include<Windows.h>
#include<QWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class Visual; }
QT_END_NAMESPACE

class Visual : public QWidget
{
    Q_OBJECT

public:
    Visual(QWidget *parent = nullptr);
    ~Visual();


private:
    Ui::Visual *ui;
    QProcess *process;
    QWindow * m_window;
};
#endif // VISUAL_H

CPP文件

#include "visual.h"
#include "ui_visual.h"

Visual::Visual(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Visual)
{
    ui->setupUi(this);
    process = new QProcess(this);
    QString cmd = "C:/Users/CSJ/Desktop/CeleX5Demo_x64/CeleXDemo.exe";
    STARTUPINFO si = { sizeof(si) };
    PROCESS_INFORMATION pi;
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = true;
    bool bRet = CreateProcess(
                NULL,
                (LPWSTR)cmd.toStdWString().c_str(),
                NULL,
                NULL,
                FALSE,
                CREATE_NEW_CONSOLE,
                NULL,
                NULL, &si, &pi);

    Sleep(1000);
    WId wid = (WId)FindWindow(L"Qt5QWindowIcon", L"CeleXDemo");//获取窗口句柄
    m_window = QWindow::fromWinId(wid);
    m_window->setFlags(m_window->flags() | Qt::CustomizeWindowHint | Qt::WindowTitleHint); //

    QWidget *m_widget;
    m_widget = QWidget::createWindowContainer(m_window, this->ui->widget);
    m_widget->setMinimumSize(1938, 1048);
}

Visual::~Visual()
{
    delete ui;
}


最终效果:
在这里插入图片描述
完成QT外部调用!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt嵌入外部EXE程序,并显示在主界面中! 的相关文章

  • Docker:Docker的安装与镜像加速

    文章目录 一 Docker教程1 1 Docker的优点1 2 Docker容器技术和传统虚拟机技术的性能比较1 3 Docker的相关链接 二 Docker的安装2 1 使用官方安装脚本自动安装2 2 使用Docker仓库进行安装 三 D
  • 字节的高低位交换

    文章目录 一 字节的高低位交换1 移位操作2 蝶式交换法3 查表法 一 字节的高低位交换 问题 xff1a 对一字节的数据 xff0c 进行逐个高低位交换 例如0xCF 11001111B 经过0 7 1 6 2 5 3 4对应位置的交换
  • Typora中的emoji图标标签

    转载自 xff1a https www cnblogs com wangjs jacky p 12011208 html People x1f604 smile x1f606 laughing x1f60a blush x1f603 smi
  • [MFC]使用编辑框来设置IP地址

    我们除了使用IP控件来设置控件之外还可以使用编辑框来设置IP xff0c 这样的话 xff0c 就需要来进行判断我们输入的IP是否合法 判断IP地址合法的标准 xff1a 字符串中必须包含3个符号 被符号 分隔的4个字符串的长度必须小于或等
  • [MFC控件]IP地址控件

    文章目录 使用场景 xff1a 96 CIPAddressCtrl 96 类的成员的属性 xff1a 1 空内容判断 96 CIPAddressCtrl IsBlank 96 2 清空控件 96 CIPAddressCtrl ClearAd
  • VS项目字符集

    在使用VS进行编码过程中 xff0c 查看项目属性看到项目的默认值下有一个字符集选项 xff0c 看下图 xff1a 多字节字符集 在最初的Internet上只有一种字符集 那就是ASCII字符集 xff0c 它相信大家都知道 xff0c
  • 查看当前自己电脑的线程数

    我们在学习线程 xff0c 那我们知道自己电脑中的CPU的线程数吗 xff1f 方法一 xff1a 任务管理器 启动任务管理器点击任务管理器的 性能 选项如下图所示 xff0c 我的电脑是双核四线程的 如果上图看的不明确 xff0c 可以看
  • [MFC控件]获取Edit编辑框内容

    文章目录 一 设置编辑框变量二 通过ID获取 一 设置编辑框变量 1 为编辑框控件添加一个类型为CEdit的变量m Edit CString str span class token punctuation span m Edit span
  • python pip

    简介 pip 是最常用的Python包管理工具 xff0c 该工具提供了对Python 包的查找 下载 安装 卸载的功能 目前Python 2 7 9 43 或 Python 3 4 43 以上版本都自带 pip 工具 xff0c 或者co
  • Julia入门-0、在Windows下安装Julia

    文章目录 0 前言1 相关网站2 Windows 系统下安装Julia3 Julia 交互式命令窗口 0 前言 Julia 是一个面向科学计算的高性能动态高级程序设计语言 Julia 最初是为了满足高性能数值分析和计算科学的需要而设计的 x
  • Julia入门-2、Julia中的全局模块对象

    在 Julia 中 xff0c 有几个关键的全局模块对象 xff1a jl main module 表示当前正在执行的模块 xff0c 也称为 顶层模块 xff08 top level module xff09 或 主模块 xff08 ma
  • Julia入门-3、Julia包管理工具

    文章目录 0 Julia 的包管理工具是 96 Pkg 96 1 使用Julia包管理工具过慢 0 Julia 的包管理工具是Pkg Julia 的包管理工具是Pkg xff0c 可以用于安装 更新 卸载和管理 Julia 中的软件包 以下
  • 华三snmp3配置

    snmp agent 开启SNMP协议 snmp agent local engineid 0000000000 系统自动生成 xff0c 无需配置 snmp agent community read h3c acl 2001 只读属性为h
  • 如何合理的选择加密软件?驱动层加密与应用层加密那个更具优势?

    合理的使用文档加密软件至关重要 站在信息安全的角度来看 xff0c 目前要做的是 xff0c 人员需要正确的对待加密软件为基础 xff0c 然后依据企业的实际办公需求 xff0c 去合理的使用文档加密软件产品来帮助企业达到数据安全保护的要求
  • 系统调用的概念及原理

    系统调用与内核函数 内核函数与普通函数形式上没有什么区别 xff0c 只不过前者在内核实现 xff0c 因此要满足一些内核编程的要求 系统调用是用户进程进入内核的接口层 xff0c 它本身并非内核函数 xff0c 但它是由内核函数实现的 x
  • ubuntu18.04下 安装SLAM-Pangolin(亲测有效)

    首先安装Pangolin所需依赖 sudo apt install libgl1 mesa dev sudo apt install libglew dev sudo apt install cmake sudo apt install l
  • 【树莓派开发日记2 】树莓派安装Ubuntu22系统及启动黑屏等问题的踩坑记录

    树莓派安装Ubuntu22系统及启动黑屏等问题的踩坑记录 在成功进行了组装后 xff0c 就到了最为关键的部分了 xff0c 进行树莓派的系统烧录 虽然树莓派有自己对应的系统 xff0c raspbian xff0c 但是绝大部分的开发者还
  • Docker 安装 MySQL

    Docker 安装 MySQL 1 拉取指定版本mysql2 创建并运行mysql容器3 通过 navicat 远程连接 docker安装教程 1 拉取指定版本mysql 拉取latest版本 xff08 最新版本 xff09 MySQL
  • 智能控制知识点总结

    智能控制知识点总结 一 选择 xff08 20分 xff09 二 填空 xff08 20分 xff09 1 智能控制系统要有自适应和自学习的能力 智能控制必须具有模拟人类学习 Learning 和自适应 xff08 Adaptation 的
  • git new repository上传

    Command line instructions Git global setup span class token function git span config global user name span class token s

随机推荐

  • ROS学习:ROS文件系统--package.xml

    package xml 也是一个 catkin的package 必备文件 xff0c 它是这个软件包的描述文件 xff0c 在较早的ROS 版本 rosbuild 编译系统 中 xff0c 这个文件叫做 manifest xml xff0c
  • SIFT图像拼接

    SIFT图像拼接 文章目录 SIFT图像拼接 前言二 相关工作1 SIFT2 RANSAC拟合3单应性变换4 SVD分解 三 实现步骤四 效果总结代码 前言 结合SIFT 单应性变换 Ransac和SVD等算法实现指定几幅图像之间的拼接 x
  • Redis简介

    目录 一 NoSQL介绍 二 Redis介绍 3 1什么是Redis 3 2 Redis应用场景 3 3 Redis优势 3 4 Redis与其他key value存储有什么不同 xff1f 一 NoSQL介绍 NoSQL 是 Not On
  • docker安装rabbitmq(细)

    这里使用docker安装rabbitmq xff0c 前提是要安装docker xff0c 安装docker的步骤如下 xff1a 一 安装docker 1 安装docker依赖 sudo yum install y yum utils d
  • 数组删除元素

    在数组中删除值为val的元素 xff0c 因为数组在内存中是连续存储 xff0c 所以不能只删除元素 xff0c 而是在删除元素后还要使后边元素前移 在数组中删除元素有两种方法 xff1a xff08 1 xff09 暴力解法 xff08
  • STM32F103最小系统板引脚定义

    STM32F103最小系统原理图 本人初学stm32 若有误解之处 还望大佬们指正改进 感谢 STM32F103各引脚定义 可前往 STM32F103xCDE 数据手册 英文 的第三章 Pinouts and pin description
  • 基带面试题附答案

    请列举您知道的电阻 电容 电感品牌 xff08 最好包括国内 国外品牌 xff09 电容 xff1a 美国 xff1a AVX VISHAY 威世 日本 xff1a KOA 兴亚 Kyocera 京瓷 muRata 村田 Panasonic
  • nginx简介(一)

    背景 xff1a 前面说了准备围绕运维工程师所要学习的知识进行记录和分享 xff0c linux基础的记录是一个漫长的过程 xff0c 后面会时不时的记录下 今天准备拉一个分支 xff0c 介绍一下nginx的相关内容 xff0c 由于ng
  • 蓝桥杯嵌入式——第十二届蓝桥杯嵌入式国赛客观题

    1 填空题 嵌入式竞赛平台上板载的微控制器是 xff1a 3 级流水线 xff0c 具有 128 Kbytes的Flash存储空间 xff08 请在第一 二空格处填写10进制数值 xff09 解析 xff1a STM32G431RBT6采用
  • git pull 所有branch和tag并上传

    pull span class token function git span branch r span class token operator span span class token function grep span v sp
  • 双非渣本大三学生春招拿到实习Offer的经历

    从今年的2月底投简历开始到现在已经两个月了 xff0c 两个月的时间我经历了很多大大小小的笔试面试 xff0c 坎坎坷坷的也是终于拿到了美图的Offer xff0c 美团和头条好歹也都进了终面 xff0c 躺在备胎池里面 xff08 不打算
  • TX2超详细,超有用的刷机教程

    TX2超详细 xff0c 超有用的刷机教程 TX2被Nvidia官方称作是最快 xff0c 最节能的嵌入式AI计算设备 它的功耗小 xff0c 只有7 5W xff0c 体型也小 xff0c 只有一张信用卡那么大 xff0c 它是真正可以实
  • vscode 同步gitee远程仓库

    一 首先在gitee端创建远程仓库 二 在vscode中配置git信息 git config global user name 34 your name 34 git config global user email 34 your ema
  • QGC地面站参数调节

    校准 xff1a 1 选择机架 xff1a 一般用DJI Flame Wheel F450机架 xff0c 选择之后点击 应用并重启 xff1b 2 传感器校准 xff1a 无人机会重新连接地面站 xff0c 依次校准 磁罗盘 陀螺仪 xf
  • PX4初级教程

    链接 xff1a https pan baidu com s 1VIQcOQt I5 evMx1jnV0ZQ 提取码 xff1a 8niq
  • Qt Creator编写无人机地面站系统

    用户登录界面 将用户注册的账户信息如实填写 xff0c 然后输入验证码 xff0c 点击 xff02 登录 xff02 即可进入无人机地面站管理系统 xff0e 地面站界面
  • Mavlink自定义协议

    参照本人博客 xff1a 博客直达 浏览密码 xff1a N414 这里不做描述 xff0c 详细过程请移步本人博客
  • 狼群算法资源总结

    狼群算法介绍 xff1a 狼群算法的优化 狼群算法三维路径规划 xff1a 狼群算法三维路径规划Matlab
  • html+css+php+mysql实现注册+登录+修改密码(附完整代码)

    注 xff1a 转载及使用源代码请注明来源 xff01 如疑问可私信 xff01 目的 xff1a 在利用QT软件进行登录软件开发时 xff0c 就想要实现点击按钮跳转到指定网页进行注册以及修改密码等操作 xff0c 就像QQ客户端那样可以
  • Qt嵌入外部EXE程序,并显示在主界面中!

    一 获取程序句柄以及类 打开Visual Studio 进行查询 二 QT调用程序 H文件 span class token macro property span class token directive keyword ifndef