下午好在这个脚本中,我正在尝试执行以下任务,但它们抛出了一个错误:
1-从实例化器类访问listbox的值
2-从Spinbox类对父类的调用中删除Listbox的整个列表:Frame_uuClass
我不知道我想要的是脚本中的良好结构还是我的逻辑不正确。请给我一个建议。谢谢你
from tkinter import *
class Frame_class(Frame):
def __init__(self, parents, *args, **kwargs):
Frame.__init__(self, parents, *args, kwargs)
self.listbox = Listbox_class (self, width=11, height=1)
self.listbox .pack()
self.spinbox = Spinbox_class (self, width=11)
self.spinbox .pack()
# from here I want to get the value of
# the first item of listbox or delete it
def delete(self, number):
if number == 1:
self.listbox.delete(0, END)
if number == 2:
self.listbox.delete(0, 1)
class Listbox_class(Listbox, Frame_class):
def __init__(self, master, **kwargs):
Listbox.__init__(self, master, **kwargs)
self.config (font=('Calibri',9,'bold'))
self.insert(0, 'banana1')
self.insert(0, 'orange1')
class Spinbox_class(Spinbox, Frame_class):
def __init__(self, master, **kwargs):
Spinbox.__init__(self, master, **kwargs)
self.var = StringVar()
self.val = [1,2,3,4,5,6,7,8,9]
self.config (font=('Calibri',9,'bold'), textvariable= self.var, values= self.val)
self.var.trace_add ('write', self.change)
def change(self, *args):
spinbox = self.get()
if spinbox == '':
Frame_class .delete(1)
else:
pass
root = Tk()
root.geometry('250x130+100+100')
app = Frame_class (root)
app . pack()
root.mainloop()
尝试删除spinbox的内容时,此代码引发以下错误: TypeError:delete()缺少1个必需的位置参数:“number”
您需要在这里实例化一个类实例。 这样做:
完整代码:
相关问题 更多 >
编程相关推荐