如何隐藏 QSplitter 小部件中的句柄?

Posted

技术标签:

【中文标题】如何隐藏 QSplitter 小部件中的句柄?【英文标题】:How to hide handles in QSplitter widget? 【发布时间】:2009-09-06 08:20:02 【问题描述】:

是否可以从 QSplitter 小部件中完全隐藏句柄?我试图 hide() 它们但它不起作用 - 句柄仍在屏幕上并且 isVisible() 报告错误。

QSplitter::setHandleWidth 无法按预期工作 - 使用 0 调用它时不会隐藏句柄。

【问题讨论】:

【参考方案1】:

无法设置零宽度句柄似乎很奇怪,可能被认为是一个错误 - 但你又为什么要这样做?您将无法抓取零宽度手柄,因此您似乎真的想使用垂直/水平布局。

【讨论】:

我想“锁定”布局,就像许多应用程序中的锁定工具栏功能一样。 试试; handle->splitter(num)->setEnabled(false) 我试过了,它禁用了句柄,但不幸的是没有隐藏它们。【参考方案2】:

如何继承 QSplitter 并覆盖 paintEvent(QPaintEvent*) 来阻止小部件的实际绘制?

【讨论】:

看起来 QSplitter 子类化是唯一的方法。【参考方案3】:

使用 QSplitter::handleWidth(1)。 我尝试使用 handleWidth(0) 但似乎接受的最小宽度为 1

【讨论】:

【参考方案4】:

将图像设置为不存在的图像似乎有效

self.splitter.setStyleSheet("QSplitter::handle image: url(images/notExists.png); ")

【讨论】:

【参考方案5】:

现在可以使用零调用 QSplitter::setHandleWidth。 如果您使用设计器,将句柄宽度属性设置为零就可以了。

【讨论】:

以上是关于如何隐藏 QSplitter 小部件中的句柄?的主要内容,如果未能解决你的问题,请参考以下文章

QSplitter 显示两个小部件之间的分隔线或边距

从 QSplitter 中删除小部件

QSplitter 未正确设置大小

如何隐藏博客标签搜索中的小部件

在 QSplitter 中带有 QWidget 的 QScrollArea

如何通过 qt 设计器创建 QSplitter ui 类?