我有一个 QVBoxLayout,当容器水平调整大小时,它似乎正在挤压它的内容。这是当窗口处于最小宽度时的样子。一切都完美契合:
以下是水平调整窗口大小后发生的情况:
如您所见(查看突出显示的帖子,背景颜色较深),容器缩小,文本被截断。这是我的代码:
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())
相关分类