我目前正在尝试在 Qt (python) 中重现 Window 10 开始菜单滚动条,但我不知道如何调整自定义 QScrollBar 的大小以在运行时更改其宽度。
我尝试使用 QScrollBar.resize 方法(在 EnterEvent 和 LeaveEvent 中)调整它的大小,但它会在“绘图区域”之外缩放小部件。例如,我的滚动条设置为 QScrollArea,当我尝试调整它的大小时,它不会占用更多空间并移动小部件,而不是它只是在我看不到它的右侧缩放。
我目前找到的唯一解决方案是使用 StyleSheet,但我无法为其设置动画以实现我正在寻找的平滑调整大小。
有一些代码供您测试并查看问题所在:
from PySide2 import QtWidgets, QtCore
from functools import partial
class MyTE(QtWidgets.QPlainTextEdit):
def __init__(self):
super(MyTE, self).__init__()
self.setVerticalScrollBar(MyScrollBar(self))
self.setPlainText('mmmmmmmmmmmmmmmmmmmmmmmmmmmmm'*50)
class MyScrollBar(QtWidgets.QScrollBar):
def __init__(self, parent=None):
super(MyScrollBar, self).__init__(parent=parent)
self.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
def enterEvent(self, event):
super(MyScrollBar, self).enterEvent(event)
self.resize(QtCore.QSize(4, self.height()))
def leaveEvent(self, event):
super(MyScrollBar, self).leaveEvent(event)
self.resize(QtCore.QSize(10, self.height()))
wid = MyTE()
wid.show()
天涯尽头无女友
料青山看我应如是
相关分类