我需要在滚动区域中列出一堆自定义小部件。
我通常只会使用 QListWidget,但这并不能平滑滚动,这对我来说是必需的。我在 QListWidget 中找到了关于平滑滚动的问题,但是当我尝试该解决方案时,我收到一条错误消息QListWidget.updateGeometries() requires at least one parameter
!
我还考虑过使用其中包含多个小部件的 QScrollArea,但似乎没有办法做到这一点。如果我使用布局,里面的小部件会调整大小。如果我将多个小部件设置为 QWidget 的子级,然后将该 QWidget 作为我的 QScrollArea 的小部件(如此处所建议),则仅显示我设置为 QWidget 的子级的最后一个小部件。
我很可能做错了什么,因为我对小部件育儿不是很熟悉,所以也许这就是我的问题。我不知道:
class EditDialog(QDialog):
def __init__(self):
super(EditDialog,self).__init__()
self.scroller = QScrollArea()
self.form = QWidget()
self.form.setStyleSheet()
self.lab = QLabel(self.form)
self.lab.setText("Label")
self.edit = QLineEdit(self.form)
self.edit.setText("LineEdit")
self.but = QPushButton("PushButton",self.form)
self.scroller.setWidget(self.form)
self.layout = QVBoxLayout()
self.layout.addWidget(self.scroller)
self.setLayout(self.layout)
self.setWindowTitle(widget + " - StyleWise")
self.exec_()
使用此代码,QListWidget 一次滚动 100 个像素,但我希望它一次滚动 1 或 2 个像素。我不知道该怎么办!