Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >PyQt 编程入门(五)

PyQt 编程入门(五)

作者头像
用户6021899
发布于 2019-08-14 09:41:48
发布于 2019-08-14 09:41:48
1K0
举报

本篇将介绍调色板QPalette的应用和文本对齐的设置,还涉及到字体QFont的设定。

QPalette可设定控件的背景色或背景图片,还可设定文本的颜色。它可替代上一篇讲到的样式表StyleSheet的部分功能。

palette = QPalette()#创建调色板对象。

palette.setColor()可以选择不同的参数创建背景色,文本颜色

palette.setBrush()可以设置背景图片

但是,要使背景色或背景图片起作用,必须调用控件的setAutoFillBackground()方法,并将参数设为True。

最后,调用控件的setPalette()方法,指定调色板。

控件的setAlignment()方法可以设定文本的对齐。具体参数详见代码注释。

本篇还是仅以QLable作为例子讲解。代码的显示效果如下图:

代码如下,建议在浏览器中打开,并使用横屏阅读。

# _*_ coding:utf-8_*_ #调色板和文字的对齐 import sys from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import Qt

class MyWidget(QWidget):#创建一个QWidget的 子类 def __init__(self,parent = None):#初始化函数 super().__init__(parent)#调用基类的初始化函数 self.initUI()

def initUI(self): labels = list() glayout = QGridLayout() #创建字体对象(SansSerif',大小20,加粗、斜体) font = QFont('SansSerif',pointSize = 20, weight =QFont.Bold,italic =True) #font.setFamily(u"Arial") rows, cols = 3, 3 for i in range(rows): for j in range(cols): label = QLabel(u"Label%s"%(cols*i+j+1)) if i == 0: palette1 = QPalette()#新建调色板 palette1.setColor(QPalette.Window,QColor(0,100,80*j))#背景色 palette1.setColor(QPalette.WindowText,QColor(255,0,0))#文本颜色 label.setAutoFillBackground(True)#须设置自动填充背景色,否则不能改变背景 label.setPalette(palette1)#指定调色板 label.setFixedHeight(50) elif i == 1: palette2 = QPalette() palette2.setBrush(QPalette.Window,QBrush(QPixmap("ICON/smile.png")))#背景图片 palette2.setColor(QPalette.WindowText,QColor(0,100,250))#文本颜色 label.setAutoFillBackground(True)#须设置自动填充背景色,否则不能改变背景 label.setPalette(palette2) label.setFont(font)#指定字体 label.setFrameStyle(QFrame.Panel|QFrame.Raised) #设置样式 labels.append(label) glayout.addWidget(label,i,j,1,1)

#文本的对齐 labels[0].setAlignment(Qt.AlignLeft)#水平靠左 labels[1].setAlignment(Qt.AlignHCenter)#水平居中 labels[2].setAlignment(Qt.AlignRight)#水平靠右 labels[3].setAlignment(Qt.AlignJustify)#水平自动调整 labels[4].setAlignment(Qt.AlignTop)#垂向居顶 labels[5].setAlignment(Qt.AlignVCenter)#垂向居中 labels[6].setAlignment(Qt.AlignBottom)#垂向居底 labels[7].setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)#水平居中且垂向居中 labels[8].setAlignment(Qt.AlignRight | Qt.AlignVCenter)#水平靠右且垂向居中 #self.setPalette(palette1) self.setLayout(glayout) self.setGeometry(500,300,600,400)# 设置坐标x, y 以及宽和高 self.setWindowTitle(u'调色板和文字对齐')#设置窗口标题

