wmxs 发表于 2018-7-17 20:22:59

tkinter的Label组件使用问题

from tkinter import *

def check(num):
    return num.isdigit()

root = Tk()

frame1 = Frame(root)
frame1.pack(padx = 10, pady = 10)
frame2 = Frame(root)
frame2.pack(padx = 10, pady = 10)

v1 = StringVar()
v2 = StringVar()

check_num = root.register(check)
e1 = Entry(frame1, textvariable = v1, validate = 'key', validatecommand = (check_num, '%P'))
e1.grid(row = 0, column = 0)
e2 = Entry(frame1, textvariable = v2)
e2.grid(row = 0, column = 2)
e3 = Entry(frame1, state = "readonly")
e3.grid(row = 0, column = 4)

Label(root, text = '+').grid(row = 0, column = 1)
Label(root, text = '=').grid(row = 0, column = 3)

# label1 = Label(root, text = '+')
# label1.grid(row = 0, column = 1)
# label2 = Label(root, text = '=')
# label2.grid(row = 0, column = 3)

mainloop()

这段代码运行后,出了一个异常,内容如下
Traceback (most recent call last):
File "F:/Python source file/gui_in_tkinter/calculator/calculator.py", line 28, in <module>
    Label(root, text = '+').grid(row = 0, column = 1)
File "E:\Python\lib\tkinter\__init__.py", line 2220, in grid_configure
    + self._options(cnf, kw))
_tkinter.TclError: cannot use geometry manager grid inside . which already has slaves managed by pack

我明明用的是grid方法啊,为什么它会说被pack管理了啊

BngThea 发表于 2018-7-17 21:18:16

你的frame用的pack
tk中不混用排版
页: [1]
查看完整版本: tkinter的Label组件使用问题