Как управлять размещением элементов в QToolBar?
Я создал боковой toolbar
с левой стороны окна приложения.
Добавил туда различные actions
. И хотел в самом конце (внизу) добавить изображение .svg
.
Отрендерил изображение, добавил в toolbar
, и он, как и ожидалось добавился сразу после последнего action
.
После этого попытался сдвинуть изображение в низ, но все тщетно. Изображение не реагирует на setGeometry()
и у него нет метода setAlignment()
.
Единственное, что мне удалось, это сделать resize()
, к счастью, он работает.
Вот так я реализовал само изображение:
class SvgWidget(QSvgWidget):
def __init__(self):
super().__init__()
self.text = open('logo.svg', 'r')
self.svg_render = QSvgRenderer(QXmlStreamReader(self.text.read()))
self.resize(50, 50)
def paintEvent(self, event) -> None:
qp = QPainter(self)
self.svg_render.render(qp)
Я создаю экземпляр этого класса в классе MainWindow:
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("2D Map")
self.resize(800, 600)
self.widget = QWidget()
self.setCentralWidget(self.widget)
self.box = QVBoxLayout(self.widget)
self.box.setContentsMargins(30, 30, 30, 30)
self.testAction = QAction(QIcon('imgs/exit.png'), 'Exit', self)
self.testAction.triggered.connect(app.quit)
self.toolbar = self.addToolBar('Exit')
self.toolbar.setObjectName('toolbar')
self.addToolBar(Qt.ToolBarArea.LeftToolBarArea, self.toolbar)
self.toolbar.setMovable(False)
self.toolbar.addAction(self.testAction)
# вот здесь:
self.svg = SvgWidget()
self.toolbar.addWidget(self.svg)
self.svg.setFixedSize(70, 60)
Есть ли какой нибудь способ прижать его к нижней части окна в тулбаре?
Источник: Stack Overflow на русском