pyqt5 制作垂直轮动窗口
时间: 2023-08-11 19:45:37 浏览: 128
要制作垂直轮动窗口,可以使用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_()
```
这样就可以创建一个垂直滚动的窗口,并在其中显示所有结果。
阅读全文