QGraphicsView 中的透明 QLabel 是个好主意吗?
我正在尝试编写一款软件,允许用户单击视频帧并标记帧中某个位置的 x,y 坐标。为了设计这个,我一直想使用 QGraphicsView 子类,并在鼠标单击事件中,在单击发生的位置实例化一个带有 PNG 图像“目标”的 QLabel。
到目前为止,除了让 QLabel 变得透明之外,我已经完成了所有工作。我在网上找到的所有信息似乎都不适用于最新的 Qt。我是否应该完全重新考虑我的设计并利用与 Qt 中的绘画的某种集成?或者有没有办法挽救 QLabel PNG 实现并确实使标签透明?
谢谢, ——丹妮。
I'm trying to write a piece of software that allows one to click on a video frame and mark the x,y coordinates of a location in the frame. To design this, I've been wanting to use a QGraphicsView subclass and, on the mouse click event, instantiate a QLabel with a PNG image "target" on where the click occurred.
So far I've gotten everything to work except getting the QLabel to be transparent. All of the info I've found online doesn't seem to work with the latest Qt. Should I totally rethink my design and utilize some sort of integration with painting in Qt? Or is there a way to salvage the QLabel PNG implementation and indeed make the label transparent?
Thanks,
--Dany.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
QGraphicsView 中的 QLabel 确实不是一个好主意。 QGraphicsView 被设计为托管 QGraphicsItems,要显示图像,您应该使用 QGraphicsPixmapItem。
将 QWidget 嵌入到 QGraphicsView 中会产生一些开销,并且实际上是为无法通过 QGraphicItems 轻松重新实现的复杂小部件而设计的。
QLabel inside QGraphicsView is not a good idea indeed. QGraphicsView was designed to host QGraphicsItems, to display an image you should use QGraphicsPixmapItem.
Embedding QWidget into QGraphicsView has some overhead and was really designed for complex widgets that can't be easily reimplemented in terms of QGraphicItems.
我认为
QGraphicsItem
具有ItemIgnoresTransformations
标志正是您想要的。I think a
QGraphicsItem
withItemIgnoresTransformations
flag is just what you want.