在textedit事件后改变颜色

时间:2013-06-11 06:49:19

标签: event-handling qt4 pyqt

我试图实现的是,如果用户正在编辑我的表单中的特定字段(使用QT Designer设计),背景颜色应变成例如变成红色。以编程方式我可以为一个字段做,但是,我有很多QLineEdits和QComboBoxes。是否有可能同时为选定数量的元素执行此操作?这也可以仅通过QT Designer完成吗?

提前感谢您的帮助!

干杯,

1 个答案:

答案 0 :(得分:1)

只需将lineEdit控件的信号 textChanged 连接到插槽即可。然后根据需要更改控件样式表。

示例:

yourControl.textChanged.connect(onEdit_slot)

然后定义像

这样的插槽
def onEdit_slot():
    sender().setStyleSheet("background-color: rgba(255, 254, 134, 150);")

PS:请记住,样式表将保持不变,直到您更改它为止,因此在编辑和失去焦点后,您的控件将保持红色背景。要将其更改回来,只需将控件的 editingFinished 信号连接到另一个插槽并重置样式表

示例:

yourControl.editingFinished.connect(onFinishedEditing_slot)

然后定义插槽:

def onFinishedEditing_slot():
    sender().setStyleSheet("")