【问题标题】:How do I add a QPushButton to PyQtGraph using addItem?如何使用 addItem 将 QPushButton 添加到 PyQtGraph?
【发布时间】:2017-12-24 09:26:47
【问题描述】:

我正在尝试在两个图的底部添加一个按钮,该按钮将显示要从文件中读取的数据。在这两个图下方将是一个控制动作的按钮。我试图从 pyqt 库中添加一个小部件、布局、graphicsItem。 我可以轻松地在布局中添加标签,但是添加按钮时出现以下错误

addItem(self, QGraphicsLayoutItem, int, int, alignment: Union[Qt.Alignment, Qt.AlignmentFlag] = Qt.Alignment()): argument 1 has unexpected type 'QPushButton'

正在测试的代码:

import pyqtgraph as pg

win = pg.GraphicsWindow()

win.setWindowTitle('Test App')
label = pg.LabelItem(justify='right')
win.addItem(label)

button = QtGui.QPushButton()

p1 = win.addPlot(row=0, col=0)
p2 = win.addPlot(row=1, col=0)
p3 = win.addLayout(row=2, col=0)
p3.addItem(button,row=1,col=1)

【问题讨论】:

    标签: python user-interface pyqt pyqtgraph


    【解决方案1】:

    addItem 上的 pyqtgraph 文档声明它“将图形项添加到视图框”。

    问题是,QtPushButton 不是图形项目,它是一个小部件。因此错误:addItem 期待 QGraphicsLayoutItem(或继承该类的东西),而您传递的是 QWidget

    要将小部件添加到GraphicsWindow,您可以使用QGraphicsProxyWidget 包装它

    proxy = QtGui.QGraphicsProxyWidget()
    button = QtGui.QPushButton('button')
    proxy.setWidget(button)
    
    p3 = win.addLayout(row=2, col=0)
    p3.addItem(proxy,row=1,col=1)
    

    但是根据您的需要,您可能想要实现一个 PyQt GUI,GraphicsWindow 是这个 GUI 的一个元素。这个问题可以帮助你:How to update a realtime plot and use buttons to interact in pyqtgraph?

    【讨论】:

      猜你喜欢
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 2014-08-19
      • 2020-02-01
      • 2021-07-18
      • 2019-03-13
      • 1970-01-01
      相关资源
      最近更新 更多