65 lines
2.5 KiB
Python
Raw Normal View History

import sys
from PySide6 import QtCore, QtWidgets
from PySide6.QtCore import Qt
"""
QAbstractScrollArea 滚动条显示策略
滚动条显示策略由 Qt.ScrollBarPolicy 列出具体如下
https://doc.qt.io/qt-6/qt.html#ScrollBarPolicy-enum
Qt.ScrollBarAsNeeded 只有当内容太大而无法容纳时QAbstractScrollArea 才显示滚动条此为默认值
Qt.ScrollBarAlwaysOff QAbstractScrollArea 永不显示滚动条
Qt.ScrollBarAlwaysOn QAbstractScrollArea 总显示一个滚动条此属性在具有瞬态滚动条的操作系统上被忽略
即使不显示滚动条也仍可通过键盘方向键鼠标滚轮等控制滚动区域滚动
.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy) 设置水平滚动条策略
.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy) 设置垂直滚动条策略
.horizontalScrollBarPolicy() -> Qt.ScrollBarPolicy 获取水平滚动条策略
.verticalScrollBarPolicy() -> Qt.ScrollBarPolicy 获取垂直滚动条策略
"""
class MyWidget(QtWidgets.QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle("空白测试模板")
self.resize(800, 600)
self.setup_ui()
self.test_01()
def setup_ui(self) -> None:
"""设置界面"""
self.pte = QtWidgets.QPlainTextEdit(self)
self.pte.resize(400, 250)
button_1 = QtWidgets.QPushButton("增加文本", self)
button_1.move(500, 80)
@QtCore.Slot()
def append_text():
"""按钮的槽函数,用于为文本编辑器添加行"""
self.pte.appendPlainText("PySide6\nPySide6")
# 逐渐增加文本至编辑器无法全面显示时,体现滚动条策略的效果
button_1.clicked.connect(append_text) # type: ignore
def test_01(self) -> None:
"""测试滚动条显示策略"""
# 水平滚动条效果与垂直滚动条相仿,这里仅演示垂直滚动条
# 设置滚动条显示策略
# self.pte.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded) # 默认值,仅在需要时显示滚动条
# self.pte.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) # 任何情况都不显示滚动条
self.pte.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) # 始终显示滚动条
print(self.pte.verticalScrollBarPolicy()) # 获取垂直滚动条策略
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyWidget()
window.show()
sys.exit(app.exec())