2016-01-05 80 views
-1

我想爲我現有的PySide應用程序添加一個pyqtgraph圖。所有的現有的例子使用了某種形式的QLayout來實現這一目標:是否可以在不使用QLayout的情況下將pyqtgraph添加到PySide應用程序中?

from PySide import QtGui 
import sys 
import pyqtgraph 
app = QtGui.QApplication(sys.argv) 
my_widget = QtGui.QWidget() 
btn = QtGui.QPushButton("my button", my_widget) 
plot = pyqtgraph.PlotWidget() 
plotLayout = QtGui.QVBoxLayout() 
plotLayout.addWidget(plot) 
my_widget.setLayout(plotLayout) 
my_widget.show() 
app.exec_() 

是否有可能pyqtgraph地塊添加到我的小部件,沒有它添加到佈局第一?我猜我需要這樣做,因爲我正在嘗試向小部件添加小部件。 pyqtgraph提供了更像QPushButton還是QLabel,可以直接添加到小部件?

回答

1

小部件是pyqtgraph.PlotWidget()(它在您的上面的代碼中)。您可以像使用pyqtgraph.PlotWidget(parent)(請參閱documentation以獲取構造函數參數列表)中的其他小部件一樣將其添加到其他小部件中。這將把它放置在家長小部件內部的座標(0,0)處,默認尺寸(我不知道這個尺寸是什麼或者它是如何確定的 - 它可以具有尺寸(0,0)或者其他同樣小的尺寸)。但是,通常Qt接口中的對象層次結構應該遵循Widget-> Layout-> Widget-> Layout-> Widget ...(等等)。這允許多個小部件被放置在另一個小部件內,並且由佈局正確地間隔和大小。沒有佈局,您必須嘗試手動指定每個小部件的座標和尺寸。這是可能的(但麻煩),只要您不介意窗口大小更改時小部件沒有正確調整大小。考慮到少量的開銷,以確保小部件總是在佈局內,並且佈局總是在小部件內部,我鼓勵你遵循該模式,除非你有特定的理由不這樣做。

相關問題