pyqt5 制作垂直轮动组件,并在组件里显示所有结果
时间: 2024-03-28 11:41:18 浏览: 65
要制作垂直轮动组件,可以使用Qt自带的QScrollBar和QScrollArea组件。
首先,在Qt Designer中创建一个QScrollArea,并将垂直滚动条的范围设置为0到1。然后将一个QWidget作为QScrollArea的子组件,将其大小设置为QScrollArea的大小。
接下来,创建一个QVBoxLayout并将其设置为QWidget的布局管理器。在QVBoxLayout中添加需要显示的所有结果控件,并设置它们的大小和位置。要让结果控件能够滚动,可以将它们添加到一个QWidget中,并将该QWidget设置为QVBoxLayout的子组件。
最后,将QWidget添加到QScrollArea中,并将QScrollArea设置为垂直滚动条的父组件。
在代码中,可以使用以下方式创建并显示垂直轮动组件:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QScrollArea, QScrollBar
app = QApplication([])
window = QWidget()
# Create scroll area
scroll = QScrollArea()
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
scroll.setWidgetResizable(True)
scroll.setFixedWidth(400)
scroll.setFixedHeight(200)
# Create widget and layout
widget = QWidget()
layout = QVBoxLayout(widget)
layout.setContentsMargins(0, 0, 0, 0)
# Add labels to layout
for i in range(20):
label = QLabel('Result {}'.format(i))
layout.addWidget(label)
# Add widget to scroll area
scroll.setWidget(widget)
# Add scroll area to window
layout = QVBoxLayout(window)
layout.addWidget(scroll)
window.show()
app.exec_()
```
这样就可以创建一个垂直滚动的组件,并在其中显示所有结果。
阅读全文