我可以如何更改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类型的。我如何改变它的字体和颜色呢?使用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_())
您可以使用以下方式更改颜色:
self.lineEdit.setStyleSheet("color: rgb(x,x,x)")
使用字体大小:
self.lineEdit.setStyleSheet("fontName='Times-Italic'")
在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)