le séparateur TTK de tkinter ne s'affiche pas

réfléchir à ce simple code:

from Tkinter import *
import ttk
root= Tk()
ttk.Label(root, text='Heading Here').grid(row=1, column=1)
ttk.Separator(root,orient=HORIZONTAL).grid(row=2, columnspan=5)
root.mainloop()

Lorsque j'exécute ce code, le séparateur est presque invisible.

ttk separator not visible

j'ai marqué avec une flèche rouge, si vous pouvez la voir comme un petit point genre de chose.

Comment faire pour que le séparateur s'étende sur toute la largeur horizontale, ou du moins soit visible?

16
demandé sur Cœur 2013-06-10 00:32:47

2 réponses

sticky attribut, qui dit "s'il y a plus d'espace que nécessaire pour ce widget, faire les bords du widget "coller" aux côtés spécifiques de son conteneur".

dans ce cas, vous voulez que le séparateur colle aux bords gauche et droit de son contenant. Le collant attributes utilise les points de la boussole pour les valeurs, donc vous voulez " e "pour l'est, et" w " pour l'Ouest:

ttk.Separator(...).grid(..., sticky="ew")
21
répondu Bryan Oakley 2013-06-09 20:37:15

@Bryan .grid(), utilisez place() la disposition et avoir le contrôle total de la position, de la largeur (longueur) et même de la hauteur du séparateur. Pour appliquer simplement ceci au cas présent (sans n'importe quelle caractéristique supplémentaire) et couvrir la pleine largeur horizontale, juste:

Remplacer

ttk.Separator(root,orient=HORIZONTAL).grid(row=2, columnspan=5)

ttk.Separator(root).place(x=0, y=26, relwidth=1)

vous pouvez mettre ' y ' comme vous voulez. Notez également que orient=HORIZONTAL n'est pas nécessaire puisque c'est l'option par défaut. (Consultez http://effbot.org/tkinterbook/place.htm pour plus de détails et des exemples d'utilisation de".option()' mise en page.)

2
répondu Apostolos 2018-03-08 09:26:57