1

为什么 QFrame 边框在左侧和顶部被截断?如果我将 LineWidth 设置得更大,则会显示边框。似乎只有少量被切断。

在此处输入图像描述

import sys
from PyQt6 import QtWidgets

class Main(QtWidgets.QWidget):

    def __init__(self, parent=None):
        super().__init__(parent)

        self.setWindowTitle("pyQt6 Testing")
        self.setGeometry(0, 0, 640, 120)

        self.vbox = QtWidgets.QVBoxLayout(self)
        self.vbox.addStretch(1)

        self.hbox = QtWidgets.QHBoxLayout()
        self.hbox.addStretch(1)

        self.sub = Sub("this is left and really much wider than right will ever be and is still needs to be longer", self)

        self.hbox.addWidget(self.sub)
        self.hbox.addStretch(1)
        self.hbox.addWidget(Sub("this is right", self))
        self.hbox.addStretch(1)

        self.vbox.addLayout(self.hbox)
        self.vbox.addStretch(1)


class Sub(QtWidgets.QFrame):

    def __init__(self, text, parent=None):
        super().__init__(parent)

        self.setFrameShape(QtWidgets.QFrame.Shape.Box)
        self.setFrameShadow(QtWidgets.QFrame.Shadow.Plain)
        self.setLineWidth(1)
        self.setMidLineWidth(1)

        self.vbox = QtWidgets.QVBoxLayout(self)

        self.vbox.addWidget(QtWidgets.QLabel(text))
        self.vbox.addWidget(QtWidgets.QLabel(text))
        self.vbox.addWidget(QtWidgets.QLabel(text))
        self.vbox.addWidget(QtWidgets.QPushButton(text))


app = QtWidgets.QApplication(sys.argv)
main = Main()
main.show()
sys.exit(app.exec())

我在 QVboxLayout 和 QHboxLayouts 之前、中间和末尾添加了一个 QVboxLayout 和一些拉伸。它现在在拉伸窗口时有时会显示所有边框。

在此处输入图像描述

4

0 回答 0