Python tkinter TypeError“str”对象不能解释为整数

2024-09-29 17:09:52 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,你能帮帮我吗?我正试着为了好玩而练习编码和制作数据库,但我被卡住了。有人有什么建议吗 谢谢各位:

我试图将数据输入一个输入字段,以便将其复制到数据库中的一个表中,但遇到了问题-TypeError-“str”对象不能解释为整数

def players_one():
    global screen8
    global playertext
    global playerLabel
    screen8 = Tk()
    screen8.title = ("PLAYERS")
    screen8.geometry("1080x750")
    Label(screen8, text = "WHCC 1ST XI PLAYERS", bg = "cyan", width = "350", height = "3", font = ("Calibri", 28, "bold")).pack()

    MainFrame = Frame(screen8)
    MainFrame.pack()

    TopFrame = Frame(MainFrame, bd = 14, width = 1350, height = 550, padx = 20, relief = RIDGE, bg = "cyan")
    TopFrame.pack(side = TOP)

    playerLabel2 = Label(TopFrame, font = ("calibri", 28, "bold"), pady = 10, bg = "cyan",
    text = "Player Name")
    playerLabel2.grid(row = 0, column = 0, columnspan = 17)

    playertext = Text(TopFrame, height = 15, width = 90, bd = 10, font = ("calibri", 20 , "bold"))
    playertext.grid(row = 1, column = 0, columnspan=6, padx = 2, pady = 5)


def playerfunction():
    playertext = []
    playertext.insert(END, player_name_verify.get())

在管理者登录的输入字段中输入玩家名称时,应该转到我的玩家登录中的“我的玩家详细信息”表,但会不断收到错误信息

def players():
    global screen4
    global playertext
    screen4 = Tk()
    screen4.title("PLAYERS")
    screen4.geometry("1080x750")
    Label(screen4, text = "WHCC 1ST XI PLAYERS", bg = "cyan", width = "350", height = "3", font = ("Calibri", 28, "bold")).pack()
    Label(screen4, text = "").pack()

    global player_name_entry

    global player_name_verify




    player_name_verify = StringVar() 


    Label(screen4, text = "Player Name : ", font = ("Calibri", 16)).pack()
    player_name_entry = Entry(screen4, textvariable = player_name_verify)
    player_name_entry.pack()

    Button(screen4, text = "Enter", width = "13", height = "2", command = playerfunction).pack()

即使玩家的名字被称为StringVar()

以下是回溯:

Traceback (most recent call last): File "C:\Python33\lib\tkinter__init__.py", line 1482, in call return self.func(*args) File "//TDMS-FS-02/2013$/13IshKau/a LEVELS/cw st.py", line 133, in playerfunction playertext.insert(END, player_name_verify.get()) TypeError: 'str' object cannot be interpreted as an integer


Tags: textnamewidthgloballabelpackbgplayer
1条回答
网友
1楼 · 发布于 2024-09-29 17:09:52

StringVar()player_name_verify可能功能正常

此错误可以很容易地用以下方法模拟:

from tkinter import *
l = []
l.insert(END, "Something")

返回:

Traceback (most recent call last):
  File "<pyshell#2>", line 3, in <module>
    l.insert(END, "Something")
TypeError: 'str' object cannot be interpreted as an integer

发生这种情况的原因是END保存的值'end'不是整数,因此当它试图插入列表的索引位置'end'时,它会出错

正如@stovfl所指出的,它发生在def playerfunction():函数中,似乎您打算使用全局playertext文本框,而不是本地列表

def playerfunction():
    global playertext
    global player_name_verify # you may need this as well
    playertext.insert(END, player_name_verify.get())

我会研究将变量传递给函数,而不是依赖全局变量,作为一种习惯,全局变量往往会很快把事情弄得一团糟

相关问题 更多 >

    热门问题