Qt 在父QWidget区域外显示子QWidget

Qt 在父QWidget区域外显示子QWidget,qt,visibility,crop,qwidget,Qt,Visibility,Crop,Qwidget,我将QListWidget作为一个孩子放在QPlainTextEdit中,用于完成建议 建议列表显示在光标下,当行几乎满时,列表小部件的一部分被文本编辑的边框裁剪。是否有可能强制子部件显示出父部件区域 我有一个想法,就是让文本和列表编辑元素“兄弟”,即。E将它们添加到同一父级。但这需要我的事件处理机制(我假设这两个元素之间存在父子关系) 我认为一定有办法做到这一点,正如我所研究的,KateCompletionWidget(显示建议)是KateView的直接子组件,当我运行它(例如Kate文本编辑

我将QListWidget作为一个孩子放在QPlainTextEdit中,用于完成建议

建议列表显示在光标下,当行几乎满时,列表小部件的一部分被文本编辑的边框裁剪。是否有可能强制子部件显示出父部件区域

我有一个想法,就是让文本和列表编辑元素“兄弟”,即。E将它们添加到同一父级。但这需要我的事件处理机制(我假设这两个元素之间存在父子关系)


我认为一定有办法做到这一点,正如我所研究的,KateCompletionWidget(显示建议)是KateView的直接子组件,当我运行它(例如Kate文本编辑器)时,列表会显示在文本编辑边框上。

不幸的是,孩子无法在家长的QWidget rect之外画画。您的兄弟姐妹方法是解决此问题的常用方法。另一种方法是让子对象通知父对象它想要绘制的内容,但这可能更高级一些,因为您必须重新实现绘制事件。

今天我找到了一种可能可行的方法——它基于QListWidget元素的
setWindowFlags(Qt::ToolTip)
方法。然而,在定位和事件处理方面有一些细微的变化