语之屋

PySide6开发日记(二)

2024-11-21
pythonPySide6周记
2分钟
358字

笔记二 富文本格式

关于设置文字自动换行以及问题:纯数字时自动换行不起作用。

1
# 设置文字为富文本格式,字体大小16pt
2
book_name_label = QLabel(
3
f"<span style='font-size:16pt'>{book_name}</span>"
4
)
5
# 设置自动换行
6
book_name_label.setWordWrap(True)

一些问题:如果文字是纯数字将不起作用。

笔记三 滚动布局

设置滚动布局:

1
area = QScrollArea()
2
widget_area = QWidget()
3
4
# 注1
5
area.setWidgetResizable(True)
6
7
layout_area = QVBoxLayout(widget_area)
8
layout_area.addStretch(1)
9
10
area.setWidget(widget_area)

注1:处理坑,子控件大小和area不一致,设置area的属性。

笔记四 分割线

  1. 分割线
1
# 设置一个分割线
2
frame = QFrame()
3
frame.setFrameShape(QFrame.Shape.HLine) # 设置为水平分割线
4
frame.setLineWidth(1) # 设置分割线宽度为1像素
5
layout_area.addWidget(frame)
  1. 分割用的矩形

可以用来填充界面。

1
# 创建QFrame
2
frame = QtWidgets.QFrame(self)
3
frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
4
frame.setFrameShadow(QtWidgets.QFrame.Raised)
5
6
# 设置尺寸策略为自动扩充
7
sizePolicy = QtWidgets.QSizePolicy(
8
QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding
9
)
10
frame.setSizePolicy(sizePolicy)
11
frame.setFrameShape(QtWidgets.QFrame.NoFrame)
12
# 设置QFrame背景为透明
13
frame.setAttribute(QtCore.Qt.WA_TranslucentBackground)
14
15
layout.addWidget(frame)

补充

本来以为这个系列可以出很多期,结果现在的项目很快也就写完了,PySide6还有很多不完善的地方,我又开始纠结犹豫,和《纸间书摘》的开发者聊了之后他推荐给我一套新的技术栈,这周终于有时间看了一下,基于compose的安卓开发比以往容易了许多,kotlin+compose终于变得优雅起来了,相比之下感觉比flutter更让人心动?

总之开始学习起来了。

本文标题:PySide6开发日记(二)
文章作者:公子语
发布时间:2024-11-21
总访问量
总访客数人次