【问题标题】:How to gray a group of widgets when they are disabled?禁用时如何使一组小部件变灰?
【发布时间】:2017-07-23 05:37:56
【问题描述】:

有一个装满小部件的 QGroupBox,所有小部件都需要禁用并变灰。

setDisabled(true) 确实会在功能上禁用它们,但它们不会变灰。

将它们变成灰色的最简单和最合适的方法是什么? 这应该是一个标准操作:文本变为灰色,以便用户可以很容易地看到他们被禁用。

【问题讨论】:

  • 实际上,您的小部件不是灰色的可能有多种原因,这并不一定意味着setDisabled() 不起作用。 (我在回答中详细说明了这一点。)请提供MCVE。否则,无法确认您的观察结果或根本无法查明发生了什么。

标签: qt


【解决方案1】:

QWidget::setDisabled()QWidget enabled property 的(另一个)插槽。

来自 Qt 文档:

此属性保存小部件是否启用

一般来说,启用的小部件会处理键盘和鼠标事件;禁用的小部件不会。 QAbstractButton 例外。

某些小部件在禁用时会以不同方式显示。例如,按钮可能将其标签绘制为灰色。

(我强调。)

小部件的显示方式取决于它们各自的渲染以及应用程序中使用的(默认)QStyle

关于 paintEvent() 被重载的自定义小部件(派生自任何“内置”Qt 小部件的类),自定义小部件本身负责相应地呈现不同的状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-08
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多