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

2023-10-28

本文原创,原文地址: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去适应图片的大小。




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyQt中QLabel背景与字体的一些设置 的相关文章

随机推荐

  • 【日常问题记录】visual studio 出现 E0266 “data“ 不明确 错误

    解决方法 定义的变量和内部变量冲突 将变量的把名字改成其他名字即可
  • 【Kubernetes】mac 安装minikube

    1 一 官网安装 官网 https minikube sigs k8s io 搜了下网上如何通过Mac 安装看网上文章很多 但是受限于国内网络环境 很多都不行 各种下载失败 如果你有VPN 那么官方的步骤就容易走通 brew install
  • 小酌Django3——HTTP/URL/ORM简述

    小酌Django3 HTTP URL ORM简述 HTTP Hyper Text Transfer Protocol 超文本传输协议 是客户端与服务端请求和应答的标准 TCP 封装了Web服务的整个过程 通常 由客户端发起 建立到服务器指定
  • 矩阵基本知识

    1 identity matrix 单位矩阵 除了正对角线上是1 其它地方都是0 2 square matrix 方阵 行数和列数都相等的矩阵 3 diagonal matrix 对角矩阵 只在正对角线上有值 其它地方为0 4 matrix
  • js获取昨天,今天,明天,上周,本周,下周,上月,本月,下月,去年,本年,明年,上季度,本季度,下季度,向前推日期等

    配合的elementul的日期选择器使用的 参数是这样的 1代表 上 0代表 本 1代表 下 本月 1号到今天 意思就是比如今天是10月27号 那点击这个获取的是10月1号到10月27号得 效果如图 按顺序点了一遍 从左到右 上代码
  • 双十一前4小时,CentOS 6.5server启动错误排查

    11月10日晚上8点多 眼看要到双十一了 但我要说的这段经历却和双十一毫无关系 哈哈 这天准备向CentOS6 5server的svn上传一些文件 结果开机启动时 却出现了以下的界面 这是肿么回事 依据屏幕的提示 先使用root账号登录到系
  • JSP page指令errorPage属性起什么作用呢?

    转自 JSP page指令errorPage属性起什么作用呢 下文讲述JSP中page指令的errorPage功能简介说明 如下所示 errorPage功能 errorPage 属性用于设置JSP页面 当出现异常时的跳转页面 注意事项 er
  • STM32G431控制窗帘电机-窗帘电机拆机

    前言 最近做了一个电动窗帘的控制工程 简单点说就是实现电动窗帘的校准模式 窗帘移动到任意位置 说明 本文档为原创 转载请注明出处 要进行商业合作请联系本人1151313194 qq com 一 电机爆炸图拆解 窗帘电机主要时由三部分构成 电
  • Docker的隔离机制

    Docker的隔离性主要运用Namespace 技术 传统上Linux中的PID是唯一且独立的 在正常情况下 用户不会看见重复的PID 然而在Docker采用了Namespace 从而令相同的PID可于不同的Namespace中独立存在 如
  • 自动生成GFM目录

    自动生成GFM目录 自动生成GFM目录 参考文献 引言 使用方法 对于本地文档 对于远程文档 对于多个文档 本地与远程结合 自动插入和更新目录 输出目录文件 工作流程 目前工作流程注意事项及问题 参考文献 https github com
  • Go语言--Nohup后台启动

    linux的nohup命令用法 在应用Unix Linux时 我们一般想让某个程序在后台运行 于是我们将常会用 在程序结尾来让程序自动运行 nohup命令格式 nohup root start sh 在shell中回车后提示 appendi
  • HTML5(六)preserve and recover

    HTML5 六 preserve and recover 1 save the state of canvas context 2 So we have two method to save and restore the state of
  • run nerf

    install cuda install cudnn install anoconda 2022 08 18 wget https repo anaconda com archive Anaconda3 2022 05 Linux x86
  • 接口自动化get请求一些小知识点

    get 请求 requests get get请求的参数可以写在url里 写在url里时 参数和url之间需要加 get 请求的参数可以不写在url里 可以组织为字典传给参数param get 请求可以不传参数 获取响应信息 r reque
  • React之Hook(四)——使用 Effect Hook

    Effect Hook 可以让你在函数组件中执行副作用操作 import React useState useEffect from react function Example const count setCount useState
  • Doris数据划分

    数据划分 基本概念 Row Column 一张表包含行 Row 和列 Column Column可以分为两大类 Key和Value Tablet Partition 在Doris的存储引擎中 用户数据被水平划分为若干个数据分片 Tablet
  • Android面试题(32)-android编译过程和安装流程

    android app的编译过程 从网上拷了一张图 这张图很好的讲述了android的编译打包过程 接下来就具体的分析分析 大致分为7步 1 aapt Android Asset Packaging Tool android构建工具 在an
  • 网络前三层(物理,数据链路层,网络)数据包传输过程

    前三层 起始 第一层 物理层 hub 第二层 数据链路层 交换机 第三层 网络层 路由器 起始 起始 我就是一台电脑A 有一天 突然另一台电脑B想和我进行通话 于是我们各自开了个网口 用一根网线连接起来 这样就可以进行通信了 至于为什么可以
  • 教你如何使用解决keil编译大小限制问题

    关于上一篇我们讲解到可能刚接触keil的人会因为没有使用注册机 好像不能使用注册机 所以就缩写吧 导致编译超出32K文件时候会报错的问题 于是在这一篇我们就来好好讲解一下如何使用keil注册机去破解keil 解决方法 参考我的这篇文章 因为
  • PyQt中QLabel背景与字体的一些设置

    本文原创 原文地址 http blog csdn net jiuzuidongpo article details 45485127 一般来说 对QLabel的背景和字体设置的话 有两种方法 一种是使用样式表 就是stypesheet 另一