scroll area不显示label
时间: 2023-08-06 15:03:49 浏览: 38
如果 QScrollArea 中的 QLabel 控件没有显示出来,可能是因为 QLabel 控件的大小没有被正确设置。在将 QLabel 控件添加到 QScrollArea 中之前,需要设置 QLabel 控件的大小,以便 QScrollArea 能够正确计算出需要显示的区域。
可以使用 QLabel 的 sizeHint() 方法获取 QLabel 控件的大小,然后再将其设置为 QLabel 控件的大小。例如:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QScrollArea, QVBoxLayout
app = QApplication([])
window = QWidget()
# 创建一个 QScrollArea 实例对象
scroll = QScrollArea()
scroll.setWidgetResizable(True)
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
# 创建一个 QLabel 实例对象
label = QLabel()
label.setText("这是一段很长很长的文本,需要添加滚动条来查看全部内容。" * 10)
# 设置 QLabel 控件的大小
label.setMinimumSize(label.sizeHint())
# 将 QLabel 对象设置为 QScrollArea 的子组件
scroll.setWidget(label)
# 将 QScrollArea 对象添加到主窗口或其他需要的布局中
layout = QVBoxLayout(window)
layout.addWidget(scroll)
window.show()
app.exec_()
```
在上面的示例代码中,我们在创建 QLabel 对象后,使用 sizeHint() 方法获取了 QLabel 控件的大小,并将其设置为 QLabel 控件的最小大小。这样,当将 QLabel 控件添加到 QScrollArea 中时,QScrollArea 就能够正确计算出需要显示的区域,从而将 QLabel 控件正确显示出来。