gpt4 book ai didi

python - 保持 QToolbar 始终显示所有项目

转载 作者:行者123 更新时间:2023-12-01 00:59:23 27 4
gpt4 key购买 nike

让我们考虑以下屏幕截图:

enter image description here

可以看到顶部工具栏显示2行;然而要做到这一点,需要点击右上角的>>(红色圆圈)并保持悬停在工具栏区域,这可能会有点烦人。

有没有办法让工具栏的两行始终显示?

最佳答案

解决办法是:

  • 使用布局展开 QToolBar,在私有(private) API 的实现中,有一个名为 setExpanded() 的插槽,允许展开 QToolBar。
  • 隐藏按钮,在这种情况下,只能将大小设置为 QSize(0, 0)。
  • 停用 QToolBar 的 Leave 事件,使其不会折叠。
from PyQt5 import QtCore, QtGui, QtWidgets


class ToolBar(QtWidgets.QToolBar):
def __init__(self, parent=None):
super().__init__(parent)
lay = self.findChild(QtWidgets.QLayout)
if lay is not None:
lay.setExpanded(True)
QtCore.QTimer.singleShot(0, self.on_timeout)

@QtCore.pyqtSlot()
def on_timeout(self):
button = self.findChild(QtWidgets.QToolButton, "qt_toolbar_ext_button")
if button is not None:
button.setFixedSize(0, 0)

def event(self, e):
if e.type() == QtCore.QEvent.Leave:
return True
return super().event(e)


if __name__ == "__main__":
import sys

app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QMainWindow()
toolbar = ToolBar()
for i in range(20):
toolbar.addAction("action{}".format(i))
w.addToolBar(QtCore.Qt.TopToolBarArea, toolbar)

w.resize(640, 480)
w.show()
sys.exit(app.exec_())

关于python - 保持 QToolbar 始终显示所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55930004/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com