Pregunta

Tengo una instancia de ttk.Entry. El usuario hace clic en él. Tengo el evento obligado. En función de alguna condición, yo tampoco quiero que el cursor de entrada que aparezca y permita la tipificación o que esencialmente quiere ignorar el clic y no tener la entrada del cursor aparecerá en el ttk.Entry. I no quiero tener que usar los estados de sólo lectura o discapacitados.

La manipulación de enfoque no tiene efecto.

¿Fue útil?

Solución 2

Después de buscar la documentación de TTK, esto hace el truco:

    ttk.Style().map("TEntry",
                    foreground=[('disabled', 'black')],
                    fieldbackground=[('disabled','white')]
                    )
    widget['state'] = 'disabled'

Otros consejos

Esta es una clase que hace lo que se le pregunte.

class MyEntry(Entry):

    def disable(self):
        self.__old_insertontime = self.cget('insertontime')
        self.config(insertontime=0)
        self.bind('<Key>', lambda e: 'break')

    def enable(self):
        self.unbind('<Key>')
        if self.cget('insertontime') == 0:
            self.config(insertontime=self.__old_insertontime)

Sin embargo, ya que su verdadera preocupación es que no desea una entrada de personas con discapacidad para buscar personas con discapacidad, acaba de establecer los colores de disabledbackground y disabledforground para que coincida con los colores de background y forground. Si necesita esta enrollado en una clase, hacerlo de esta manera:

class MyEntry(Entry):
    def __init__(self, *args, **kwds):
        Entry.__init__(self, *args, **kwds)
        self.config(disabledbackground=self.cget('background'))
        self.config(disabledforeground=self.cget('foreground'))

Y utilizar de esta manera:

e = MyEntry(root)
e.config(state=DISABLED) # or state=NORMAL

Nota. Tenga cuidado al reinventar convenciones de GUI. Tener algo que se ve permitieron actuar con discapacidad puede ser confuso para los usuarios. Así que no cambie esto a menos que tenga una buena razón.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top