首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将图像从备份X11 c++程序传输到Qt应用程序以显示该图像

将图像从备份X11 c++程序传输到Qt应用程序以显示该图像
EN

Stack Overflow用户
提问于 2020-04-04 02:45:20
回答 1查看 36关注 0票数 0

这是以Qt应用程序的父窗口id为参数的函数

代码语言:javascript
运行
复制
void getImage(Window win){
   d=XOpenDisplay(NULL);
     s=DefaultScreen(d);
     w=XCreateSimpleWindow(d, RootWindow(d, s), 1000, 1000, 100, 100, 14,BlackPixel(d,s),WhitePixel(d, s));
     XMapWindow(d, w);
     XReparentWindow(display, w,win, 50, 50);
     XFillRectangle(d, w, DefaultGC(d, s), 20, 20, 60, 60);
}

这是一个调用getImage(Window win)函数的Qt应用程序。

代码语言:javascript
运行
复制
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    getImage(w.winId());
    return a.exec();
}

我试图从x11应用程序中获取图像并将其显示在Qt窗口中,但程序在XFillRectangle()处崩溃,并且当我注释掉Qt应用程序中的getImage(Window win)函数时工作正常。基本上我想在Qt窗口上做图像注释,但注释覆盖框架必须来自x11运行的应用程序。

EN

回答 1

Stack Overflow用户

发布于 2020-04-04 15:17:38

当你调用w.show()时,你只是要求窗口显示,但是Qt会等待事件循环执行来显示它。您有两种方法可以尝试:

w.show()

  • Correct方式后调用
  1. QApplication::processEvents():子类QMainWindow,在覆盖函数中调用getImage:

showEvent(QShowEvent* showEvent) override;

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61018516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档