从父QWidget区域显示子QWidget

时间:2012-04-23 17:18:30

标签: qt visibility crop qwidget

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

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

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

我认为必须有一种方法来实现这一目标,因为我研究Katepart component并且有KateCompletionWidget(显示建议),它是KateView的直接子项,当我运行它时(例如Kate文本编辑器),列表显示在文本编辑边框上。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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