【发布时间】:2019-11-22 00:07:57
【问题描述】:
我正在处理的功能有问题。我想要实现的目标是,当一个数字是:
我有一个进度条,最大限制为 1462。 每当在窗口中输入一个数字并按下 提交 按钮时,我只想让进度条增加输入到窗口中的数量。
我的 increase_progress 函数出现错误,无法达到预期的结果。
相关代码:
class Window(Frame):
def __init__(self, master):
super().__init__(master)
master.title('Learning Python')
master.configure(background='black')
master.geometry('900x200')
master.resizable(0, 0)
class Submit(Button):
def __init__(self, master):
super().__init__(master)
self.configure(text='Submit', background='black', foreground='light green', highlightthickness=0,
border=0)
class Clear(Button):
def __init__(self, master):
super().__init__(master)
self.configure(text='Clear', background='black', foreground='light green', highlightthickness=0,
border=0)
class ProgressBar(ttk.Progressbar):
def __init__(self, master):
super().__init__(master)
self.config(orient='horizontal', maximum=1462, mode='determinate')
class PagesRead(Label):
def __init__(self, master):
super().__init__(master)
self.config(text='How many page(s) did you read?', background='black', foreground='light green')
class EntryBox(Entry):
def __init__(self, master):
super().__init__(master)
def increase_progress():
progress = int(entry.get())
if progress:
ProgressBar.step(progress)
root = tk.Tk()
app = Window(root)
bar = ProgressBar(root)
bar.pack(fill=tk.BOTH)
pages = PagesRead(root)
pages.pack()
entry = EntryBox(root)
entry.pack()
submit = Submit(root)
submit.pack()
clear = Clear(root)
clear.config(command=lambda: entry.delete(0, 'end'))
clear.pack()
app.mainloop()
【问题讨论】:
-
请edit您的问题包含错误。
-
我看到您仍在创建像 other question 中的小部件子类,Bryan 和我都提到这不是实现 OOP 的好方法..
标签: python user-interface tkinter