#!/usr/bin/env python from __future__ import unicode_literals import sys, os, random from PyQt4 import QtGui, QtCore from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.figure import Figure progname = os.path.basename(sys.argv[0]) progversion = "0.1" class MyTextCanvas(FigureCanvas): """Ultimately, this is a QWidget (as well as a FigureCanvasAgg, etc.).""" def __init__(self, parent=None, width=5, height=4, dpi=100): fig = Figure(figsize=(width, height), dpi=dpi) self.axes = fig.add_subplot(111) # We want the axes cleared every time plot() is called self.axes.hold(False) self.compute_initial_figure() FigureCanvas.__init__(self, fig) self.setParent(parent) FigureCanvas.setSizePolicy(self, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) FigureCanvas.updateGeometry(self) ########### I added these things below self.text = 'this is the initial text' self.create_initial_text() ########### def compute_initial_figure(self): pass def create_initial_text(self): pass class myLabelClass(MyTextCanvas): """This is my own creaed class which more or less resembles the code above.""" def __init__(self, *args, **kwargs): MyTextCanvas.__init__(self, *args, **kwargs) timer = QtCore.QTimer(self) QtCore.QObject.connect(timer, QtCore.SIGNAL('timeout()'), self.countUp) timer.start(1000) def create_initial_text(self): QtGui.QLabel(self.text, self) def countUp(self): for i in xrange(100): self.myShinyLabel.setText(str(i)) class ApplicationWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.setWindowTitle("Hielke's programma") self.main_widget = QtGui.QWidget(self) layout = QtGui.QHBoxLayout(self.main_widget) self.myShinyLabel = myLabelClass(self.main_widget) layout.addWidget(self.myShinyLabel) #dynamicImage = MyDynamicMplCanvas(self.main_widget, width=5, height=4, dpi=100) #layout.addWidget(dynamicImage) self.main_widget.setFocus() self.setCentralWidget(self.main_widget) def main(): qApp = QtGui.QApplication(sys.argv) aw = ApplicationWindow() aw.setWindowTitle("%s" % progname) aw.show() sys.exit(qApp.exec_()) if __name__ == "__main__": main()