我试图将子窗口小部件添加到Qt5中的窗口小部件。 问题是,父窗口小部件呈现的内容不为Qt所知,因此透明度无法正常工作。使用自定义QPainter呈现QWidget
要解决这个问题,我需要使用自定义QPainter来呈现小部件。
在Qt4中,我可以通过使用属性WA_PaintOutsidePaintEvent并以另一种方法呈现小部件来实现。
但是,在Qt5中,这个属性消失了。
我已经试过什么:
- 创建一个QWidget并重写的paintEvent方法。
- 没有真正的工作(没有画任何东西),但也许这只是一个小小的错误。据我了解,这个事件也不会让小部件自己做渲染,这是我想要阻止的。
- 创建的QGraphicsView和QGraphicsScene和小工具加入到QGraphicsScene
- 绘制控件和透明度的工作。事件(鼠标&键盘),但是,不起作用。
请显示您的代码 – eyllanesc
我真的不知道这是怎么用的。我的代码目前只是很多实验。 如果有帮助,我可以用更多的代码充实这些例子,但考虑到我目前不知道自己在做什么,我怀疑这会有所帮助。 它归结为我需要能够以某种方式将子窗口小部件绘制到QImage中,并且他们仍然需要能够获取鼠标和键盘事件。 –
然后我试着先学习和理解基础知识,然后用我刚刚经历的知识。我不太了解你的问题,例如,这意味着“问题在于父部件渲染的内容不为Qt所知”。它显示了你想要理解你的图像,如果你打算把这个小部件放在另一个小部件使用的布局中,改变如果你想改变颜色,小部件的形式,你必须重写方法paintEvent 。 – eyllanesc