繁体   English   中英

有没有办法在 PyQt5 中动态更改背景颜色?

[英]Is there no way to change background color DYNAMICALLY in PyQt5?

我正在使用 PyQt5 用 Python 编写一个应用程序。 我真的很想更改 QLable、QTextEdit 或任何可以动态显示某些颜色的背景。

我已经看到很多改变某些东西背景颜色的例子,但所有这些似乎我都需要提前制作一些“调色板”。

我想要做的是根据用户的键盘输入更改背景颜色,它指示这样的颜色: #fffff(255, 255, 255) 那么真的没有办法实现这个吗??

我应该使用什么类型的对象并不重要。 做一个长方形就够了。

这是一个如何使用setStyleSheet动态更改背景颜色的基本示例。 小部件的背景颜色更改为在输入行中输入的任何颜色。 颜色可以作为命名的 html 颜色(红色、蓝色、黄色等)或作为 #rrggbb 形式的十六进制代码输入。

from PyQt5 import QtWidgets


class Widget(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        layout = QtWidgets.QHBoxLayout(self)
        self.line_edit = QtWidgets.QLineEdit()
        self.line_edit.setPlaceholderText('Enter a color')
        self.line_edit.setStyleSheet('QLineEdit {background-color:white}')
        layout.addWidget(self.line_edit)

        self.line_edit.editingFinished.connect(self.change_background)

    def change_background(self):
        col = self.line_edit.text()
        self.setStyleSheet(f'QWidget {{background-color: {col};}}')
        self.line_edit.clear()


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    widget = Widget()
    widget.resize(400,300)
    widget.show()
    app.exec()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM