bonjour

1) est-il possible de pouvoir scroller dans les coordonnées negatives, j'y arrive pas, par exemple initier la fenetre au point (-100,-100) en haut à gauche

2) est-il possible d'avoir des statictext qu'on peut drag and drop sur ce canvas comme en Tkinter (avec canvas.coords(id,x,y)?

3)c'est pas bien rafraichi quand on scroll et dans le code je dessine aussi des drawText à partir d'une liste qui est mise à jour par un autre Thread, j'ai vu qu'ils mettaient du temps pour s'afficher comment forcer à mettre à jour le canvas?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import wx
 
class Canvas(wx.ScrolledWindow):
    def __init__(self,parent):
        self.canvas = wx.ScrolledWindow(parent, -1)    
        self.canvas.EnableScrolling(True, True)    
        self.canvas.SetScrollbars(10, 10, 200, 200,-20,-20,False)
        self.canvas.Bind(wx.EVT_PAINT, self.OnPaint)
 
    def OnPaint(self, evt):
        dc = wx.PaintDC(self.canvas)
        self.canvas.PrepareDC(dc)
        dc.BeginDrawing()
        lines=[(-500,-500,507,507)]
        dc.DrawLineList(lines)
        dc.DrawText("hello_world", 60, 24)
        dc.EndDrawing()
 
if __name__ == "__main__":
    okno = wx.App(1)
    parent=wx.MDIParentFrame(None,size=wx.Size(500,500))
    child=wx.MDIChildFrame(parent,title="Graf",id=-1)
    Canvas(child)
    child.Maximize()
    parent.Show()
    okno.MainLoop()
c'est bizarre mais ce code marche sur xp et non sur Linux?