SHARE
TWEET

add dynamically

a guest Jul 18th, 2019 77 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # .py Code:
  2.  
  3. class RcGUIApp(App):
  4.         def build(self):
  5.                 Window.clearcolor = (0, 0, 0.35, 1)
  6.                 sm = ScreenManager()
  7.                 sm.add_widget(IntroPage(name="intro_page"))
  8.                 sm.add_widget(NewJobPage(name="new_job_page"))
  9.                 sm.add_widget(IPMConfirmPage(name = "ipm_confirm_page"))
  10.                 return sm
  11.  
  12. class IntroPage(Screen):
  13.  
  14.         def  returnCDPath(self):
  15.                 global rc
  16.                 return str(rc.cd_path)
  17.  
  18.         def locateDatabase(self):
  19.                 global rc
  20.                 self.data_label.text = rc.retrieveDatabase()              
  21.  
  22.         def openJob(self):
  23.                 #Go to open job page
  24.                 pass
  25.  
  26. class NewJobPage(Screen):
  27.  
  28.  
  29.         def newJob(self):
  30.                 global rc
  31.                 self.ipm_label.text = "IPM file path: " + str(rc.openIPM())
  32.                 rc.makePartList()
  33.                 rc.makePoleList()
  34.        
  35.         def  returnCDPath(self):
  36.                 global rc
  37.                 return str(rc.cd_path)
  38.        
  39.         def locateDatabase(self):
  40.                 global rc
  41.                 self.data_label.text = rc.retrieveDatabase()
  42.  
  43.         def retrieve(self):
  44.                 global rc
  45.                 rc.getIPM(self.ipm_header.text.upper())
  46.                 rc.buildIPM(self.pole_header.text.upper(), self.cd_header.text.upper(), self.conductor_header.text.upper())
  47.                 IPMConfirmPage().displayIPM()
  48.  
  49. class OpenJobPage(Screen):
  50.         pass
  51.  
  52.                        
  53. class IPMConfirmPage(Screen):
  54.         def displayIPM(self):
  55.                 for i in range(25):
  56.                         self.grid.add_widget(Button(text="you did it!"))
  57.  
  58. #.kv Code:
  59.  
  60. <IntroPage>:
  61.        
  62.         data_label: database_label
  63.  
  64.         BoxLayout:
  65.  
  66.                 orientation: "vertical"
  67.                 padding: 10
  68.                 spacing: 10
  69.  
  70.                 BoxLayout:
  71.  
  72.                         orientation: "horizontal"
  73.                         size_hint: (1, .10)
  74.  
  75.                         Button:
  76.                                 text: "Locate Database"
  77.                                 color: (1,1,1,1)
  78.                                 on_press:
  79.                                         root.locateDatabase()
  80.                                         root.data_label.color= (0,1,0,1)
  81.                                 size_hint_x: (0.05)
  82.  
  83.                         Label:
  84.                                 id: database_label
  85.                                 text: root.returnCDPath()
  86.                                 color: (1,0,0,1)
  87.                                 size_hint_x: (0.2)
  88.                                 pos: (.5, .5)
  89.  
  90.  
  91.  
  92.                 BoxLayout:
  93.                         orientation: "horizontal"
  94.  
  95.                         Button:
  96.                                 text: "NEW JOB"
  97.                                 color: (1,1,1,1)
  98.                                 size_hint: (.45, .10)
  99.                                 on_press:
  100.                                         root.manager.transition.direction = "up"
  101.                                         root.manager.transition.duration = .8
  102.                                         root.manager.current = "new_job_page"
  103.                         Button:
  104.                                 text: "OPEN JOB"
  105.                                 color: (1,1,1,1)
  106.                                 size_hint: (.45, .10)
  107.                                 pos: (0.5, 0.5)
  108.                                 on_press: root.openJob()
  109.  
  110. <NewJobPage>:
  111.  
  112.         data_label: database_label
  113.         ipm_label: ipm_name_label
  114.         pole_header: pole_col
  115.         cd_header: cd_col
  116.         conductor_header: conductor_col
  117.         ipm_header: ipm_col
  118.  
  119.         BoxLayout:
  120.  
  121.                 orientation: "vertical"
  122.                 padding: 10
  123.                 spacing: 10
  124.  
  125.                 BoxLayout:
  126.  
  127.                         orientation: "horizontal"
  128.                         size_hint: (1, .10)
  129.  
  130.                         Button:
  131.                                 text: "Locate Database"
  132.                                 color: (1,1,1,1)
  133.                                 on_press:
  134.                                         root.locateDatabase()
  135.                                         root.data_label.color= (0,1,0,1)
  136.                                 size_hint_x: (0.05)
  137.  
  138.                         Label:
  139.                                 id: database_label
  140.                                 text: root.returnCDPath()
  141.                                 color: (1,0,0,1)
  142.                                 size_hint_x: (0.2)
  143.                                 pos: (.5, .5)
  144.                 BoxLayout:
  145.  
  146.                         orientation: "horizontal"
  147.                         size_hint: (1, .20)
  148.  
  149.                         Button:
  150.                                 text: "Load IPM"
  151.                                 color: (1,1,1,1)
  152.                                 size_hint: (.05, 0.5)
  153.                                 on_press:
  154.                                         root.newJob()
  155.                                
  156.                         Label:
  157.                                 id: ipm_name_label
  158.                                 text: ""
  159.                                 size_hint: (.2, 0.5)
  160.  
  161.                 BoxLayout:
  162.  
  163.                         orientation: "vertical"
  164.                         size_hint: (1, .35)
  165.  
  166.                         Label:
  167.                                 text: "Enter your Pole, CD# and Conductor column names below:"
  168.                                 pos_hint: {' center_x': 0.5, 'bottom': 1}
  169.  
  170.                         BoxLayout:
  171.                                 orientation: "horizontal"
  172.                                 spacing: 30
  173.                                 size_hint: (1, 0.35)
  174.  
  175.                                 TextInput:
  176.                                         id: ipm_col
  177.                                         text: "IPM"
  178.                                
  179.                                 TextInput:
  180.                                         id: pole_col
  181.                                         text: "POLE"
  182.  
  183.                                 TextInput:
  184.                                         id: cd_col
  185.                                         text: "CD#"
  186.                                
  187.                                 TextInput:
  188.                                         id: conductor_col
  189.                                         text: "CONDUCTOR"      
  190.  
  191.                 BoxLayout:
  192.                         orientation: "horizontal"
  193.                         size_hint: (1, .35)
  194.  
  195.                         Button:
  196.                                 text: "RETRIEVE"
  197.                                 pos_hint: {"center_x": .5, "center_y": .5}
  198.                                 size_hint: (.33, .33)
  199.                                 color: (1,1,1,1)
  200.                                 on_press:
  201.                                         root.retrieve()
  202.                                         root.manager.transition.direction = "left"
  203.                                         root.manager.transition.duration = .8
  204.                                         root.manager.current = "ipm_confirm_page"
  205.  
  206. <IPMConfirmPage>:
  207.         grid: Grid
  208.         GridLayout:
  209.                 cols: 1
  210.                 size_hint_x: 1
  211.                 padding: 10
  212.                 spacing: 10
  213.  
  214.                 BoxLayout:
  215.  
  216.                         size_hint: (1, 0.1)
  217.                        
  218.                         Label:
  219.                                 text: "IPM"
  220.                         Label:
  221.                                 text: "CD#"
  222.                         Label:
  223.                                 text: "CONDUCTOR"
  224.                
  225.                 ScrollView:
  226.                        
  227.                         GridLayout:
  228.                                 id: Grid
  229.                                 cols: 3
  230.                                 height: self.minimum_height
  231.                                 size_hint: 1, None
  232.                                 spacing: 50
  233.                                 padding: 10
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top