在父 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不是作为顶级窗体出现时,怎么让他显示关闭按钮呢
Qt 的几个核心机制总结之 布局(QWidget可以设置setSizePolicy,而QSizePolicy有Fixed,minimum,maximum,preferred,expanding,ign