У меня есть виджет, который делится на два подвиджета. Один показывает изображение, другой предлагает варианты для редактирования изображения. Подвиджет изображения должен занимать в 5 раз больше горизонтального пространства, чем подвиджет редактирования. Я указываю это ограничение в макете сетки. Однако это ограничение игнорируется, как только я добавляю QGraphicsScene (и View) в подвиджет редактирования.
Я попробовал несколько политик размера, но ни один из них не сделал то, что я хотел, однако я не слишком опытен в их использовании.
class MapWidget(QWidget):
""" Widget that renders the map and displays properties """
def __init__(self, main_gui, parent=None):
super().__init__(parent=parent)
self.main_gui = main_gui
# (Re-)Build the ui
self.layout = QGridLayout()
self.setLayout(self.layout)
self.map_scene = QGraphicsScene()
self.map_scene_view = QGraphicsView()
self.map_scene_view.setViewport(QGLWidget())
self.map_scene_view.setScene(self.map_scene)
self.layout.addWidget(self.map_scene_view, 1, 1, 5, 1)
blocks_container = QVBoxLayout()
self.layout.addLayout(blocks_container, 1, 2, 1, 1)
"""
Here I add other widgets to the blocks_container,
however none of those causes problems
"""
# As soon as I also add this group, both widgets have the same size
group_blocks = QGroupBox('Blocks')
self.blocks_scene = QGraphicsScene()
self.blocks_scene_view = QGraphicsView()
self.blocks_scene_view.setViewport(QGLWidget())
self.blocks_scene_view.setScene(self.blocks_scene)
group_blocks_layout = QHBoxLayout()
group_blocks.setLayout(group_blocks_layout)
group_blocks_layout.addWidget(self.blocks_scene_view)
blocks_container.addWidget(group_blocks)
Вместо двух виджетов с соотношениями 5/6 и 1/6 оба виджета имеют одинаковый размер, из-за чего изображение выглядит маленьким, а виджет редактирования - слишком большим. Кроме того, когда я удаляю виджет group_blocks, подвиджет edit снова имеет свой правильный размер. Поэтому для простоты я исключил все остальные виджеты, которые он содержит.