PyQt中QLabel背景与字体的一些设置

本文原创,原文地址:

一般来说,对QLabel的背景和字体设置的话,有两种方法:一种是使用样式表,就是stypesheet,另一种就是不使用样式表了。

首先来说不实用样式表的方法,这种方法相对于样式表来说比较灵活,但是设置起来比较麻烦,但是作为一名qt程序猿来说,也是必须要会熟练使用了。当然,我下面要总结的必然也是些不是很完整,很成熟的方法,只是经过本人测试可用的管窥之见,用于不用,全在念间。废话不多说,先看一段代码,根据这段代码由我一一说下:

#coding:utf-8'''Created on 2015年2月9日@author: guowu'''import sysfrom PyQt4.QtGui import QPalette,QPixmap,QFont,QMainWindow,QLabel,QApplicationfrom PyQt4.QtCore import Qt#import classblockclass MainWindow(QMainWindow):def __init__(self, parent=None):QMainWindow.__init__(self, parent)self.setFixedSize(600,600)self.label = QLabel(self)self.label.setFixedWidth(400)self.label.setFixedHeight(400)self.label.setAlignment(Qt.AlignCenter)self.label.setText(u"这个标签的长裤可以变化吗aaaaaaaa东西南北?")pe = QPalette()pe.setColor(QPalette.WindowText,Qt.red)self.label.setAutoFillBackground(True)pe.setColor(QPalette.Window,Qt.blue)#pe.setColor(QPalette.Background,Qt.blue)self.label.setPalette(pe)self.label.setFont(QFont("Roman times",10,QFont.Bold))self.label.move(100,100) if __name__ == "__main__":app = QApplication(sys.argv)mainwindow = MainWindow()mainwindow.show()sys.exit(app.exec_())上面的代码:

1,设置labe的字体居中:

self.label.setAlignment(Qt.AlignCenter)此居中为上下左右居中

2,设置label的背景颜色和字体颜色:

pe = QPalette()pe.setColor(QPalette.WindowText,Qt.red)#设置字体颜色self.label.setAutoFillBackground(True)#设置背景充满,为设置背景颜色的必要条件pe.setColor(QPalette.Window,Qt.blue)#设置背景颜色#pe.setColor(QPalette.Background,Qt.blue)<span style="font-family: Arial, Helvetica, sans-serif;">#设置背景颜色,和上面一行的效果一样self.label.setPalette(pe)

颜色如果用rgb表示的话,则rgb的第四个数可以表示透明度,0为透明,255为不透明。

3,,设置字体的类型大小和加粗:

self.label.setFont(QFont("Roman times",10,QFont.Bold))

4,设置label的背景图片,用pixmap:

pixMap = QPixmap("background.jpg").scaled(self.label.width(),self.label.height())self.label.setPixmap(pixMap)将上面的设置背景的代码注掉,然后添上以上两行代码,即可为label设置背景图片,注意图片路径要写正确。这种方式一般要写到paintEvent方法内,否则label的字体内容可能被覆盖。

5,设置字体的大小和类型等还有另一中方案:

font = QFont()font.setFamily("Helvetica")fontHeight = rect.height()/1font.setPixelSize(fontHeight)font.setBold(True)self.label.setFont(font)

以上就是不用样式表来设置的方法。

如果使用样式表的话,则就比较简单了:

添上下面的样式表,则可设置这个窗口中所有labe的背景颜色,字体颜色大小等,也可以针对每个label进行设置。

self.setStyleSheet("QLabel{background:white;}""QLabel{color:rgb(100,100,100,250);font-size:15px;font-weight:bold;font-family:Roman times;}""QLabel:hover{color:rgb(100,100,100,120);}")若使用背景图片:

则第一行改为:

"QLabel{background-image:url(background.jpg);}"这样设置的话,背景图片无法自适应大小,需要label去适应图片的大小。

我想,旅行需要孤独,需要一个人慢慢体会,静静思考。

PyQt中QLabel背景与字体的一些设置

相关文章:

你感兴趣的文章:

标签云: