PyQt中QLabel背景与字体的一些设置
本文原创,原文地址:http://blog.csdn.net/jiuzuidongpo/article/details/45485127
一般来说,对QLabel的背景和字体设置的话,有两种方法:一种是使用样式表,就是stypesheet,另一种就是不使用样式表了。
首先来说不实用样式表的方法,这种方法相对于样式表来说比较灵活,但是设置起来比较麻烦,但是作为一名qt程序猿来说,也是必须要会熟练使用了。当然,我下面要总结的必然也是些不是很完整,很成熟的方法,只是经过本人测试可用的管窥之见,用于不用,全在念间。废话不多说,先看一段代码,根据这段代码由我一一说下:
#coding:utf-8 """ Created on 2015年2月9日 @author: guowu """ import sys from PyQt4.QtGui import QPalette,QPixmap,QFont,QMainWindow,QLabel,QApplication from PyQt4.QtCore import Qt #import classblock class 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()/1 font.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去适应图片的大小。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了