找回密码
 立即注册
收起左侧

求助!!求各位坛友帮助!!将外部程序嵌入QT界面中相关

3
回复
6492
查看
[复制链接]
累计签到:2 天
连续签到:2 天
来源: 2020-12-7 00:50:14 显示全部楼层 |阅读模式
5Qter豆
在qt贴吧的帖子被系统删了,先来这里发一贴吧
本小白最近想将一个很好用的搜索应用everything嵌入到自己开发的界面中,遇到了很奇怪的问题,先给出完整源码:implant2.rar - 蓝奏云 (lanzous.com)
这里是部分的,大佬或许不用下载完整的也能看出问题:
#include "mainwindow.h"#include "ui_mainwindow.h"#include "qpushbutton.h" //按钮控件的头文件#include <QProcess>#include "windows.h"#include "stdio.h"#include <QDebug>#include <QMainWindow>#include <QWindow>
MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    QProcess *pro = new QProcess(this);    pro->start("C:/Program Files/Everything/Everything.exe", QStringList("C:/Program Files/Everything/Everything.exe"));    ui->setupUi(this);}
void MainWindow::integrate(){    QString Name = "Everything";    QString Name2 = "MainWindow";    WId hwnd = (WId)FindWindow(L"EVERYTHING",(LPCTSTR)Name.unicode());    WId m_hWnd = (WId)FindWindow(L"Qt5QWindowIcon",(LPCTSTR)Name2.unicode());    qDebug()<<hwnd;    qDebug()<<m_hWnd;
    QWindow *m_window;    m_window = QWindow::fromWinId(WId(hwnd));
    QWidget *m_widget;    m_widget = QWidget::createWindowContainer(m_window,this);
    //方法1    setCentralWidget(m_widget);
}
void MainWindow::on_pushButton_clicked()    {//      QProcess *pro = new QProcess(this);//      pro->start("C:/Program Files/Everything/Everything.exe", QStringList("C:/Program Files/Everything/Everything.exe"));      integrate();    }
MainWindow::~MainWindow(){    delete ui;}由于不大懂这方面的知识,所以参照的也是网上的方法,在浏览了很多这类的博客后终于鼓捣出来这么个东西,然而发现出了大问题,程序根本没嵌入到qt界面中!!一开始在设计界面通过拖动的方式拖了一个widget出来,想法也是将外部程序嵌入到这个widget中,后来为了检测问题就用了如代码中的方法1,然后我发现问题了!我创建的QWindow对象里面是空的,没有everything这个外部程序在里面!在这里可难倒我了,怎么想也想不明白!求大佬帮忙分析一波,改进一下,就差最后这一点点进度了!不胜感激!拿出我新注册得到的5个豆子了!

回复

使用道具 举报

累计签到:2 天
连续签到:2 天
2020-12-7 00:51:06 显示全部楼层
这个排版..一开始草稿的时候没问题的呀,瞎了各位眼睛不好意思了..
回复

使用道具 举报

累计签到:2 天
连续签到:2 天
2020-12-7 20:40:19 显示全部楼层
新发现:在尝试嵌入别的不同程序比如说系统自带的计算器时,也没有嵌入成功?因为嵌入的widget界面是一片全白,没有出现计算器界面,而嵌入everything时是一片全灰,看来问题并不是容器为空而是别的问题?
回复

使用道具 举报

累计签到:2 天
连续签到:2 天
2020-12-7 20:53:58 显示全部楼层
亚菲琉斯的朋友 发表于 2020-12-7 20:40
新发现:在尝试嵌入别的不同程序比如说系统自带的计算器时,也没有嵌入成功?因为嵌入的widget界面是一片全 ...

嵌入txt是可以的..顺便一提我的系统是win10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了