2017-07-19 84 views
0

ファイルから読み込むためのデータを表示する2つのプロットの下部にボタンを追加しようとしています。これらの2つのプロットの下には、アクションを制御するボタンが表示されます。私はpyqtライブラリからウィジェット、レイアウト、graphicsItemを追加しようとしました。 私は簡単なレイアウトにラベルを追加することができますが、私はコードがテストされているPyQtGraphレイアウトにボタンを追加

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) 

答えて

1

addItem上pyqtgraphのドキュメントは、それが「追加と述べていますグラフィックアイテムをビューボックスに追加します。 "

事は、QtPushButtonはグラフィックアイテムではなく、ウィジェットです。したがって、エラー:addItemQGraphicsLayoutItem(またはそのクラスを継承して何かを)期待している、とあなたはGraphicsWindowにウィジェットを追加するにはQWidget

を渡している、あなたは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) 

でそれをラップすることができしかし、あなたが何をする必要があるかに応じて、GraphicsWindowがこのGUIの1要素であるPyQt GUIを実装したいかもしれません。この質問はあなたに役立ちます:How to update a realtime plot and use buttons to interact in pyqtgraph?

関連する問題