Advertisement
Uno-Dan

Untitled

Nov 11th, 2018
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.07 KB | None | 0 0
  1.  
  2. from tkinter import messagebox
  3.  
  4. from tkapp.base import App
  5. from tkapp.constants import LAST_ROW, LAST_COLUMN
  6.  
  7.  
  8. def main():
  9.     app = App(
  10.         title='Demo Application',
  11.         admin_open=True,
  12.         admin_close=False,
  13.         defaults=defaults,
  14.     )
  15.  
  16.     def progress_bar1(window):
  17.         win = app.get_window(window.id)
  18.         pb = win.get('content/middle_pane/progress/bar').progressbar
  19.  
  20.         def animate():
  21.             pb.count += 500
  22.             pb['value'] = pb.count
  23.             if pb.count < pb['maximum']:
  24.                 pb.after(pb.refresh_rate, animate)
  25.             else:
  26.                 messagebox.showinfo('Info', 'Process Completed Successfully')
  27.  
  28.         win.get('content/middle_pane/progress/start').button.config(command=animate)
  29.  
  30.     def progress_bar2(window):
  31.         win = app.get_window(window.id)
  32.         pb = win.get('content/middle_pane/notebook').tab('one').get('progress/bar').progressbar
  33.         scale = win.get('content/middle_pane/notebook').tab('one').get('scale').scale
  34.  
  35.         def animate(count=None):
  36.             if count:
  37.                 pb.count = 0
  38.  
  39.             pb.count += 500
  40.             pb['value'] = pb.count
  41.             if pb.count < pb['maximum']:
  42.                 pb.after(int(scale.get()), animate)
  43.             else:
  44.                 messagebox.showinfo('Info', 'Process Completed Successfully')
  45.  
  46.         win.get('content/middle_pane/notebook').tab('one').get('progress/start').button.config(command=lambda: animate(1))
  47.  
  48.     def create_process1(window):
  49.         win = app.get_window(window.id)
  50.  
  51.         def message():
  52.             messagebox.showinfo('Info', 'This is process 1 ' + window.id)
  53.  
  54.         win.get('content/right_pane/create_process1').button.config(command=message)
  55.  
  56.     def create_process2(window):
  57.         win = app.get_window(window.id)
  58.  
  59.         def message():
  60.             messagebox.showinfo('Info', 'This is process 2 ' + window.id)
  61.  
  62.         win.get('content/right_pane/create_process2').button.config(command=message)
  63.  
  64.     def update_scale(window, val=None):
  65.         tab = window.get('content/middle_pane/notebook').tab('one')
  66.         label = tab.get('lscale')
  67.         scale = tab.get('scale').scale
  68.  
  69.         if val is not None:
  70.             label.var.set(int(float(val)))
  71.         else:
  72.             label.var.set(int(scale.get()))
  73.  
  74.     def refresh_scale(window):
  75.         def scale(value):
  76.             update_scale(window, value)
  77.  
  78.         window.get('content/middle_pane/notebook').tab('one').get('scale').scale.config(command=scale)
  79.  
  80.     def before_init_cache(admin):
  81.         messagebox.showinfo('Info', 'before_init_cache hook. ')
  82.  
  83.     def after_init_cache(admin):
  84.         messagebox.showinfo('Info', 'after_init_cache hook. ')
  85.  
  86.     def before_init_windows(admin):
  87.         messagebox.showinfo('Info', 'before_init_windows hook. ')
  88.  
  89.     def after_init_windows(admin):
  90.         messagebox.showinfo('Info', 'after_init_windows hook. ')
  91.  
  92.     def before_exit_app(admin):
  93.         messagebox.showinfo('Info', 'before_exit_app hook. ')
  94.  
  95.     def after_exit_app(admin):
  96.         messagebox.showinfo('Info', 'after_exit_app hook. ')
  97.  
  98.     def before_remove_callback(admin):
  99.         messagebox.showinfo('Info', 'before_remove_callback hook. ')
  100.  
  101.     def after_remove_callback(admin):
  102.         messagebox.showinfo('Info', 'after_remove_callback hook. ')
  103.  
  104.     def before_add_callback(admin):
  105.         messagebox.showinfo('Info', 'before_add_callback hook. ')
  106.  
  107.     def after_add_callback(admin):
  108.         messagebox.showinfo('Info', 'after_add_callback hook. ')
  109.  
  110.     def after_admin(obj):
  111.         messagebox.showinfo('Info', 'This is after_admin ')
  112.  
  113.     def before_admin(obj):
  114.         messagebox.showinfo('Info', 'This is before_admin ')
  115.  
  116.     def setup_process1(window):
  117.         messagebox.showinfo('Info', 'after_open hook. ' + window.id)
  118.  
  119.     def setup_process2(window):
  120.         messagebox.showinfo('Info', 'before_open hook. ' + window.id)
  121.  
  122.     def destroy_process1(window):
  123.         messagebox.showinfo('Info', 'before_close hook. ' + window.id)
  124.  
  125.     def destroy_process2():
  126.         messagebox.showinfo('Info', 'after_close hook. ')
  127.  
  128.     # #######################################################################
  129.     app.add_callback('admin', 'after_admin', after_admin)
  130.     app.add_callback('admin', 'before_admin', before_admin)
  131.     app.add_callback('admin', 'after_init_cache', after_init_cache)
  132.     app.add_callback('admin', 'before_init_cache', before_init_cache)
  133.     app.add_callback('admin', 'after_init_windows', after_init_windows)
  134.     app.add_callback('admin', 'before_init_windows', before_init_windows)
  135.     app.add_callback('admin', 'after_exit_app', after_exit_app)
  136.     app.add_callback('admin', 'before_exit_app', before_exit_app)
  137.     app.add_callback('admin', 'after_remove_callback', after_remove_callback)
  138.     app.add_callback('admin', 'before_remove_callback', before_remove_callback)
  139.     app.add_callback('admin', 'after_add_callback', after_add_callback)
  140.     app.add_callback('admin', 'before_add_callback', before_add_callback)
  141.     # #######################################################################
  142.     app.add_callback('window1', 'after_open', progress_bar1)
  143.     app.add_callback('window1', 'after_open', progress_bar2)
  144.     app.add_callback('window1', 'after_open', update_scale)
  145.     app.add_callback('window1', 'after_open', refresh_scale)
  146.     app.add_callback('window1', 'before_open', setup_process2)
  147.     # #######################################################################
  148.     app.add_callback('window2', 'after_open', create_process1)
  149.     app.add_callback('window2', 'after_open', create_process2)
  150.  
  151.     app.remove_callback('window2', 'after_open', create_process1)
  152.  
  153.     app.add_callback('window2', 'after_open', setup_process1)
  154.     app.add_callback('window2', 'before_open', setup_process2)
  155.     app.add_callback('window2', 'before_close', destroy_process1)
  156.     app.add_callback('window2', 'after_close', destroy_process2)
  157.     # #######################################################################
  158.  
  159.     app.mainloop()
  160.  
  161.  
  162. if __name__ == '__main__':
  163.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement