Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 保持QToolbar始终显示所有项目 让我们考虑下面的截图:_Python_Pyqt_Pyqt5_Qtoolbar - Fatal编程技术网

Python 保持QToolbar始终显示所有项目 让我们考虑下面的截图:

Python 保持QToolbar始终显示所有项目 让我们考虑下面的截图:,python,pyqt,pyqt5,qtoolbar,Python,Pyqt,Pyqt5,Qtoolbar,您可以看到顶部工具栏显示2行;然而,要做到这一点,需要点击右上角的>(红色圆圈),并将鼠标悬停在工具栏区域,这可能会有点烦人 有没有办法保持工具栏的两行始终显示?解决方案是: 使用在专用API实现中具有一个名为setExpanded()的插槽的布局展开QToolBar,该插槽允许展开QToolBar 隐藏按钮,在这种情况下,仅将大小设置为QSize(0,0)有效 停用QToolBar的事件左侧,使其不会崩溃 从PyQt5导入QtCore、QtGui、qtwidget 类工具栏(QtWidge

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

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

解决方案是:

  • 使用在专用API实现中具有一个名为setExpanded()的插槽的布局展开QToolBar,该插槽允许展开QToolBar
  • 隐藏按钮,在这种情况下,仅将大小设置为QSize(0,0)有效
  • 停用QToolBar的事件左侧,使其不会崩溃
从PyQt5导入QtCore、QtGui、qtwidget
类工具栏(QtWidgets.QToolBar):
def uuu init uuu(self,parent=None):
super()。\uuuu init\uuuu(父级)
lay=self.findChild(qtwidts.QLayout)
如果lay不是None:
lay.setExpanded(真)
QtCore.QTimer.singleShot(0,self.on\u超时)
@QtCore.pyqtSlot()
def on_超时(自身):
button=self.findChild(qtwidts.QToolButton,“qt\u工具栏\u外部按钮”)
如果按钮不是“无”:
按钮。设置固定大小(0,0)
def事件(自我,e):
如果e.type()==QtCore.QEvent.Leave:
返回真值
返回super()事件(e)
如果名称=“\uuuuu main\uuuuuuuu”:
导入系统
app=qtwidts.QApplication(sys.argv)
w=QtWidgets.QMainWindow()
工具栏=工具栏()
对于范围(20)内的i:
toolbar.addAction(“action{}”.format(i))
w、 添加工具栏(QtCore.Qt.topToolbar区域,工具栏)
w、 调整大小(640480)
w、 show()
sys.exit(app.exec_())

thx您的示例代码非常有效!然而,我想通过在我的代码(工具栏所在的位置)中简单地使用
toolbar=self.addToolBar('toolbar')lay=self.findChild(qtwidts.QLayout)lay.setExpanded(True)
来使用它的一个较小的片段,但是我收到一个错误
“QLayout”对象没有属性“setExpanded”
,你知道为什么吗?@jimbasquiat在你的例子中使用:
lay=toolbar.findChild(qtwidts.QLayout)