Я пытаюсь включить горизонтальную рамку, содержащую метку внутри вертикальной рамки, но даже при том, что метка отображается, она не находится в правильном положении и ограничена размером стандартного QLabelПодклассифицированный QFrame не настраивается на его макет
Это главный класс:
class Launcher(QMainWindow):
def __init__(self):
super().__init__()
self.setFrame() #sets up window's geometry, works fine
self.setContent()
self.show()
def setContent(self):
layout = QBoxLayout(QBoxLayout.TopToBottom)
layout.addWidget(widgets.Logo(self), 0, Qt.AlignTop)
self.setLayout(layout)
И это импортированная класс от "виджетов" модуль
class Logo(QFrame):
def __init__(self, parent):
super().__init__(parent)
layout = QBoxLayout(QBoxLayout.LeftToRight)
text = QLabel("PyTitle", self)
text.setAlignment(Qt.AlignCenter)
text.setFont(QFont("impact", 48))
layout.addWidget(text, 0, Qt.AlignCenter)
self.setLayout(layout)
self.show()
Если я решительно изменяю размер как QLabel, так и QFrame, это видно, но все же в верхнем левом углу.
Есть ли причина, по которой вы используете QBoxLayout, а не QHBoxLayout? Если вам просто нужна куча виджетов, уложенных слева направо, используйте QHBoxLayout, и если вы хотите, чтобы они укладывали сверху вниз, используйте QVBoxLayout. Я бы никогда не возился с QBoxLayout. Из документов для QBoxLayout: «Вы почти всегда будете хотеть использовать QVBoxLayout и QHBoxLayout, а не QBoxLayout из-за их удобных конструкторов». – neuronet