• [^] # Re: Interfaçage avec autres libs ?

    Posté par (site web personnel) . En réponse au journal htag : realiser des UI en python3 sur web, mobile et desktop.. Évalué à 1.

    Et comme, le principal intérêt de htag : c'est de pouvoir créer ses composants réutilisables, voilà une version avec un composant TagPlot, qui auto génère un svg à partir d'un objet matplotlib ...

    # -*- coding: utf-8 -*-
    from htag import Tag
    import io,base64,random
    import matplotlib.pyplot as plt
    class TagPlot(Tag.svg):
     def init(self,plt):
     self["viewBox"]="0 0 1000 1500"
     with io.StringIO() as fid:
     plt.savefig(fid,format='svg')
     self.set( fid.getvalue() )
    class App(Tag):
     def init(self):
     self.main = Tag.div()
     self.liste=[1, 2, 5, 4]
     # create the layout
     self <= Tag.h3("Matplotlib test" + Tag.button("Add",_onclick=self.add_random))
     self <= self.main
     self.redraw_svg()
     def add_random(self,o):
     self.liste.append( random.randint(1,6))
     self.redraw_svg()
     def redraw_svg(self):
     plt.plot(self.liste)
     plt.ylabel('some numbers')
     plt.xlabel('size of the liste')
     self.main.set( TagPlot(plt) )
    if __name__=="__main__":
     from htag.runners import BrowserHTTP
     BrowserHTTP(App).run()