Tkinter Pwm MegaWidgets在销毁小部件中不起作用
我尝试下面的代码,收到“\u tkinter.TclError:错误的窗口路径名”。!框架框架条目“ 其目的是当我按下按钮时,combobox megawidget出现在quake窗口中Tkinter Pwm MegaWidgets在销毁小部件中不起作用,tkinter,tk,pmw,Tkinter,Tk,Pmw,我尝试下面的代码,收到“\u tkinter.TclError:错误的窗口路径名”。!框架框架条目“ 其目的是当我按下按钮时,combobox megawidget出现在quake窗口中 enter code here from tkinter import * import Pmw class engineer(object): def __init__(self,quake,parent): self.quake=quake self.paren
enter code here
from tkinter import *
import Pmw
class engineer(object):
def __init__(self,quake,parent):
self.quake=quake
self.parent=parent
def arent(self):
self.parent=Tk()
self.parent.geometry('200x200')
self.ba=Button(self.parent,text='display',command=self.combo)
self.ba.grid()
def zone_define(self,a):
print(a)
def combo(self):
self.quake=Tk()
self.quake.geometry('200x200')
zone=["I", "II", "III"]
combobox=Pmw.ComboBox(self.quake,label_text='Play',label_bg='white',labelmargin=0,labelpos='wn',
label_relief=FLAT,listbox_width=24,selectioncommand=self.zone_define)
combobox.grid()
combobox.selectitem(asply[1])
self.quake.mainloop()
if __name__=='__main__':
gr=engineer(None,None)
gr.arent()
好的,由于您多次定义Tk(),所以生成了错误。这每次都会创建一个新窗口,这将创建冲突的更改 我以前也遇到过类似的错误,我只需删除第二个Tk(),就解决了这个问题。我尝试了一个顶级小部件,然后开始工作。我认为这是一个很好的解决方案 这里是解决方案。注意组合函数 从tkinter进口* 进口Pmw 班主任(对象): definit(自我、地震、父母): self.quake=地震 self.parent=parent
def arent(self):
self.parent=Tk()
self.parent.geometry('200x200')
self.ba=Button(self.parent,text='ana',command=self.combo)
self.ba.grid()
def zone_define(self,a):
print(a)
def combo(self):
self.quake=Toplevel()
self.quake.geometry('200x200')
zone=["I", "II", "III"]
combobox=Pmw.ComboBox(self.quake,label_text='Play',label_bg='white',
labelmargin=0, labelpos='wn',label_relief=FLAT,
listbox_width=24,selectioncommand=self.zone_define,
scrolledlist_items=zone,
arrowbutton_bg='white',arrowbutton_relief=FLAT,
arrowbutton_highlightcolor='white',arrowbutton_bd=0)
combobox.grid()
combobox.selectitem(zone[0])
self.quake.mainloop()
if __name__=='__main__':
gr=engineer(None,None)
gr.arent()
请修复发布代码中的缩进错误。不要多次使用
tk.tk
。我使用顶级小部件而不是tk()