【发布时间】:2014-05-15 16:41:58
【问题描述】:
我知道 Combobox 小部件有可用的 .setEnabled(bool) 方法。但是除了使它不可用之外,这个方法还会使这个小部件变灰。我需要设置 Combobox 使其显示为活动但仍保持只读状态。有什么想法吗?
【问题讨论】:
-
有什么想法吗?不要这样做。不要让 GUI 元素看起来像它们不是的东西。这对用户来说既不直观,也不适合开发人员。
-
正如其他评论所提到的,您不应该这样做,因为它不是系统想要的,这意味着用户不会期望您的程序表现得像这样,这会导致并发症并且是不好的做法。如果您可以详细说明您的程序到底是什么,我们可以提供其他一些解决方案。如果您想要 1 个选择,您可以做的最好的事情是删除项目并只保留用户的项目,我认为不可能在不将其变灰的情况下禁用它。
-
如果你真的需要,你可以使用
setStyleSheet("color: ...")改变它的外观 -
有两个 listWidgets 显示具有完全相同属性的相同类别的项目。第一个 ListWidget 是只读的。当用户单击一个项目时,组合框仅“传递”一个信息。 Combobox 仍然从所有可用选项中正确显示正确的属性名称,但将其更改为 somethingelse 不会更改 ListWidget 项的属性。另一个 listWidget 以读写模式显示项目。这意味着使用组合框下拉菜单更改属性将更改项目的属性。