if __name__== '__main__': app= QApplication(sys.argv) widget= MyWidget() widget.show() #显示到屏幕 sys.exit(app.exec_())

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
看了《最强大脑》,我决定做这个游戏
今年年初,新一季的《最强大脑》开播了,第一集选拔的时候大家做了一个数字游戏,名叫《数字华容道》,当时何猷君以二十几秒的成绩夺得该项目的冠军,来看一下当时的比赛:
王强
2018/08/09
1.3K0
看了《最强大脑》,我决定做这个游戏
PySide6 GUI 编程(20):QTabWidget的简单用法
bowenerchen
2024/07/30
3320
PySide6 GUI 编程(20):QTabWidget的简单用法
Qt编写自定义控件30-颜色多态按钮
这个控件一开始打算用样式表来实现,经过初步的探索,后面发现还是不够智能以及不能完全满足需求,比如要在此控件设置多个角标,这个用QSS就很难实现,后面才慢慢研究用QPainter来绘制,我记得当时接到这个定制控件任务的时候是2016年,那时候对QPainter的使用还不是很熟悉,也就是从此控件开始,逐步研究QPainter的绘制,把所有的内置函数都使用一遍,最终用的越来越熟悉,使得后来到了心中有坐标,万物皆painter的境界,可能就像武林中所说的打通了任督二脉吧。
feiyangqingyun
2019/08/27
2.1K0
Qt编写自定义控件30-颜色多态按钮
PySide6 GUI 编程(15):构造可变色的QWidget
bowenerchen
2024/07/25
2520
PySide6 GUI 编程(15):构造可变色的QWidget
PyQt5-QLabel控件是什么?方法有哪些?具体如何使用?
虫无涯
2023/11/10
4770
PySide6 GUI 编程(19):QStackedWidget的简单用法
bowenerchen
2024/07/30
2730
PySide6 GUI 编程(19):QStackedWidget的简单用法
PyQt5 基本窗口控件(状态栏/窗口/图标/提示消息/QLabel/文本类控件)
文章目录 1. 状态栏 2. 窗口居中显示 3. 关闭窗口 4. QWidget 5. 添加图标 6. 气泡提示信息 7. QLabel 添加快捷键 8. QLineEdit echoMode 验证器 inputMask 综合练习 9. QTextEdit learn from 《PyQt5 快速开发与实战》 1. 状态栏 self.statusbar.showMessage("hello, Michael", 2000),第二个参数是显示多长时间ms,默认无限长时间 # -*- coding: utf-8
Michael阿明
2022/05/10
2.6K0
PyQt5 基本窗口控件(状态栏/窗口/图标/提示消息/QLabel/文本类控件)
【QT】QT调色板类
QT提供的调色板类QPalette专门用于管理部件外观显示,相当于部件或对话框的调色板,管理他们所有的颜色信息。每个部件都包含一个QPalette对象,在显示时,按照它的QPalette对象中对各部分各状态下的颜色的描述进行绘制。
半生瓜的blog
2023/05/13
7770
嵌入式Qt-控制硬件:滑动条控制RGB灯
前面的几篇文章,介绍Qt例程,都是和硬件无关的,Windows平台和嵌入式平台都能运行。
xxpcb
2022/10/04
1.6K0
嵌入式Qt-控制硬件:滑动条控制RGB灯
C++ Qt开发:Slider滑块条组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍Slider滑块条组件的常用方法及灵活运用。
王瑞MVP
2023/12/16
8720
C++ Qt开发:Slider滑块条组件
PyQt5高级界面控件之QTableWidget(四)
QTableWidget是Qt程序中常用的显示数据表格的控件,类似于c#中的DataGrid。QTableWidget是QTableView的子类,它使用标准的数据模型,并且其单元数据是通过QTableWidgetItem对象来实现的,使用QTableWidget时就需要QTableWidgetItem。用来表示表格中的一个单元格,整个表格就是用各个单元格构建起来的
全栈程序员站长
2022/08/18
4.3K0
PyQt5高级界面控件之QTableWidget(四)
Python3 :PyCharm + Qt designer 学习 + 实例[通俗易懂]
Qt designer 可视化拖动生成界面,然后利用pycharm 进行转换 .py 文件,再编写槽函数,实现进一步的功能,不要说太方便了。
全栈程序员站长
2022/11/16
2.7K0
Python3 :PyCharm + Qt designer 学习 + 实例[通俗易懂]
PyQt5 表格控件(QTableWidget)
本篇介绍PyQt5的表格控件QTableWidget。QTableWidget类似于Excel的表,适用于显示结构化的数据。它的单元格是QTableWidgetItem实例,可以精准的控制每个单元格的文本和外观。
用户6021899
2019/08/14
11.2K0
Qt设置窗口背景颜色
1. 通过使用QPalette调色板设置后置背景颜色。 #include <QWidget> #include <QPalette> #include <QApplication> int main(int argc, char **argv) { QApplication a(argc, argv); QWidget w; w.resize(100, 100); QPalette palette(w.palette()); palette.setColor(QPa
Qt君
2020/06/17
7.2K0
python pyqt5 QLabel控件
from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout from PyQt5.QtCore import Qt from PyQt5.QtGui import QPixmap, QPalette import sys
用户5760343
2019/07/05
8560
【Qt】使用QPalette设置QPlainTextEdit颜色时,不生效
最近在看《Qt5.9 C++开发指南》这本书,这本书可以从异步社区上下载源代码,不过需要注册有点麻烦:
ccf19881030
2021/01/20
2.7K0
PyQt 自定义窗口部件(三)
Y形管由abci、edcf 以及cihgf三部分组成,内部的颜色由流体的流速决定。各个部分均使用逻辑坐标系绘制。
用户6021899
2019/08/14
6220
PyQt 自定义窗口部件(二)
本篇介绍用如何QPainter()画出一个可以显示分数的滑块控件,并使其能正确地响应鼠标事件,键盘事件以及自动调整尺寸。
用户6021899
2019/08/14
1.2K0
Qt | QChart和QChartView配合实现面积图、条形图、折线图、饼图、曲线图、散点图,支持显示坐标值和坐标点。
一般我将ctrl+alt+L或者shift+alt+L来展开和折叠所有代码块,方便快速定位函数位置。(这个需要自定义)
Qt历险记
2024/07/03
1.5K0
Qt | QChart和QChartView配合实现面积图、条形图、折线图、饼图、曲线图、散点图,支持显示坐标值和坐标点。
相关推荐
看了《最强大脑》,我决定做这个游戏
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档