【问题标题】:Having trouble with Entry variables in tkinter Pythontkinter Python中的入口变量有问题
【发布时间】:2018-10-02 09:10:11
【问题描述】:
from tkinter import *

root = Tk()
root.geometry("800x650")
e = Entry(root, width=3, font=('Verdana', 30), justify='right')

a = b = c = e

a.place(relx=0.2, rely=0.5, anchor=CENTER)
b.place(relx=0.44, rely=0.5, anchor=CENTER)
c.place(relx=0.65, rely=0.5, anchor=CENTER)
root.mainloop()

为什么我看不到所有三个条目,它们在哪里?

但是当我这样做时:

a = Entry(root, width=3, font=('Verdana', 30), justify='right')
b = Entry(root, width=3, font=('Verdana', 30), justify='right')
c = Entry(root, width=3, font=('Verdana', 30), justify='right')

它有效...

【问题讨论】:

  • 是的,您将不得不比这更难解释,因为我不明白我的代码中存在什么问题。我完全理解你的答案,但我仍然不明白我的代码到底出了什么问题。谢谢。

标签: python python-3.x tkinter tkinter-entry


【解决方案1】:

尝试将“e”改为一个类,并单独声明您的框,a = b = e 给出的结果与您尝试的结果大致相同。

root = Tk()
root.geometry("800x650")

class MyEntry(Entry):
    def __init__(self, master=root):
        Entry.__init__(self, master=root)

        self.configure(width = 3, 
            font = ('Verdana', 30),
            justify = 'right')

a = MyEntry()
b = MyEntry()
c = MyEntry()

a.place(relx=0.2, rely=0.5, anchor=CENTER)
b.place(relx=0.44, rely=0.5, anchor=CENTER)
c.place(relx=0.65, rely=0.5, anchor=CENTER)
root.mainloop()

【讨论】:

    【解决方案2】:

    为什么我看不到所有三个条目,它们在哪里?

    您看不到三个条目,因为您没有创建三个条目。当您执行a = b = c = e 时,您正在为e 所指的同一个对象分配三个新名称,您并没有创建新的小部件。 abce 都指向内存中的同一个对象。

    【讨论】:

      猜你喜欢
      • 2015-11-15
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 2023-04-08
      • 2022-10-23
      • 2018-06-09
      • 1970-01-01
      • 2014-09-20
      相关资源
      最近更新 更多