class Master1(object): def __init__(self): self.a = 100 class Master2(object): def __init__(self): self.b = 200 class Sub(Master1,Master2): def __init__(self): pass def show(self):
时间: 2023-05-15 08:06:16 浏览: 62
这是一个 Python 的类继承的示例,Sub 类继承了 Master1 和 Master2 两个类的属性和方法,但是在自己的 __init__ 方法中没有做任何事情,因此 show 方法也没有实现。如果需要使用 Sub 类,可以在其实例化时传入必要的参数,并在其方法中实现相应的逻辑。
相关问题
class ExcelApp: def __init__(self, master): self.master = master master.title("Excel App") screen_width = master.winfo_screenwidth() screen_height = master.winfo_screenheight() master.geometry("%dx%d" % (screen_width, screen_height)) master.state('zoomed') # 创建左侧面板,使用 Canvas 和 Frame 实现滚动条 self.panel_left = tk.Canvas(master, width=150, bg='lightcyan') self.panel_left.pack(side=tk.LEFT, fill=tk.Y) scroll = tk.Scrollbar(master, command=self.panel_left_frame.yview) scroll.pack(side=tk.LEFT, fill=tk.Y) self.panel_left.config(yscrollcommand=scroll.set) self.panel_left_frame = tk.Frame(self.panel_left) self.panel_left.create_window((0, 0), window=self.panel_left_frame, anchor='nw') # 设置滚动条长度 def scroll_update(*args): self.panel_left.configure(scrollregion=self.panel_left.bbox("all")) self.panel_left_frame.bind("<Configure>", scroll_update) scroll_update()報AttributeError: 'ExcelApp' object has no attribute 'panel_left_frame'
这个错误提示是因为在创建左侧面板时,`self.panel_left_frame` 没有被正确地创建。可能是因为在创建 `scroll` 滚动条时,应该使用 `self.panel_left_frame` 而不是 `self.panel_left`。可以尝试将以下代码:
```
scroll = tk.Scrollbar(master, command=self.panel_left_frame.yview)
scroll.pack(side=tk.LEFT, fill=tk.Y)
```
修改为:
```
scroll = tk.Scrollbar(self.panel_left, command=self.panel_left_frame.yview)
scroll.pack(side=tk.RIGHT, fill=tk.Y)
```
这样应该就可以正确创建 `self.panel_left_frame` 了,解决这个错误。
class ExcelApp: def __init__(self, master): self.master = master master.title("CQ SMT BL 監控平臺-003無紙化點檢系統") master.state('zoomed') # 窗口最大化 values = ["D", "N"] self.label5 = tk.Label(input_frame, text="班別") self.label5.pack(side=tk.LEFT, padx=0.02, pady=0.02) self.combobox5 = tk.ttk.Combobox(input_frame, width=10, values=values, state="readonly") self.combobox5.pack(side=tk.LEFT, padx=0.05, pady=0.05) def check_time(): current_time = datetime.datetime.now().time() start_time = datetime.time(8, 0) # 开始时间:08:00 end_time = datetime.time(13, 20) # 结束时间:19:00 if start_time <= current_time <= end_time: self.combobox5.current(0) else: self.combobox5.current(1) # 每30分钟调用一次check_time函数 self.master(20, check_time) # 初始调用一次check_time函数 check_time()這個報這個錯誤TypeError: 'Tk' object is not callable怎麽修改
这个错误是因为你在`self.master(20, check_time)`这行中尝试将`self.master`作为可调用的函数来调用,但是`self.master`是Tk对象,不可调用。
如果你想使用`after`方法来定时调用`check_time`函数,你应该将`after`方法应用于Tk对象,而不是调用它。请修改这一行代码为`self.master.after(1200000, check_time)`。
以下是修改后的代码:
```python
class ExcelApp:
def __init__(self, master):
self.master = master
master.title("CQ SMT BL 監控平臺-003無紙化點檢系統")
master.state('zoomed') # 窗口最大化
values = ["D", "N"]
self.label5 = tk.Label(input_frame, text="班別")
self.label5.pack(side=tk.LEFT, padx=0.02, pady=0.02)
self.combobox5 = tk.ttk.Combobox(input_frame, width=10, values=values, state="readonly")
self.combobox5.pack(side=tk.LEFT, padx=0.05, pady=0.05)
def check_time():
current_time = datetime.datetime.now().time()
start_time = datetime.time(8, 0) # 开始时间:08:00
end_time = datetime.time(13, 20) # 结束时间:19:00
if start_time <= current_time <= end_time:
self.combobox5.current(0)
else:
self.combobox5.current(1)
# 每20分钟调用一次check_time函数
self.master.after(1200000, check_time)
# 初始调用一次check_time函数
check_time()
```
在这个修改中,我们使用`self.master.after(1200000, check_time)`来定时调用`check_time`函数,间隔为20分钟(20分钟 = 1200000毫秒)。
希望这次修改解决了你的问题。如果还有其他问题,请随时提问。