2

为了完成建议,我将 QListWidget 作为 QPlainTextEdit 中的孩子。

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

我的一个想法是使文本和列表编辑元素成为“兄弟姐妹”,即将它们添加到同一个父级。但这需要我的事件处理机制(因为我认为这两个元素之间的父子关系)。

我认为必须有一种方法可以实现这一点,因为我研究了 Katepart 组件并且有 KateCompletionWidget(显示建议)是 KateView 的直接子级,当我运行它(例如 Kate 文本编辑器)时,列表显示在文本编辑边框上.

4

2 回答 2

1

不幸的是,孩子无法在父母的 QWidget 矩形之外进行绘画。您的兄弟方法是解决此问题的流行方法。另一种方法是让子级通知父级它想要绘制的内容,但这可能更高级一些,因为您必须重新实现绘制事件。

于 2012-04-23T18:38:53.483 回答
0

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

于 2012-04-24T08:11:04.343 回答