我试图通过一个按钮命令创建一个新的TopLevel,但是我遇到了一些困难。使用以下代码:
initial_state_button = Button(current_state, text=current_state_text, command = partial(initial_state_display, aatsplusv))
initial_state_button.pack(side = TOP)
....
def initial_state_display(dictionary):
top = Toplevel()
top.title = "About this State:"
count = 0
for key, value in dictionary["initial states"].iteritems():
proposition = Message(top, text = key)
proposition.grid(row=count, column=0, padx=5, pady=5)
colon = Message(top, text = " : ")
colon.grid(row=count, column=1, padx=5, pady=5)
boolean = Message(top, text = str(value))
colon.grid(row=count, column=2, padx=5, pady=5)
count += 1我收到以下错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1536, in __call__ return self.func(*args)
File "Assignmentest.py", line 400, in initial_state_display top = Toplevel()
File "C:\Python27\lib\lib-tk\Tkinter.py", line 2136, in __init__ self.title(root.title())
TypeError: 'str' object is not callable我不知道是怎么回事。top = Toplevel是精确编写的effbot示例显示的。Python2.7中没有toplevel吗?如果是的话,是否有2.7相等的数字?
发布于 2015-12-06 17:41:41
你宣布top标题的那一行错了。你的台词。
top.title = "About this State:"应该是这样的:
top.title("About this State:")有关进一步信息,请参见effbot文档。
因评论而编辑:
我只是在我的系统上安装了一个Python3,但是类似于这个蓝图的东西应该能工作。代码不是很好,但它展示了如何处理toplevel窗口:
#!/usr/bin/env python3
# coding: utf-8
from tkinter import *
def btn_callback():
top = Toplevel()
top.title("Toplevel window")
root = Tk()
root.title('Main window')
b = Button(root, text="Open Toplevel", command=btn_callback)
b.pack()
root.mainloop()如果您正在使用Python2,您应该将tkinter转换为Tkinter,并且代码应该按需要工作。
https://stackoverflow.com/questions/34120501
复制相似问题