python QLineEdit文本C

2024-09-28 22:58:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个演示应用程序来演示如何更改字体颜色。

我可以用QLabel和QTextEdit

我没有办法更改QLineEdit的前景色。

我试过的唯一一个不出错的地方是:

color = QColorDialog.getColor(defaultHost.textColor(), pWidget, 'Get Text Color')
myPalette.setColor(myPalette.WindowText, QColor(color))

但是,文本颜色仍然是黑色。。。

这样做是可能的还是不可能的?


Tags: 应用程序颜色地方字体color办法前景色qlabel
3条回答

我解决了字体文本和背景

 self.my_line_edit.setStyleSheet(
                """QLineEdit { background-color: green; color: white }""")

下面是一段代码片段,我花了两天的时间反复尝试才弄明白。我希望它能帮助像我这样的新手。我在代码中的注释也应该有帮助。

def set_palette(pWidget, pItem):
    # Get the pallet
    myPalette = pWidget.palette()
    defaultHost = led_dem.textEdit

    if isinstance(pWidget, QPushButton):
        # NOTE: Using stylesheets will temporarily change the color dialog popups push buttons
        print "Instance Is: %s " %(pWidget.objectName())
        # Existing colors.
        bgColor = pWidget.palette().color(QPalette.Background)
        fgColor = pWidget.palette().color(QPalette.Foreground)
        # Convert the QColors to a string hex for use in the Stylesheet.
        bg = bgColor.name()
        fg = fgColor.name()

        if pItem == 'Text':
            # Use the color dialog with a dummy widget to obtain a new QColor for the parameter we are changing.
            color = QColorDialog.getColor(defaultHost.textColor(), pWidget, 'Get Text Color')
            # Convert it to a string HEX
            fg = color.name()
            # Update all parameters of interest
            pWidget.setStyleSheet('background-color: ' + bg + ';color: ' + fg)

        if pItem == 'Background':
            color = QColorDialog.getColor(defaultHost.textColor(), pWidget, 'Get Background Color')
            myPalette.setColor(myPalette.Base, QColor(color))
            bg = color.name()
            pWidget.setStyleSheet('background-color: ' + bg + ';color: ' + fg)

此片段显示:

  • 如何找到你正在处理的小部件类型
  • 如何将QColorQColorDialog转换为字符串十六进制格式以用于样式表;以及
  • 当小部件不使用所需类型的调色板元素时,如何使用QColorDialog

在我的例子中,我使用defaultHost = led_dem.textEdit,其中led_dem是我的表单,而textEdit是表单上的textEdit

另外,pWidget是完整的小部件定义,包括forminstance

你可以通过setting the object's style sheet来完成:

self.my_line_edit = QtGui.QLineEdit()

self.my_line_edit.setStyleSheet("color: red;")
# or
self.my_line_edit.setStyleSheet("color: rgb(255, 0, 0);")
# or
self.my_line_edit.setStyleSheet("""
    QLabel {
        color: red;
    }
    """)

相关问题 更多 >