我将如何制作覆盖小部件

时间:2019-07-09 15:27:49

标签: python c++ qt pyqt

如何使用qt制作覆盖小部件? Example

Example 2

我已经考虑过使用QPaintEvent或QGraphicsScene,但是我希望能够添加小部件并使小部件不占用布局中的空间,从而导致其他小部件在出现弹出窗口时发生移动。

1 个答案:

答案 0 :(得分:0)

我相信最好的解决方案是将所谓的覆盖小部件作为窗口的父项,或者甚至将覆盖小部件置于其自己的窗口中。

第一个解决方案可能更容易实现,但是覆盖小部件绑定到了窗口的内部。

如果采用第二种解决方案,则必须使用Windows标志以使其成为无边界。

在两种情况下,您可能都必须使用raise()函数来确保叠加小部件位于顶部。

讨论“使用QPaintEvent或QGraphicsScene”是题外话。绘制小部件的方式不会影响小部件与小部件堆栈的交互方式。

如果您想举一个例子,可以看看QCompleter的代码,它的功能与此类似。尤其要注意QCompleter::setPopup()QCompleterPrivate::showPopup()