QLineEdit如何更改占位文本的颜色?

4
我在应用程序中有一个LineEdit小部件,它的PlaceholderText会根据用户的输入而改变。但是,我想让PlaceholderText看起来像普通文本,也就是说,要变成黑色而不是灰色。
我在网上查找了一些资料,但大多数结果对我来说不够精确,或者使用的语言不同于Python,这使得我难以在我的脚本中实现解决方案。
1个回答

3

如果要更改占位符文本的颜色,则必须使用QPalette:

import sys

from PyQt5 import QtGui, QtWidgets


def main():

    app = QtWidgets.QApplication(sys.argv)

    w = QtWidgets.QLineEdit(placeholderText="Stack Overflow")

    pal = w.palette()
    text_color = pal.color(QtGui.QPalette.Text)
    # or
    # text_color = QtGui.QColor("black")
    pal.setColor(QtGui.QPalette.PlaceholderText, text_color)
    w.setPalette(pal)

    w.show()

    sys.exit(app.exec_())


if __name__ == "__main__":
    main()

非常好的解决方案。 - Sajjad Aemmi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接