valor texto sirve siguientes poner para obtener los limpiar imprimir funcion eventos etiquetas entry entradas elementos cuál cuadro como caja atributos agregar perl tkinter tcl tk perltk

perl - sirve - Llamar a la subrutina automáticamente cada vez que cambie la posición del cursor en un widget de texto



obtener valor de entry python (2)

Estoy usando el módulo Tk::Text .

Quiero que siempre que el usuario cambie la posición del cursor dentro del módulo Tk::Text , actúe como un disparador para llamar a una subrutina que he escrito.

¿Cómo hago para implementar esto?

EDITAR:

Como respondió Donal Fellows, de alguna manera necesito encontrar si la marca de insert se cambia cuando se realiza una llamada a la rutina markSet . He buscado la red extensamente para encontrar una solución a este problema, pero fue en vano. Ahora necesito que me ayuden con eso. ¡Gracias!


No hay una devolución de llamada predefinida para cuando cambie la ubicación de la marca de insert (esa es la terminología que está buscando) pero siempre se configura mediante el método markSet . Tal vez puede poner algo para interceptar llamadas a ese método, ver si se están aplicando para insert , y hacer su devolución de llamada? (Así es cómo lo haría en Tcl / Tk; no sé qué tan fácil es interceptar los métodos del lado de Perl, pero seguramente debe ser posible).


Esto es de lo que https://.com/a/22356444/2335842 está hablando, vea http://p3rl.org/perlobj y http://p3rl.org/Tk::Widget y http: // p3rl. org / require para detalles

#!/usr/bin/perl -- use strict; use warnings; use Tk; Main( @ARGV ); exit( 0 ); BEGIN { package Tk::TText; $INC{q{Tk/TText.pm}}=__FILE__; use parent qw[ Tk::Text ]; Tk::Widget->Construct( q{TText} ); sub markSet { warn qq{@_}; my( $self, @args ) = @_; $self->SUPER::markSet( @args ); } } sub Main { my $mw = tkinit(); $mw->TText->pack; use Tk::WidgetDump; $mw->WidgetDump; ## helps you Tk your Tk $mw->MainLoop; } __END__ Tk::TText=HASH(0x10f7a74) insert @347,218 at - line 13. Tk::TText=HASH(0x10f7a74) anchor insert at - line 13.