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