gpt4 book ai didi

qt - 重置 Qt 样式表

转载 作者:行者123 更新时间:2023-12-04 05:48:18 24 4
gpt4 key购买 nike

我已经成功地将我的 QLineEdit 设置为这样的样式:

alt text http://www.kimag.es/share/54278758.png

void Utilities::setFormErrorStyle(QLineEdit *lineEdit)
{
lineEdit->setStyleSheet(
"background-color: #FF8A8A;"
"background-image: url(:/resources/warning.png);"
"background-position: right center;"
"background-repeat: no-repeat;"
"");
}

我使用

调用了函数
Utilities *util = new Utilities;
util->setFormErrorStyle(lineNoStaf);

流程应该是这样的:

  1. 用户打开表单
  2. 用户填写数据
  3. 用户提交数据
  4. 出现错误
  5. 使用 setFormErrorStyle()
  6. 用户在QLineEdit中编辑文字,样式消失

这个函数应该可以一遍又一遍地重复使用,但是如何将 QLineEdit 信号(例如 textChanged())连接到其他类中将重置样式的函数表格然后断开信号,这样它就不会在每次文本更改时连续运行?

最佳答案

Qt 还允许在其样式表中使用动态属性,这意味着您无需为表单中的每个小部件类型编写自己的类。

来自 http://qt-project.org/doc/qt-4.8/stylesheet-examples.html

使用动态属性进行自定义

在很多情况下,我们需要提供一个包含必填字段的表单。为了向用户指示该字段是强制性的,一种有效的(尽管在美学上令人怀疑)解决方案是使用黄色作为这些字段的背景色。事实证明,使用 Qt 样式表很容易实现。首先,我们将使用以下应用程序范围的样式表:

 *[mandatoryField="true"] { background-color: yellow }

这意味着每个部件的mandatoryField Qt 属性设置为true 都将具有黄色背景。然后,对于每个必填字段小部件,我们只需动态创建一个mandatoryField 属性并将其设置为true。例如:

 QLineEdit *nameEdit = new QLineEdit(this);
nameEdit->setProperty("mandatoryField", true);

QLineEdit *emailEdit = new QLineEdit(this);
emailEdit->setProperty("mandatoryField", true);

QSpinBox *ageSpinBox = new QSpinBox(this);
ageSpinBox->setProperty("mandatoryField", true);

也适用于 Qt 4.3!

关于qt - 重置 Qt 样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3052730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com