Python 2.7 / Windows: menu déroulant TTK combobox apparaît sous la fenêtre racine supérieure

StackOverflow https://stackoverflow.com/questions/4007325

  •  25-09-2019
  •  | 
  •  

Question

J'expérimente avec les nouvelles améliorations de tuiles TTK livrés avec Python 2.7.

Windows 7: Le code ci-dessous montre comment le menu déroulant combobox apparaît derrière notre fenêtre racine lorsque la fenêtre racine est configurée comme une fenêtre supérieure ( « toujours au-dessus »). Si vous commentez la ligne « » « root.attributes ( « -topmost », 1) « » » puis le menu déroulant apparaît combobox dans la fenêtre racine (comme prévu).

Quelqu'un a des solutions de contournement pour ce comportement afin que nous puissions utiliser comboboxes avec des fenêtres 'les plus hautes?

# 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()
Était-ce utile?

La solution

C'est un bug connu dans la boîte à outils Tk. Il a été corrigé dans libérer 8.5.6 . Peut-être vous avez juste besoin d'attendre cette version fait son chemin en Python.

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