当前位置: 首页 > news >正文

徐汇网站推广themeforest wordpress

徐汇网站推广,themeforest wordpress,中国企业网站建设案例,国家企业信息年报系统一、前言 使用QT开发#xff0c;有时需要调用一些外部程序#xff0c;但是单独打开一个外部窗口有的场合很不合适#xff0c;最好是嵌入到开发的QT程序界面中。还有就是自己开发的n个程序#xff0c;一个主程序托n个子程序#xff0c;为了方便管理将各个程序独立#xf…一、前言 使用QT开发有时需要调用一些外部程序但是单独打开一个外部窗口有的场合很不合适最好是嵌入到开发的QT程序界面中。还有就是自己开发的n个程序一个主程序托n个子程序为了方便管理将各个程序独立但是运行还要整体去一起也就需要将各个子程序嵌入到主程序预留的窗口处。 本文主要从以下几个方面进行总结 将外部程序嵌入到主程序窗口中外部程序与主程序通讯暂无总结 二、环境 qt5.7 window10 CPU是AMD Ryzen 7 4800U with Radeon Graphics 1.80 GHz可能有关联 三、正文 将外部程序嵌入到主程序窗口中 方法千篇一律在网上搜索有很多的方法找到最合适的方法才是最重要的这里我主要总结在我的电脑上能够正常运行的方法。 主程序名称mytool子程序名称note主程序创建一个widget给子程序预留核心代码如下 //启动外部程序QProcess *process1 new QProcess(this);process1-setProcessChannelMode(QProcess::MergedChannels);//通道设置可不加process1-start(../可执行程序/note.exe);//qApp-applicationDirPath()/note.execonnect(this,QObject::destroyed,[](){process1-close();});//程序关闭时关闭子程序Sleep(500);//延时必须加不加不好使HWND handle FindWindow(nullptr, Lnote);//使用process1-pid()不好使只能用这种方式 // qDebug()(WId)handle(WId)process1-pid()process1-pid();if(handle ! nullptr){//nullptrQWindow* externWindow QWindow::fromWinId((WId)handle);QWidget* container_note QWidget::createWindowContainer(externWindow, ui-widget_note);//存放外部窗口的Widget//将外部程序窗口嵌入到QWidget子类中显示container_note-setGeometry(0, 0, externWindow-width(), externWindow-height());//设置嵌入的窗口位置ui-btn_menu_2-setEnabled(true);//记事本加载成功}else{tray-showMessage(消息,加载失败程序损坏或丢失请检查,QSystemTrayIcon::MessageIcon::Warning,1000);//发送通知消息 //显示信息图标(NoIcon/Information/Warning/Critical)ui-btn_menu_2-setEnabled(false);//加载成功 失能按键} 重点1Sleep延时函数必须得有否则QProcess外部程序还没启动完全是无法正常获取窗口ID的也就嵌入不成功。 重点2使用FindWindow函数返回数据类型定义为HWND未使用WID会失败也没有使用process1.pid()获取ID也会失败目前测试只有这种方式获取外部窗口句柄好使。 重点3本程序未使用如果是调用其他第三方程序不是自己开发的子程序需要使用SPY获取窗口句柄网上随便就能下载选择查找窗口拖拽准心到目标窗口就能看见返回值。延时时间需要根据外部第三方程序启动时间动态调整很可能时间不够也不好使。 重点4嵌入的窗口如果是固定尺寸嵌入完毕后使用setGenmetry设置一下窗口位置和大小否则会有大家常说的白边PS吐槽一句有的人写博客就这一个小破功能就要把自己博客订阅花钱才能看守着你的文章发霉去吧。如果是不固定尺寸可调节大小将widget创建为私有全局对象使用event重新根据预留的widget窗口大小动态调整嵌入的程序大小。 。h pravite QWidget* container_note nullptr; //存放外部窗口的Widget 。cpp void Widget::resizeEvent(QResizeEvent *event) //外部窗口大小随动 {QWidget::resizeEvent(event);if (container_note ! nullptr){container_note-resize(event-size());} }外部程序与主程序通讯暂无总结 内部通信也可以通过信号槽等绑定消息也可以通过读取公共文本文件实现这里暂时未使用到 四、结语 参考文章1
http://www.zqtcl.cn/news/265064/

相关文章:

  • 做一个网站的流程是什么金融网站建设方案
  • 汽车维修保养网站模板北京网站建设知名公司排名
  • 网站建设案例分享网络推广网
  • 广州知名网站推广app软件开发制作公司电话
  • 泉州专业网站建设seo是指什么职位
  • 怎么做房产网站张家港高端网站制作
  • 做网站运营公司收费广东短视频seo搜索哪家好
  • 外贸网站 源码做的好详情页网站
  • 冀州网站制作邢台百姓网官网
  • 佛山做外贸网站方案自助网站推广系统
  • 安徽鸿顺鑫城建设集团网站小区物业管理网站开发报告
  • 有关网站建设文章常熟做网站多少钱
  • 网站流量报表江苏住房和城乡建设厅网站
  • 提供做网站公司有哪些个人建网站的费用
  • 网站后台添加表格wordpress垂直分页导航插件
  • 重庆网站建设有限公司六安市裕安区建设局网站
  • 北京产品网站建设如何做移动支付网站
  • 做同城购物网站赚钱吗设计企业网站流程
  • 网站要用什么软件做建设工程施工合同专属管辖
  • 模板网站建设制作佛山正规网站建设哪家好
  • 飞虎队网站建设网络公司起名大全
  • 如何发布自己的网站视频8首页制作代码
  • 网站开发实用案例教程普陀网站制作
  • 建一个网站需要哪些知识招远网站建设
  • 文章标题-栏目名称-网站名 dede环保网站设计建设论文
  • centos wordpress建站北京专门做网站的
  • wordpress网站的彻底清理百度网站联系方式
  • 网站建设签收单网页制作模板的作用
  • 已购买域名 如何做网站网络规划设计师通过率多少
  • 酒店网站建设需求分析wordpress iis