Question

Je sais que Tkinter n'est qu'une fine couche sur TCL / TK. Tkinter Vous pouvez faire quelques choses pour changer le style Windows. Un exemple serait root.attributes('-toolwindow', True). Cela changerait le style de fenêtre, par rapport à une fenêtre d'outil. Cependant, je cherche à aller un peu plus bas.

Je soupçonne à un moment donné les fenêtres de réchauffage TCL / TK styles de fenêtre. Je suis presque sûr que cela devrait le faire pour définir le style de fenêtre et par extension le style de fenêtre Tkinter. J'essaye de donner une fenêtre de tkinter ce que je suis sûr que c'est le Ws_dlgframe style. Cependant, je ne sais pas comment aborder cela.

Je me demande où dans la partie TCL / TK de Tkinter, il affecte les styles Windows, et ce que je devrais ajouter pour obtenir ce style.

L'objectif final est d'obtenir un style de bordure de fenêtre Tkinter qui ressemble à celui ci-dessous (notez comment il manque un bouton de sortie):

enter image description here

C'est dans Windows 7, BTW.

Était-ce utile?

La solution

Si vous connaissez C, téléchargez Code source TK.

J'ai regardé rapidement et dans ce fichier:./win/tkWinWm.c à la ligne 3072 (tk859-src.zip), vous avez la fonction static int WmAttributesCmd(), traitant avec -toolwindow Comme vous l'avez dit, plus tard mis à jour par UpdateWrapper().

Donc, pas de moyen facile de le modifier, sauf si vous modifiez le code source TK.

Vous pouvez également utiliser FindWindow Et cherchez la classe Windows de Tk TK_WIN_CHILD_CLASS_NAME défini être TkChild, puis utiliser SetWindowLongPtr( GWLP_STYLE, ...) Pour changer le style (mais cela nécessite un appel FFI à C ou à d'autres moyens).

Moi-même, je ne connais pas ni TCL / TK, alors prenez-le avec un grain de sel. Pourquoi ne pas essayer la communauté TCL / TK?

Autres conseils

L'option suivante demande au gestionnaire de fenêtres de ne pas décorer la fenêtre (c'est-à-dire pas de barre de titre et de boutons de fenêtre, plus pas de bordures)

root.overrideredirect(True)

Un faux argument restaure les décorations.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top