Pour mon projet suivant, qui sera un mini moteur 3D élémentaire en python et en Tkinter, je travaille sur un affichage de 4 canvas, qui doivent être resizables par l'utilisateur.

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
29
30
31
32
33
34
35
#!/usr/local/bin/python
# -*- coding:utf-8 -*-
from Tkinter import *
class Application:
    def __init__(self):
        self.root=Tk()
        self.root.title('PanedWindow - v.1')
        self.root.geometry("600x400")
 
        pwHoriz = PanedWindow(self.root, showhandle=1, sashrelief=SUNKEN)
        pwHoriz.pack(fill=BOTH, expand=1)
 
        pwVerti1 = PanedWindow(pwHoriz, showhandle=1, sashrelief=SUNKEN, orient=VERTICAL)
        pwHoriz.add(pwVerti1)
 
        pwVerti2 = PanedWindow(pwHoriz, showhandle=1, sashrelief=SUNKEN, orient=VERTICAL)
        pwHoriz.add(pwVerti2)
 
        self.cvert1top = Canvas(pwVerti1, bg="yellow")
        pwVerti1.add(self.cvert1top)
 
        self.cvert1bot = Canvas(pwVerti1, bg="blue")
        pwVerti1.add(self.cvert1bot)
 
        self.cvert2top = Canvas(pwVerti2, bg="red")
        pwVerti2.add(self.cvert2top)
 
        self.cvert2bot = Canvas(pwVerti2, bg="green")
        pwVerti2.add(self.cvert2bot)
 
        self.root.mainloop()
 
# départ du programme principal :
if __name__ == "__main__":
    f = Application()
Comment faire en sorte que les 4 canvas soient affichés INITIALEMENT avec la même taille, même quand l'utilisateur redimensionne la fenêtre (quand il n'a pas encore touché volontairement les handles des panedwindows) ?

Autrement dit : comment placer toutes les barres de séparation exactement au milieu de la fenêtre principale (verticalement et horizontalement) ?