在父 QWidget 区域之外显示子 QWidget

Posted

技术标签:

【中文标题】在父 QWidget 区域之外显示子 QWidget【英文标题】:Show child QWidget out of parent QWidget area 【发布时间】:2012-04-23 17:18:29 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于在父 QWidget 区域之外显示子 QWidget的主要内容,如果未能解决你的问题,请参考以下文章

滚动区域不显示

Qt中,当QWidget不是作为顶级窗体出现时,怎么让他显示关闭按钮呢

winform 怎么让子窗体显示在主窗体上?

WPF 子窗体 在 父窗体 中 打开,初学不懂,请指教

Qt 的几个核心机制总结之 布局(QWidget可以设置setSizePolicy,而QSizePolicy有Fixed,minimum,maximum,preferred,expanding,ign

如何使用 jQuery 在父 div 中单击时将子 div 的大小调整为单击点或区域?