4

我在输入表单上有一个可编辑的组合框,当它获得焦点时,它的背景必须改变。以下代码适用于 QLineEdit,但对 QComboBox 没有影响。

QLineEdit, QComboBox { background-color: green; }
QLineEdit:focus, QComboBox:focus { background-color: red; }

是否可以仅使用 Qt 样式表使 QComboBox 的行为与 QLineEdit 一样?

4

1 回答 1

0

您可能需要通过子类化 QLineEdit 并将其安装到组合框中(使用QComboBox::setLineEdit())来完成此操作。然后,覆盖 QLineEdit 的 focusIn() 和 focusOut() 函数,并在这些函数中设置具有适当背景颜色的样式表。

另一种方法是在组合框(和/或其关联的 QLineEdit)上安装事件处理程序并捕获焦点输入/输出事件,然后更改样式表。

于 2013-02-08T20:28:33.960 回答