我的问题是:我使用的是Qt,我的表单中有两个QLineEdits (名称、作者)和一个QTextEdit (描述)。我需要为每个占位符设置占位符,所以我编写了以下代码:
name->setPlaceholderText("Name");
author->setPlaceholderText("Author");
description->setPlaceholderText("Description");
现在,我想使用QSS对其进行样式化,因此我编写了以下内容:
QLineEdit[text=""],
QTextEdit[text=""] {
color: red;
}
但不幸的是,这只适用于QLineEdits,我无法找到一种方法来检查QTextEdit在QSS中是否为空。你有什么想法吗?提前谢谢。
发布于 2022-03-08 09:26:57
有一种非常简单的方法可以通过编程来实现。您可以更改QPalette
的QLineEdit
和QTextEdit
,并使用setColor
修改QPalette::Text
。
另一种同样的方法是捕获信号(如果它是empty
的话)并设置样式表。
https://doc.qt.io/qt-5/stylesheet-examples.html在QT文档中没有这样做的参考。
如果您想查看复杂的示例,而不是这样的话:
Change color of placeholder text in QLineEdit
https://forum.qt.io/topic/90176/change-qlineedit-placeholder-text-color
https://stackoverflow.com/questions/71391863
复制相似问题