Bonjour a tous,

Je cherche a dessiner des images, contenant des rectangles de diverses largeurs et ajouter des metadonnees, ainsi qu'une echelle, ...

Pour l'instant, j'ai fait ca vite fait en utilisant pillow:

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
27
28
 
def draw_chunk_usage(chunks, range_, img_size=(1024, 128)):
    start, end = range_
    width, height = img_size
    image = Image.new("RGB", img_size, "WHITE")
    draw = ImageDraw.Draw(image)
    red = ImageColor.getcolor("RED", "RGB")
    green = ImageColor.getcolor("GREEN", "RGB")
    black = ImageColor.getcolor("BLACK", "RGB")
    white = ImageColor.getcolor("WHITE", "RGB")
    for chunk in chunks:
        chunk_start = chunk.as_address()
        data_start = chunk.as_mem()
        chunk_end = chunk_start + chunk.chunksize()
        if chunk_start >= start and chunk_end <= end:
            color = green if chunk.is_inuse() else red
            # Draw heap chunk metadata rectangle first
            # Leftmost top corner
            x1 = ((((chunk_start - start) * width) // (end - start)), 0)
            # Rightmost bottom corner
            x2 = ((((data_start - start) * width) // (end - start)), height)
            draw.rectangle((x1, x2), white, black)
            # Then draw heap chunk data rectangle
            x1 = ((((data_start - start) * width) // (end - start)), 0)
            x2 = ((((chunk_end - start) * width) // (end - start)), height)
            draw.rectangle((x1, x2), color, black)
            draw.text((x1[0] + 10, x1[1] + 10), hexdump_as_bytes(data_start, 32), black)
    return image
Ce qui donne quelque chose du genre:
Nom : Screen Shot 2016-02-17 at 17.25.04.png
Affichages : 294
Taille : 23,8 Ko

Pillow est la mauvaise approche pour ce que je veux faire ensuite: afficher les métadonnées de chaque rectangle a chaque clic ou "hover" (adresses, contenu), avoir une échelle, ajouter quelques boutons, ...

Le truc c'est que je fais jamais d'IHM, du coup je sais pas trop vers quoi m'orienter (Matplotlib, tkinter grid(), ....). Auriez-vous des conseils a ce niveau, et sur l’approche générale? J'ai pas besoin d'avoir quelque chose de joli, juste quelque chose ou je peux visualiser les données et métadonnées correctement, et interagir avec.


Merci!