Я пытаюсь реализовать раскрывающийся «подробный» дисплей для диалога с помощью QToolButton (для переключения show/hide) и QTextEdit (для отображения информации). Я переключаюсь между стрелкой вправо (скрытой) и стрелкой вниз (показано), чтобы указать текущее состояние дисплея.Размер/стиль управления QToolButton (PyQt5)
# Create a button to toggle the details frame.
self._detailsbutton = QToolButton()
self._detailsbutton.setCheckable(True)
self._detailsbutton.setChecked(False)
self._detailsbutton.setArrowType(Qt.RightArrow)
self._detailsbutton.setToolButtonStyle(Qt.ToolButtonIconOnly)
self._detailsbutton.toggled.connect(self.showDetails)
По умолчанию QToolButton довольно большой.
Я пытался найти способ, чтобы уменьшить размер этой кнопки. Единственная многообещающая вещь, которую я нашел, это метод QWidget.setFixedSize, но при использовании этой кнопки стрелка инструмента стрелка смотрит в центр и обрезается.
# Create a button to toggle the details frame.
self._detailsbutton = QToolButton()
self._detailsbutton.setCheckable(True)
self._detailsbutton.setChecked(False)
self._detailsbutton.setArrowType(Qt.RightArrow)
self._detailsbutton.setToolButtonStyle(Qt.ToolButtonIconOnly)
self._detailsbutton.setFixedSize(10, 10)
self._detailsbutton.toggled.connect(self.showDetails)
Я попытался установить размер для различных значений (5 - 15), но стрелка не правильно центрировать для любого из них. Кто-нибудь знает, как я могу уменьшить размер кнопки инструмента, удерживая стрелку в центре? Мне также будет интересно узнать, как контролировать размер отображаемой стрелки.
Как всегда, если у кого-то есть лучший способ сделать это, я все уши.
Бонусные баллы, если вы можете сказать мне, как отключить границу вокруг кнопки, и просто показать голую стрелку на сером фоне.
Может быть, не самый простой способ, но вы можете подклассифицировать QToolButton и повторно реализовать paintEvent (я знаю, что в документах PySide есть несколько примеров, которые прямо переносятся в PyQt) –