如何确定一个点是不是在 QTabWidget 的 QTabBar 旁边?

Posted

技术标签:

【中文标题】如何确定一个点是不是在 QTabWidget 的 QTabBar 旁边?【英文标题】:How can you determine if a point is next to the QTabBar of a QTabWidget?如何确定一个点是否在 QTabWidget 的 QTabBar 旁边? 【发布时间】:2018-01-24 16:22:14 【问题描述】:

我有一个带有自定义 QTabBar 的自定义 QTabWidget。我需要确定一个点是否在 QTabBar 旁边的区域中。 (见图)

我有一个函数,它接受一个代表鼠标光标位置的点。使用mapFromGlobal() 函数和QTabBar.rect().contains() 函数我可以很容易地确定该点是否在QTabBar 内。然后我认为很容易确定该点是否在选项卡内容内或不以类似的方式。但是,“页面”大于内容小部件。所以通过去掉QTabBar和tab内容,我只能判断点是否在下图所示区域内:

如何确定该点是否位于 QTabBar 旁边,如第一张图片所示?有没有办法可以访问包含标签内容的底层“页面”?

【问题讨论】:

如果您希望我们帮助您,您必须提供minimal reproducible example 我一直在寻找一个概念性的答案,但我只是想出了一个。 【参考方案1】:

发布后我意识到有一个非常简单的解决方案。

从全局映射鼠标光标点后,判断QPoint.y()的值是否小于QTabBar.height()

【讨论】:

以上是关于如何确定一个点是不是在 QTabWidget 的 QTabBar 旁边?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 QWidget 在 QTabWidget 中包含 QList

QTabWidget 访问实际选项卡(不是内容小部件)

使用样式表自定义 QTabWidget

框架的 QTabWidget 圆角(不是标签)

如何在 QTabWidget 的两个选项卡之间插入空格?

如何确定一个点是不是在二维三角形中? [关闭]