QFont字体类
QFont 是一个用于表示 字体 的类。它可以设置字体的类型、大小、粗细、斜体、下划线等属性。from PySide6.QtGui import QFont。
from PySide6.QtGui import QFont
from PySide6.QtWidgets import QApplication,QWidget,QLabel
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.resize(300,300)
self.label1 = QLabel('标签1',self)
# font = QFont()
font1 = QFont('宋体', 16)
# 加粗
font1.setBold(True)
# 斜体
font1.setItalic(True)
# 下划线
font1.setUnderline(True)
self.label1.setFont(font1)
self.label2 = QLabel('标签2',self)
font2 = QFont()
# 设置字体
font2.setFamily('隶书')
# 删除线
font2.setStrikeOut(True)
# 设置字体大小
font2.setPointSize(18)
self.label2.setFont(font2)
self.label3 = QLabel('标签3',self)
self.label1.setGeometry(0,0,100,20)
self.label2.setGeometry(0,40,100,20)
self.label3.setGeometry(0,80,100,40)
if __name__ == '__main__':
app = QApplication([])
afont = QFont('方正舒体',16)
# 给应用程序设置默认字体
app.setFont(afont)
win = MyWindow()
win.show()
app.exec()
QColor颜色类
QColor 是 PySide6(以及 PyQt)中用于表示颜色的类。它可以用来表示 RGB、HSV、CMYK 等不同颜色模型中的颜色。from PySide6.QtGui import QColor,Qt
RGB(红 red,绿 gree,蓝 blue)值0-255
from PySide6.QtGui import QColor,Qt
# 使用整数 RGB 值 (0-255)
color = QColor(255,0,0)
# 使用十六进制颜色代码
color = QColor('#FF0000')
# 字符串
color = QColor('red')
# 使用颜色的全局变量
color = QColor(Qt.GlobalColor.red)
from PySide6.QtGui import QColor,Qt
#红色
color = QColor(255,0,0)
red = color.red()
green = color.green()
blue = color.blue()
print('r',red,'g',green,'b',blue)
# 获取十六进制颜色代码
print(color.name())
# 设置为绿色
color.setRgb(0, 255, 0)
print('r',color.red(),'g',color.green(),'b',color.blue())
# 检查颜色是否有效。没有设置任何颜色值或非法颜色值返回False
print(f"Is color valid? {color.isValid()}")
QPalette调色板类
QPalette是用于管理 GUI 应用程序颜色主题的类。它定义了窗口部件(如按钮、标签、文本框等)的前景色、背景色和其他颜色属性。通过 QPalette,你可以自定义应用程序的外观和风格。
from PySide6.QtGui import QPalette
控件.palette() 获取调色板
控件.setPalette(QPalette)设置控件的调色板
两个重要的参数
ColorGroup 用于定义不同状态下控件的颜色:
激活状态(Active 获得焦点)
非激活状态(Inactive 失去焦点)
失效状态(Disabled 禁用)
Color Roles 定义了不同控件的颜色,例如:
背景色(QPalette.ColorRole.Window)
前景色(QPalette.ColorRole.WindowText)
按钮背景色(QPalette.ColorRole.Button)
按钮文本色(QPalette.ColorRole.ButtonText)
高亮色(QPalette.ColorRole.Highlight)
高亮文本色(QPalette.ColorRole.HighlightedText)
from PySide6.QtGui import QPalette,QFont,QColor
from PySide6.QtWidgets import QApplication,QWidget,QLabel
if __name__ == '__main__':
app = QApplication([])
# 获取调色板
palette = app.palette()
# 设置窗口处于激活状态的背景颜色
palette.setColor(palette.ColorGroup.Active,palette.ColorRole.Window,QColor('yellow'))
# 设置窗口处于非激活状态的背景颜色
palette.setColor(palette.ColorGroup.Inactive,palette.ColorRole.Window,QColor('white'))
app.setPalette(palette)
win = QWidget()
win.resize(300,300)
label = QLabel('Hello',win)
font = QFont('宋体',20)
label.setFont(font)
label.setGeometry(10,10,100,20)
lpalette = label.palette()
# 激活状态 背景颜色变成粉色
lpalette.setColor(lpalette.ColorGroup.Active,lpalette.ColorRole.Window,QColor('pink'))
# 禁用状态背景颜色变成蓝色
lpalette.setColor(lpalette.ColorGroup.Disabled,lpalette.ColorRole.Window,QColor('blue'))
# 非激活状态字体变成红色
lpalette.setColor(lpalette.ColorGroup.Inactive,lpalette.ColorRole.WindowText,QColor('red'))
# 开启背景填充
label.setAutoFillBackground(True)
label.setPalette(lpalette)
# label.setEnabled(True)
win.show()
app.exec()
QPixmap
QPixmap用于在屏幕上显示图像的类。常见用途:在 QLabel 或 QPushButton 中显示图像。功能具有图像缩放、旋转和裁剪。
可以读取和写入以下常见的图像格式,BMP、GIF、JPG/JPEG、PNG、PPM、XBM、XPM
from PySide6.QtGui import QPixmap
qp1 = QPixmap()
# 长 100 宽 100
qp2 = QPixmap(100,100)
# 读入指定的图片
qp3 = QPixmap('imgs/a.png')
from PySide6.QtWidgets import QApplication,QWidget,QLabel
from PySide6.QtGui import QPixmap,Qt
if __name__ == "__main__":
app = QApplication([])
win = QWidget()
win.resize(300,300)
q = QPixmap()
# 读入图像
q.load('imgs\\a.png')
# 保存图像
q.save('out.png')
# 转换成QImage图像
qimage = q.toImage()
print(type(qimage))
# 获取宽度和高度
print('宽',q.width(),'高',q.height())
q1 = q.scaled(100,100,Qt.AspectRatioMode.KeepAspectRatio,
Qt.TransformationMode.SmoothTransformation)
# Qt.TransformationMode
# SmoothTransformation 平滑收缩算法,质量好,速度慢
# FastTransformation 快速收缩算法,质量低,速度快
# Qt.AspectRatioMode.
# IgnoreAspectRatio 忽视宽、高
# KeepAspectRatio 保持宽高比,可能会被比设置的尺寸小
# KeepAspectRatioByExpanding 保持宽高比,超出区域会被填充
label = QLabel('标签',win)
label.setPixmap(q1)
label.resize(100,100)
win.show()
app.exec()
from PySide6.QtWidgets import QApplication,QWidget,QLabel
from PySide6.QtGui import QPixmap,QColor
if __name__ == "__main__":
app = QApplication([])
win = QWidget()
win.resize(300,300)
q = QPixmap(100,100)
q.fill(QColor('red'))
label = QLabel('标签',win)
label.setPixmap(q)
label.resize(100,100)
win.show()
app.exec()
QIcon和QCursor
QIcon用于表示图标,可以支持多种格式的图标文件,如PNG、ICO、BMP等。
from PySide6.QtGui import QIcon,QPixmap
from PySide6.QtWidgets import QApplication,QWidget,QPushButton
if __name__ == '__main__':
app = QApplication([])
win = QWidget()
win.resize(300,300)
icon = QIcon(QPixmap('imgs\\a.png'))
# 添加图标
# 按钮添加图标
icon1 = QIcon()
icon.addPixmap(QPixmap('imgs\\.png'))
btn = QPushButton(win)
btn.resize(100,60)
btn.setIcon(icon)
# 给窗口设置图标
win.setWindowIcon(icon)
win.show()
app.exec()
QCursor设置光标的形状
|-------------------------|------------------------|----------------------|
| Qt.CursorShape. |||
| CrossCursor 十字光标 | ArrowCursor 默认光标 | WaitCursor 等待光标(沙漏) |
| PointingHandCursor 手型光标 | IBeamCursor 文本输入光标 I 形 | WhatsThisCursor 帮助光标 |
vb
`from PySide6.QtGui import QCursor,Qt
from PySide6.QtWidgets import QApplication,QWidget,QPushButton
if __name__ == '__main__':
app = QApplication([])
win = QWidget()
win.resize(300,300)
# cursor = QCursor()
# 设置光标
# cursor.setShape(Qt.CursorShape.PointingHandCursor)
win.setCursor(QCursor(Qt.CursorShape.WhatsThisCursor))
win.show()
app.exec()`