elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Seleccionar palabras con espacios en widget TEXT en tkinter…
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Seleccionar palabras con espacios en widget TEXT en tkinter…  (Leído 3,528 veces)
El mas antiguo

Desconectado Desconectado

Mensajes: 94



Ver Perfil
Seleccionar palabras con espacios en widget TEXT en tkinter…
« en: 16 Octubre 2022, 20:11 pm »

Hola gente, ¿cómo están?, demasiado tiempo practicando y no logro
encontrar la solución.

Dejo algunos ejemplos:
«from collections import Counter»
Si arrastro el mouse del inicio al final de «from» ok
Si arrastro el mouse del inicio al final de «from collections» copia solamente «collections»
lo que necesito es que copie el total de lo seleccionado.-
En cuanto al «doble clic» no me hace falta, por lo menos en este programa…
Lo que ocurre también es que seleccionar todo lo tengo implementando
correctamente, pero hay texto que debo extraer solo una parte.-

Código
  1. def copiar_al_portapapeles(t1, muestra_codigo):
  2.    inicio = muestra_codigo.index("insert-1c wordstart")
  3.    final  = muestra_codigo.index("insert -1c wordend")
  4.    texto = muestra_codigo.get(inicio, final)
  5.    print(texto)
  6.    clib.copy(texto)
  7.  

Desde ya gracias por el tiempo que le dediquen, gracias.-
Slds. Daniel ☕☕☕


En línea

reymosquito

Desconectado Desconectado

Mensajes: 81


Ver Perfil
Re: Seleccionar palabras con espacios en widget TEXT en tkinter…
« Respuesta #1 en: 17 Octubre 2022, 00:17 am »

hola:

1) en mi caso no soy adivino, así que no tengo la menor idea que son los parámetros que le pasas a la función:
Código
  1. def copiar_al_portapapeles(t1, muestra_codigo):

2)un posible error de lógica, ya que estás limitando lo copiado a palabras.
¿y si de "from collections import Counter" el usuario quería copiar rom collect o port count?, ¿lo querés obligar a que seleccione totalmente las palabras?

3)no es ni por casualidad la mejor forma la que intentas aplicar, hay varias, una con la propia de tkinter y otra con bibliotecas externas, pero vamos con la propia.
no me gusta, salvo excepciones dejar código suelto y no facilmente verificable para el lector,así que implemento un ejemplo funcional sin parámetros en la función, agregalos vos cuando los necesites.

4)tampoco sé como llamás a la función así que implemente un botón.

5)código verificable

Código
  1. #-*- coding: utf  -8 -*-
  2. import tkinter as tk
  3. ventana = tk.Tk()
  4. ventana.geometry("400x350")  
  5.  
  6. def copia():
  7.    try:
  8.        if t1.selection_get():
  9.            data=t1.selection_get()
  10.            print(data)# esto es inncesario, está solo para que se vea lo copiado
  11.            ventana.clipboard_clear()
  12.            ventana.clipboard_append(data)
  13.            return data  
  14.    except: pass
  15.  
  16.  
  17. t1 = tk.Text(ventana,font=20,height=13,width=42)
  18. t1.insert("end","from collections import Counter")
  19. t1.place(x=0,y=0)
  20.  
  21. boton=tk.Button(ventana,text='Copiar',command=copia,font=20,bg='lightblue')
  22. boton.place(x=0,y=300)
  23.  
  24. ventana.mainloop()
  25.  
  26.  
  27.  


En línea

El mas antiguo

Desconectado Desconectado

Mensajes: 94



Ver Perfil
Re: Seleccionar palabras con espacios en widget TEXT en tkinter…
« Respuesta #2 en: 17 Octubre 2022, 01:00 am »

«En mi caso no soy adivino…» me hago cargo y reconozco que mostré un código
que solamente yo podría entender, pero tiene mucho que ver con el código que
dejo a continuación(justo en el momento que lo probé y lo iba a subir estaba en eso
cuando leí «reymosquito y 134 Visitantes…», no podía perderme tu ayuda).-

Código
  1. def copiar_al_portapapeles(muestra_codigo):
  2.    texto = muestra_codigo.get("sel.first", "sel.last")
  3.    print(texto)
  4.    clib.copy(texto)

Si te parece que ves algo que pueda proporcionar algún error, espero tu comentario.-
Lo tuyo funciona de maravillas, muchas gracias

Ahora lo implementé así:

Código
  1. def copiar_al_portapapeles(muestra_codigo):
  2.    try:
  3.        texto = muestra_codigo.get("sel.first", "sel.last")
  4.    except:
  5.        texto = muestra_codigo.get("1.0", "end")
  6.  
  7.    clib.copy(texto)

Slds. Daniel ☕☕☕
« Última modificación: 17 Octubre 2022, 01:18 am por El mas antiguo » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Seleccionar dicho texto con el puntero y pasarlo a un text
Programación Visual Basic
erick185 3 1,532 Último mensaje 1 Julio 2006, 06:37 am
por erick185
Seleccionar con explode varias palabras
PHP
dimitrix 2 2,286 Último mensaje 20 Junio 2012, 14:08 pm
por dimitrix
[Duda]Como obtengo el valor de un Text-Tkinter(Python)
Scripting
Proxmond 0 2,099 Último mensaje 18 Junio 2014, 01:42 am
por Proxmond
Obtener palabra a partir de la última letra(widget TEXT)
Scripting
El mas antiguo 6 5,401 Último mensaje 1 Septiembre 2022, 17:41 pm
por reymosquito
Relación entre píxeles y fila/columnas en widget TEXT.
Scripting
El mas antiguo 1 2,129 Último mensaje 12 Septiembre 2022, 19:23 pm
por El mas antiguo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines