Hola! a todos.
Alguien podría por favor ayudarme con lo siguiente?
Tengo la necesidad de solicitarle al usuario 4 campos: Fecha inicial, Fecha final, Cliente, Perfil (Ver imagen 1). Lo ideal sería aprovechar las librerías de Python, como from tkcalendar import Calendar,DateEntry, para los campos tipo Fecha. En un archivo aparte creo el código Python y después lo llamo a través del comando «Ejecutar archivo Python» (ver imagen 4), pero cuando ejecuto el Robot, me aparece el error (ver imagen 3):
«No module named ‘tkcalendar'». Antes de ejecutar el robot instalé la librería tkcalendar con la instrucción: pip install tkcalendar
NOTA: Recurro a esta forma de solicitarle los datos al usuario, porque no veo un comando en Rocketbot, que me permita hacer una especie de formulario (solo sé que se pueden crear formularios en el Orquestador). Solo veo uno llamado «input», pero por usabilidad, no le voy a pedir 4 veces en momentos distintos, datos al usuario. Es mejor, solicitarle los 4 campos en un formulario.
Pregunta: ¿En Rocketbot, no puedo trabajar con tkcalendar y messagebox?
Estaré muy agradecida.
Muchas gracias.
WALL-E
Hola, debes importar la librería dentro de la función donde la utilizas, ya que rocketbot utiliza el scope que se encuentra dentro de la función y no la del archivo completo
guarin3
Hola! WALL -E
Gracias por responder. Hice lo que me indicaste, pero aún sigue el error 🙁
¿Qué estoy haciendo mal? Adjunto imagen PruebaLibreria.jpg.
También pegaré aquí el código para ver si me puedes ayudar 🙁
Código:
#import tkinter as tk
#from tkinter import ttk
#from tkcalendar import DateEntry
#from tkcalendar import *
def crear_interfaz():
import tkinter as tk
from tkinter import ttk
from tkcalendar import Calendar,DateEntry
# Función para obtener los valores seleccionados
def obtener_valores():
fecha_inicial = date_fecha_inicial.get()
fecha_final = date_fecha_final.get()
cliente = entry_cliente.get()
perfil = entry_perfil.get()
# Realizar acciones con los valores obtenidos
print(«Fecha inicial:», fecha_inicial)
print(«Fecha final:», fecha_final)
print(«Cliente:», cliente)
print(«Perfil:», perfil)
# Crear la ventana principal
ventana = tk.Tk()
ventana.title(«Interfaz de Usuario»)
ventana.geometry(«700×600″)
# Crear los campos de entrada y etiquetas
label_fecha_inicial = ttk.Label(ventana, text=»Fecha inicial:»)
label_fecha_inicial.pack()
date_fecha_inicial = DateEntry(ventana, date_pattern=’dd/mm/yyyy’)
date_fecha_inicial.pack()
label_fecha_final = ttk.Label(ventana, text=»Fecha final:»)
label_fecha_final.pack()
date_fecha_final = DateEntry(ventana, date_pattern=’dd/mm/yyyy’)
date_fecha_final.pack()
label_cliente = ttk.Label(ventana, text=»Cliente:»)
label_cliente.pack()
entry_cliente = ttk.Entry(ventana)
entry_cliente.pack()
label_perfil = ttk.Label(ventana, text=»Perfil:»)
label_perfil.pack()
entry_perfil = ttk.Entry(ventana)
entry_perfil.pack()
# Crear el botón para obtener los valores
boton_obtener = ttk.Button(ventana, text=»Obtener», command=obtener_valores)
boton_obtener.pack()
# Iniciar el bucle principal de la aplicación
ventana.mainloop()
# Llamar a la función para crear la interfaz
crear_interfaz()
Muchas gracias.
WALL-E
Qué versión de Python tienes instalada? Si utilizas Rocketbot v2020 debes utilizar python 3.6.8 de 32bits para instalar las librerías, sino no serán compatibles. Te recomiendo también instalar dichas librerías de forma local y no global, es decir dentro de las librerías de Rocketbot, para hacerlo ve a una consola y posicionate en Rocketbot/modules/libs e instala las libs con el siguiente comando:
pip install <libreria> -t .
guarin3
Hola! WALL -E
Gracias por responder.
Aún no lo he intentado, pues ya casi termino el Robot que estoy construyendo (para Windows) en la versión 2020 y una vez terminado, pienso migrarlo a la versión más reciente de Rocketbot. Ahí sí, creería que mi versión de Python que es 3.10.2, sea compatible con la última versión de Rocketbot.