QVBoxLayout 文本在父级调整大小时被垂直剪切

我有一个 QVBoxLayout,当容器水平调整大小时,它似乎正在挤压它的内容。这是当窗口处于最小宽度时的样子。一切都完美契合:

http://img.mukewang.com/6164f7740001d66706750668.jpg

以下是水平调整窗口大小后发生的情况:

http://img.mukewang.com/6164f77f0001b34c09550668.jpg

如您所见(查看突出显示的帖子,背景颜色较深),容器缩小,文本被截断。这是我的代码:


class MainWindow(QWidget):


    def __init__(self):

        super().__init__()

        self.setObjectName("window")

        self.resize(850, 650)

        self.setWindowTitle("qt-devRant by AlgoRythm")


        header = QWidget(self)

        header.setObjectName("header")

        header.move(0, 0)

        self.header = header


        logo = QLabel(header)

        logo.move(10, 8)

        logo.setPixmap(logo_small.scaledToHeight(45, Qt.SmoothTransformation))


        name = QLabel(header)

        name.setObjectName("header-name")

        name.setText("devRant")

        name.setFont(comfortaa)

        name.move(60, 0)


        rant_scroller = QScrollArea(self)

        rant_scroller.setWidgetResizable(True)

        rant_scroller.setObjectName("rant-scroller")

        rant_scroller.setFrameShape(QFrame.NoFrame)

        self.rant_scroller = rant_scroller


        rant_area = QWidget()

        rant_area.setObjectName("rant-area")

        rant_scroller.setWidget(rant_area)

        self.rant_area = rant_area


        rant_scroller_layout = QVBoxLayout()

        rant_area.setLayout(rant_scroller_layout)

        rant_scroller_layout.setContentsMargins(0, 0, 0, 0)

        rant_scroller_layout.setSpacing(0)

        self.rant_scroller_layout = rant_scroller_layout


        rants = Rant.get(limit=50)


        for rant in rants:

            test = RantContainer()

            test.rant_content.setText(rant.text)

            rant_scroller_layout.addWidget(test.container, 0, Qt.AlignCenter | Qt.AlignTop)


    def resizeEvent(self, event):

        self.do_sizing()


    def do_sizing(self):

        self.size_header()

        self.size_rant_scroller()


    def size_header(self):

        self.header.resize(self.width(), self.header.height())


    def size_rant_scroller(self):

        self.rant_scroller.move(0, self.header.height())

        self.rant_scroller.resize(self.width(), self.height() - self.header.height())


慕的地10843
浏览 226回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python