Résultats de 1 à 2 sur 2

Sujet : probleme d'affichage

  1. #1
    Visiteur MP
    Visiteur MP

    probleme d'affichage

    salut,
    j\'ai quelque soucis d\'affichage. Je veux afficher 3 objets apres un clic souris, un rectangle et 2 lignes mais ceux-ci s\'affichent de maniere \"aléatoire\"....Si l\'on clic plusieur fois de suite un coup le rectangle se superpose aux 2 lignes, l\'autre coup seulement pour une ligne, l\'autre on voit les 3 objets entierement...




    Code:
    #!/usr/bin/env python
    
    import sys
    from qt import *
    from qtcanvas import *
    
    class FigureEditor(QCanvasView):
       
        def __init__(self,canvas,parent,name,f):
            QCanvasView.__init__(self,canvas,parent,name,f)
            FigureEditor.parent=parent
            self.__moving=0
            self.__moving_start= 0
    
        def contentsMousePressEvent(self,e): # QMouseEvent e
        
            point = self.inverseWorldMatrix().map(e.pos())
            ilist = self.canvas().collisions(point) #QCanvasItemList ilist
            for each_item in ilist:
                if each_item.rtti()==984376:
                    if not each_item.hit(point):
                        continue
                    self.__moving=each_item
                    self.__moving_start=point
                    return
                self.__moving=0
           
            FigureEditor.parent.refresh()
           
                              
            
        def clear(self):
            ilist = self.canvas().allItems()
            for each_item in ilist:
                if each_item:
                    each_item.setCanvas(None)
                    del each_item
            self.canvas().update()
            
    
    class Main (QMainWindow):
      
        def __init__(self,canvas,parent,name,f=0):
            QMainWindow.__init__(self,parent,name,f)
            self.editor=FigureEditor(canvas,self,name,f)
                  
            self.setCentralWidget(self.editor)
    
            rectangle1=QCanvasRectangle(0,0,300,300,canvas)
            rectangle1.setBrush( QBrush(QColor(100,100,100) ))
            rectangle1.show()     
                   
        def refresh(self):
                 
            self.editor.clear()
                   
            rectangle2=QCanvasRectangle(0,0,500,500,canvas)
            rectangle2.setBrush( QBrush(QColor(200,200,200) ))
            rectangle2.show()
    
            ligne1 = QCanvasLine(canvas)
            ligne1.setPoints(0,0,400,650)
            ligne1.show()
    
            ligne2 = QCanvasLine(canvas)
            ligne2.setPoints(0,0,530,630)
            ligne2.show()
            
            canvas.update()   
            self.show()
    
          
    if __name__==\'__main__\':
        app=QApplication(sys.argv)
        
        canvas=QCanvas(800,800)
    
        m=Main(canvas,None,\"canvas example\")
        m.resize(m.sizeHint())
        qApp.setMainWidget(m)
        m.setCaption(\"Canvas Example\")  
        m.show();
        qApp.setMainWidget(None);
    
        QObject.connect( qApp, SIGNAL(\"lastWindowClosed()\"), qApp, SLOT(\"quit()\") )
    
        app.exec_loop()

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    2 225
    Désolé, je n\'utilise pas Qt.

    ( mais il existe énormément de doc sur Tkinter et Wx )

    :wink:

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé