QTextEdit占位符颜色

QTextEdit placeholder color

这是我的问题: 我正在使用 Qt,我的表单中有两个 QLineEdits(名称、作者)和一个 QTextEdit(描述)。 我需要为他们每个人设置占位符,所以我写了这段代码:

        name->setPlaceholderText("Name");
        author->setPlaceholderText("Author");
        description->setPlaceholderText("Description");

现在我想使用 QSS 来设计它的样式,所以我这样写:

    QLineEdit[text=""],
    QTextEdit[text=""] {
      color: red;
    }

但不幸的是,这仅适用于 QLineEdits,我无法找到一种方法来检查 QTextEdit 在 QSS 中是否为空。 你有什么主意吗?提前致谢。

有一种非常简单的方法可以以编程方式执行此操作。 您可以更改 QLineEditQTextEditQPalette 并将 QPalette::Text 修改为 setColor

另一种方法是捕获信号是否为 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