更改QString或QLineEdit的颜色和字体

7

我可以如何更改QLineEdit的颜色和字体?

这是我的代码:

self.lineEdit = QtGui.QLineEdit(widget)
self.lineEdit.setText("enter keywords here") #I want this to be in italics and in brown color

文档中的setText语句可以了解到,它内部的文本是QString类型的。我如何改变它的字体和颜色呢?
3个回答

7

使用QPalette来设置颜色,然后使用{your palette}.setColor(QtGui.QPalette.Text, {your QColor}),字体则需要使用QFont

我的解决方案:

from PyQt4 import QtGui

from PyQt4 import QtCore


if __name__ == '__main__':
    import sys
    app = QtGui.QApplication(sys.argv)
    w = QtGui.QLineEdit()
    palette = QtGui.QPalette()
    palette.setColor(QtGui.QPalette.Text, QtCore.Qt.red)
    w.setPalette(palette)
    font = QtGui.QFont("Times", 15, QtGui.QFont.Bold)
    w.setFont(font)
    w.show()
    sys.exit(app.exec_())

enter image description here


1
QLineEdit是QWidget的子类,因此将具有父类方法。 - eyllanesc
1
@learncode 我使用Qt Widget文档,并查看包括继承成员在内的所有成员列表:http://doc.qt.io/qt-5/qlineedit-members.html - eyllanesc

4

您可以使用以下方式更改颜色:

self.lineEdit.setStyleSheet("color: rgb(x,x,x)")

使用字体大小:

self.lineEdit.setStyleSheet("fontName='Times-Italic'")

谢谢!我可以改变颜色,但不能改变字体? - learncode

0

在pyqt5中,你也可以通过StyleSheet这种方式来实现:

qrc = """
 /* Main LineEdit Setting */
 QLineEdit{
    background-color: #18181d;
    color: red;
    border-radius: 20%;
    height: 2.6em;

    font-weight: bold;
    font-family: 'Times New Roman';
 }

 /* when in hover */
 QLineEdit:hover{
    background-color: #25252d;
 }

 /* when has focus */
 QLineEdit:focus{
    border: 2px solid #13c386; 
    background-color: #25252d;
 }
"""
self.lineEdit.setStyleSheet(qrc)

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