0

嘿,我试图在 tkinter 中制作一个画布并输入一个全局变量,但我收到错误(AttributeError:'int' object has no attribute 'get')

def a():
 a1 = e1.get()
 b1 = e2.get()
 c1 = e3.get()
 print(a, b, c)

def window():
 window = Tk()

 my_canvas = Canvas(window, width=530, height=240, bd=0, highlightthickness=0)
 my_canvas.pack(fill="both", expand=True)

 global e1, e2, e3

 e1 = Entry(window, fg="black", bd=0)
 e2 = Entry(window, fg="black", bd=0)
 e3 = Entry(window, fg="black", bd=0)
 
 e1 = my_canvas.create_window(40, 20, anchor="nw", window=e1)
 e2 = my_canvas.create_window(40, 60, anchor="nw", window=e2)
 e3 = my_canvas.create_window(40, 100, anchor="nw", window=e3)

 button1 = Button(window, text='Print', bd=0, bg="black", fg="white", command=a)
 
 button1 = my_canvas.create_window(400, 20, anchor="nw", window=button1)
 
 window.mainloop()

 p = Process(target=window)
 p.start()
 p.join()

4

1 回答 1

0

您正在get调用.create_window对象

你不应该跑过这些Entry物体:

from tkinter import Tk, Canvas, Button, Entry
from multiprocessing import Process

def a():
    a = e1.get()
    b = e2.get()
    c = e3.get()
    print(a, b, c)


def window():
    window = Tk()

    my_canvas = Canvas(window, width=530, height=240, bd=0, highlightthickness=0)
    my_canvas.pack(fill="both", expand=True)

    global e1, e2, e3

    e1 = Entry(window, fg="black", bd=0)
    e2 = Entry(window, fg="black", bd=0)
    e3 = Entry(window, fg="black", bd=0)

    e1_w = my_canvas.create_window(40, 20, anchor="nw", window=e1)
    e2_w = my_canvas.create_window(40, 60, anchor="nw", window=e2)
    e3_w = my_canvas.create_window(40, 100, anchor="nw", window=e3)

    button1 = Button(window, text='Print', bd=0, bg="black", fg="white", command=a)

    button1 = my_canvas.create_window(400, 20, anchor="nw", window=button1)

    window.mainloop()

    p = Process(target=window)
    p.start()
    p.join()
于 2021-10-13T07:57:09.800 回答