如何将绘图表面附加到QMainWindow?

时间:2016-01-20 10:16:49

标签: qt

我正在处理的应用程序中的顶级视图不是基于Qt的。这个视图有自己的API来绘制线条,像素等。我想采取这个视图的矩形部分并将其附加到QMainWindow实例。我猜Qt中必须有一些机制可以将屏幕(Windows,x-windows等)连接到QMainWindow。你能指导一下Qt用来绘制实际表面的抽象类吗?问候。

2 个答案:

答案 0 :(得分:0)

如果你正在使用Qt4那里有QX11EmbedWidget,这在Qt5中实际上并不存在,我找不到好的替代品。就表面渲染而言,如果它是QPaintDevice的子类,则所有内容都以QWidget完成(就我所知的每个GUI元素而言)。

答案 1 :(得分:0)

默认的栅格后端使用]{0,2},因此您在任何窗口小部件中使用]绘制的内容为QImage

后备存储QPainter与底层平台共享映像位。在Windows上,QImage直接访问DIB部分的数据。在X11上,QImage访问共享内存QImage

在所有情况下,假设您的非Qt代码需要绘制位图,您可以在QImage事件中将数据指针从XImage传递到非Qt代码:

QImage

非Qt代码需要正确连接到大位图:它需要接受一个起始扫描线来绘制,X偏移和扫描线长度。