如何防止验证样式影响工具提示

Posted

技术标签:

【中文标题】如何防止验证样式影响工具提示【英文标题】:How to prevent validation style from affecting tooltip 【发布时间】:2021-08-05 22:36:28 【问题描述】:

我使用here 提供的答案向用户提供有关QLineEdit 输入质量的信号。问题是我的QToolTip 加入了这种不理想的风格。

这是验证器

def handleValidationChange(self, state):
    if state == QtGui.QValidator.Invalid:
        colour = 'white'
    elif state == QtGui.QValidator.Intermediate:
        colour = 'yellow'
    elif state == QtGui.QValidator.Acceptable:
        colour = 'lightgreen'
   
    self.nameLineEdit.setStyleSheet('background-color: %s' % colour)
    QtCore.QTimer.singleShot(5000, lambda: self.nameLineEdit.setStyleSheet(''))

app.setStyleSheet 中,我尝试使工具提示具有不同的样式,但如果我在输入时将鼠标悬停在行编辑上,它最终会匹配验证样式。

 app.setStyleSheet('''\
    QToolTip background-color: lightblue !important;
    '''
    )

有谁知道如何将带有验证的行编辑样式与QToolTip 样式分开?在此屏幕截图中,行编辑和工具提示背景颜色匹配。

【问题讨论】:

【参考方案1】:

您必须指明样式表影响哪个(或多个)类,如果没有,则相当于使用 QWidget 作为一个类,因此它将应用于其所有子项和工具提示。

解决办法是:

self.edit.setStyleSheet(
    "QLineEditborder: 3px solid %s QToolTipbackground-color: lightblue"
    % colour
)
QtCore.QTimer.singleShot(
    1000,
    lambda: self.edit.setStyleSheet("QToolTipbackground-color: lightblue"),
)

【讨论】:

以上是关于如何防止验证样式影响工具提示的主要内容,如果未能解决你的问题,请参考以下文章

java 实现登录验证码 (kaptcha 验证码组件)

是否可以配置 OWIN Cookie 身份验证以防止某些 URL 影响滑动过期?

防止验证码的恶意发送

自定义 Bootstrap 的验证工具提示?

jQuery 验证:如何不显示错误?或如何将错误显示为工具提示?

如何防止 XML 注入