PyQt

2013-04-24 26 views
7

içine gömülü Matplotlib etkileşimli grafiği Çalıştırıldığında, PyQT penceresinde gömülü bir matplotlib grafiğini görüntülemesi gereken basit bir python betiği oluşturdum. Grafiği yerleştirmek ve çalıştırmak için this eğitimini kullandım. Adlandırma kurallarındaki ve genel kullanıcı arayüzündeki bazı farklılıkların yanı sıra, grafiğim de bahsi geçen öğreticide olduğu gibi oluşturulur.PyQt

Sorunum, yakınlaştırma ve sürükleme olanağı sağlayan etkileşimli bir grafik oluşturmak istiyorum ancak bunu yalnızca fare (tıklama ve sürükleme, kaydırma tekerleği vb.) Ile ve araç çubuğu olmadan yapmak istiyorum. çirkin olarak buldum).

Araç Sınıfı:

class MplCanvas(FigureCanvas): 
    """ 
    Creates a canvas on which to draw our widgets 
    """ 
    def __init__(self): 
     self.fig = Figure() 
     self.ax = self.fig.add_subplot(111) 

     FigureCanvas.__init__(self, self.fig) 
     FigureCanvas.setSizePolicy(self, QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding) 
     FigureCanvas.updateGeometry(self) 

class marketdephWidget(QtGui.QWidget): 
    """ 
    The market deph graph 
    """ 
    def __init__(self, parent = None): 
     QtGui.QWidget.__init__(self, parent) 
     self.canvas = MplCanvas() 
     self.vbl = QtGui.QVBoxLayout() 
     self.vbl.addWidget(self.canvas) 
     self.setLayout(self.vbl) 

çizdirme fonksiyonu (düğmesine basın üzerinde çalışacak):

# initialize the mplwidgets 
def PlotFunc(self): 
    randomNumbers = random.sample(range(0, 10), 10) 
    self.ui.widget.canvas.ax.clear() 
    self.ui.widget.canvas.ax.plot(randomNumbers) 
    self.ui.widget.canvas.draw() 

cevap

2

Bir süre oldu ama benzer bir sorun üzerinde çalışıyordu. Bir example here var. Belki bu yardımcı olur.

Program PySide kullanıyor, ancak sorun olmamalı.

Sen bir widget açılır pencere görecekti programı

python pyStocker.py 

çalıştırmak için ve sol üst kısmında bulunan bir TextEdit kutu göreceksiniz. Sadece GOOG veya başka bir geçerli hisse senedi sembolü girin ve enter tuşuna basın. Grafik, hisse senedi verileriyle doldurulacaktır. Alttaki kaydırma çubuğu grafiği gerçek zamanlı olarak değiştirir.