QLineEdit изменить цвет PlaceholderText - PullRequest
2 голосов
/ 25 мая 2020

У меня есть виджет LineEdit в приложении, и его PlaceholderText изменяется в зависимости от ввода пользователя. Однако я бы хотел, чтобы PlaceholderText выглядел как обычный текст, то есть был черным, а не серым. используя языки, отличные от Python, что затрудняет реализацию решения в моем скрипте.

1 Ответ

1 голос
/ 25 мая 2020

Чтобы изменить цвет placeholderText, вы должны использовать 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()
...