es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo agregar elementos a un listbox (tkinter python)?

Estoy haciendo un sistema de registro/chat en mi programa (con el aspecto predeterminado de Tkinter) y me encontré con un problema en el que no puedo agregar o cambiar una listbox. Esto es lo que estoy tratando de hacer:

import tkinter
from tkinter import *
from tkinter import messagebox
import random
window = tkinter.Tk()
window.geometry("250x195")
window.title("")
window.iconbitmap("icon.ico")
global loglength, log

log = []
loglength = len(log)
inventorylist = []
def sendmessage(event):
    chatstring = chatentry.get()
    log.append(chatstring)
    print(log, loglength)
    checknew() #no te preocupes por esto, funciona
serverlog = tkinter.Listbox(
    width=20,
    height=11,
    bg="darkgray",
    listvariable=log
).place(x=128,y=-2)

Quiero agregar elementos a la listbox. Aquí hay una imagen de mi programa:

imagen de la listbox

Cuando presiono enter (la tecla vinculada a la función para agregar la cadena a la listbox) esto sucede:

error :/

Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema parece estar en el parámetro listvariable en el widget Listbox. En cambio, deberías usar el método insert para agregar elementos al Listbox. Aquí tienes una versión actualizada de tu función sendmessage que debería funcionar:

    def sendmessage(event):
        chatstring = chatentry.get()
        serverlog.insert(END, chatstring)
        log.append(chatstring)
        print(log, loglength)
        checknew()
    

    Reemplaza la función sendmessage actual con esta actualizada y debería agregar los mensajes al Listbox sin errores.

Comments are closed.