首页 > 解决方案 > Pyside2 QScrollArea QLabel 未扩展以包含文本

问题描述

使用 pyside2 和 PyQt,我希望能够label.setText()在滚动区域内设置文本。这看起来相当简单,但问题是当我运行它时,它会切断除发送到的字符串的第一个字母之外的所有内容,.setText()并且执行QSizePolicy操作似乎无法解决问题。

这是我目前作为我的小部件类的代码:

class widgets (QMainWindow) :
    def __init__ (self ) :
        QMainWindow.__init__(self)

        self.label1 = QLabel(self)
        self.scrollablel1 = QScrollArea(self)
        self.scrollablel1.setWidget(self.label1)

        self.label1.setText("foo \n bar \n 2000")

结果是

这个

正如你所看到的,它切断了除了第一个点之外的所有文本。

我尝试添加更多内容无济于事,例如:

self.label1.setContentsMargins(0,0,0,0)
self.label1.setSizePolicy( QSizePolicy.MinimumExpanding ,  QSizePolicy.MinimumExpanding )

标签: pythonpyside2qscrollarea

解决方案


一段时间以来一直在思考/研究这个问题,我很尴尬地说我刚刚遇到了解决方案。您所要做的就是添加:

self.scrollablel1.setWidgetResizable(True)

它工作得很好!


推荐阅读