コード例 #1
0
ファイル: progress_dialog.py プロジェクト: astojmir/PFMFind
class ProgressDialog(Pmw.Dialog):
    def __init__(self, parent=None, **args):
        th = args.pop('toplevel_height', 200)
        tw = args.pop('toplevel_width', 400)
        ac = args.pop('activatecommand', None)
        self.no_bar = args.pop('nobar', False)
    
        Pmw.Dialog.__init__(self, parent, buttons=[],
                            activatecommand = ac)
        self.component('hull').overrideredirect(1)
        w = self.interior()
        w.pack_propagate(0)
        w.configure(bd=5, relief='raised', height=th, width=tw)
        self.text = args.pop('text', 'Progress bar')
        self.text_var = Tkinter.StringVar()
        self.text_var.set(self.text)
        Tkinter.Label(w, textvariable=self.text_var).pack(fill='y', expand=1)
        if not self.no_bar:
            self.pb = ProgressBar(w, **args)
            self.pb.pack(side='top', expand=1, anchor='n')
            self.counter = 0
            self.pb.updateProgress(self.counter)

    def incr(self):
        self.counter += 1
        self.pb.updateProgress(self.counter)

    def set(self, value, max=None):
        self.counter = value
        self.pb.updateProgress(self.counter, max)

    def message(self, text):
        self.text = text
        self.text_var.set(self.text)
コード例 #2
0
def main():
    # Declaring main window.
    window = tk.Tk(className="Main Window")

    # Display box. ------------------------------------
    display_frame = tk.Frame(window)
    display_frame.pack(side=tk.RIGHT)
    # Video + panel widget.
    video = VideoTk("test.mp4")
    img = video.get_curr()
    img = ImageTk.PhotoImage(img)
    panel = tk.Label(display_frame, image=img)
    panel.pack()
    # Slider buffer.
    print(video.n_frames)
    slider = tk.Scale(display_frame, length=video.shape[1], sliderlength=video.shape[1]/video.n_frames,
                      orient=tk.HORIZONTAL, from_=0, to=video.n_frames - 1)
    slider.pack()
    # Progress bar widget.
    progress_bar = ProgressBar(
        display_frame, 20, video.shape[1], video.n_frames)
    progress_bar.pack()

    # Options box. ------------------------------------
    options_frame = tk.Frame(window, width=100, bg="red")
    options_frame.pack(side=tk.LEFT, fill=tk.BOTH)

    # Binding callbacks.
    panel.bind("<Button-1>", lambda event,
               video=video, panel=panel, root=window, progress_bar=progress_bar, slider=slider:
               display.lclick_pressed(event, video, panel, root, progress_bar, slider))
    panel.bind("<ButtonRelease-1>",
               lambda event, progress_bar=progress_bar: display.lclick_released(event, progress_bar))
    panel.bind("<MouseWheel>", lambda event,
               video=video, panel=panel, slider=slider, n_frames_skip=5:
               display.scrolled(event, video, panel, slider, n_frames_skip))
    slider.bind("<ButtonRelease-1>", lambda event, video=video, panel=panel, slider=slider:
                display.dragged_slider(event, video, panel, slider))
    # Start main loop.
    window.mainloop()