使用pyqt5做可上下滑动的列表
时间: 2023-12-12 12:05:22 浏览: 56
下面是一个简单的例子,使用QListWidget和QScrollBar实现可上下滑动的列表。
```python
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QListWidget, QScrollBar
class ScrollableListWidget(QListWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setVerticalScrollBar(QScrollBar(self))
self.setVerticalScrollMode(QListWidget.ScrollPerPixel)
self.setHorizontalScrollBarPolicy(1)
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
layout = QVBoxLayout(self)
self.scrollable_list = ScrollableListWidget(self)
for i in range(100):
self.scrollable_list.addItem(f"Item {i}")
layout.addWidget(self.scrollable_list)
self.setGeometry(100, 100, 300, 500)
self.show()
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
app.exec_()
```
在这个例子中,我们继承了QListWidget,将垂直滚动条设置为QScrollBar,并将滚动模式设置为QListWidget.ScrollPerPixel,这样滚动条就可以按像素移动而不是按项目移动。我们还将水平滚动条策略设置为Qt.ScrollBarAlwaysOff,以防止水平滚动条出现。
在主窗口中,我们创建了一个ScrollableListWidget实例,并将其添加到垂直布局中。我们还添加了100个项目来测试滚动行为。最后,我们展示了主窗口并开始应用程序的事件循环。