【问题标题】:TypeError: can only concatenate str (not "int") to str: What does it mean?TypeError: can only concatenate str (not "int") to str: 这是什么意思?
【发布时间】:2020-09-18 12:42:31
【问题描述】:
from tkinter import*
import random
from tkinter import messagebox
window=Tk()
window.title("Random Tools")
window.configure(background="light green")
textvaria = IntVar()
textvaria2 = IntVar()

label0 = Label(window, text = "Min", bg ="light green")
label0.grid(row=1, column=0)

spinboxmin = Spinbox(window, from_=1, to=9999, increment=1, textvariable=textvaria)
spinboxmin.grid(row=2, column=0)
a = spinboxmin.get()

label1 = Label(window, text="Max", bg="light green")
label1.grid(row=3, column=0)

spinboxmax = Spinbox(window, from_=1, to=9999, increment=1, textvariable=textvaria2)
spinboxmax.grid(row = 4, column =0)
b = spinboxmax.get()

def submit2():
    if a <= b:
        answertext.delete('1.0', END)
    else:
        messagebox.showerror("Error", "Max must be greater than min!")

submit = Button(text="Submit", command=submit2)
submit.grid(row=4, column=2)

n = random.randint(a, b+1)

answertext = Text(text=n)
answertext.grid(row=5, column=0)


window.mainloop()

我正在做一个随机数的 GUI。但是当我在 Python 模块中运行它时,它说: “TypeError:只能将str(不是“int”)连接到str” 有人可以帮我弄这个吗? 非常感谢。

【问题讨论】:

标签: python python-3.x tkinter random


【解决方案1】:

spinbox 上的文档指出 get() 方法将旋转框的当前内容作为字符串返回。您不能像在此处尝试那样将数字添加到字符串中

n = random.randint(a, b+1)

所以你必须将 b 转换为 int 然后添加到它。

n = random.randint(a, int(b)+1)

【讨论】:

    【解决方案2】:

    你必须替换:

    a  = spinboxmin.get()
    b = spinboxmax.get()
    

    与:

    a = textvaria.get()
    b = textvaria2.get()
    

    【讨论】:

      猜你喜欢
      • 2019-02-02
      • 2022-11-01
      • 2021-08-18
      • 2020-11-21
      • 1970-01-01
      • 2020-02-29
      • 1970-01-01
      • 2023-02-25
      • 1970-01-01
      相关资源
      最近更新 更多