2010-10-24 26 views
1

J'expérimente avec les nouvelles améliorations ttk Tile fournies avec Python 2.7.Python 2.7/Windows: la liste déroulante de la liste déroulante ttk s'affiche sous la fenêtre racine la plus haute

Windows 7: Le code ci-dessous montre comment la liste déroulante des listes déroulantes s'affiche derrière la fenêtre racine lorsque la fenêtre racine est configurée comme une fenêtre supérieure ("toujours visible"). Si vous commentez la ligne "" "root.attributes ('-topmost', 1)" "", la liste déroulante de la liste déroulante apparaît dans la fenêtre racine (comme prévu).

Quelqu'un at-il des solutions de contournement pour ce comportement afin que nous puissions utiliser des zones de liste déroulantes avec les fenêtres 'topmost'?

# sample code that illustrates problem described above 

import Tkinter as tkinter 
import ttk 

root = tkinter.Tk() 

panelCombo = ttk.Frame(root) 
panelCombo.pack(side='top', fill='x', padx=12, pady=8) 
valCombo = ('cat', 'dog', 'pig') 
varCombo = tkinter.StringVar() 
varCombo.set('fish') 
cboCombo = ttk.Combobox(panelCombo, values=valCombo, textvariable=varCombo) 
cboCombo.pack(side='left', anchor='w', padx=12, pady=8) 

# make our window 'alwaysontop' 
root.attributes('-topmost', 1) 
root.mainloop() 

Répondre

1

C'est une known bug dans la boîte à outils Tk. Il a été corrigé dans release 8.5.6. Peut-être que vous avez juste besoin d'attendre jusqu'à ce que cette version fasse son chemin en Python.

+0

Merci Frédéric. Cordialement, Malcolm – Malcolm