答案 0 :(得分:0)
我相信最好的解决方案是将所谓的覆盖小部件作为窗口的父项,或者甚至将覆盖小部件置于其自己的窗口中。
第一个解决方案可能更容易实现,但是覆盖小部件绑定到了窗口的内部。
如果采用第二种解决方案,则必须使用Windows标志以使其成为无边界。
在两种情况下,您可能都必须使用raise()
函数来确保叠加小部件位于顶部。
讨论“使用QPaintEvent或QGraphicsScene”是题外话。绘制小部件的方式不会影响小部件与小部件堆栈的交互方式。
如果您想举一个例子,可以看看QCompleter
的代码,它的功能与此类似。尤其要注意QCompleter::setPopup()
和QCompleterPrivate::showPopup()
。