class Scr_View(Screen): def __init__(self, ParrentScreenManager, Data_Source, Doc_Source, Scroll_TargetHeight="Bottom"): if Scroll_TargetHeight == "Bottom": Screen.__init__(self, name='Scr_View_Hidden') else: Screen.__init__(self, name='Scr_View') self.ParrentScreenManager = ParrentScreenManager self.Data_Source = Data_Source self.Doc_Source = Doc_Source #Reader ######################## self.Reader = Reader( Doc_Source=self.Doc_Source, Scroll_TargetHeight=Scroll_TargetHeight, on_DoubleClick=self.ParrentScreenManager.Swich_Screen) self.Reader.Update() #Slider ######################## self.View_Slider = View_Slider(self.Data_Source, self.Reader.Update) self.Layout = BoxLayout(orientation='vertical') self.Layout.add_widget(self.Reader) self.Layout.add_widget(self.View_Slider) self.add_widget(self.Layout) #绑定事件 self.bind(on_pre_enter=self.on_pre_enter) def on_pre_enter(self, *args): #初始化 self.View_Slider.Value_Refresh() self.Reader.Update()
class Scr_Test(Screen): def __init__(self, ParrentScreenManager, Data_Source): Screen.__init__(self, name='Scr_Test') self.ParrentScreenManager = ParrentScreenManager self.Data_Source = Data_Source #Reader ######################## self.Reader = Reader( Doc_Source=self.Data_Source.Visable_Doc, on_DoubleClick=self.ParrentScreenManager.Swich_Screen) self.Reader.size_hint = (0.7, 1) self.Reader.Update() # Button_Layout ######################## self.List_BSM = [] for I in range(4): self.List_BSM.append( Button_ScreenManager(Data_Source=self.Data_Source, on_Correct=self.Reader.Update)) self.Button_Layout = BoxLayout(orientation='vertical') self.Button_Layout.size_hint = (0.3, 1) for I_BSM in self.List_BSM: self.Button_Layout.add_widget(I_BSM) for I in zip(self.List_BSM, self.Data_Source.PreLoad_Text()): I[0].Switch_Button(New_Text=I[1], Switch=False) #Layout ######################## self.Layout = BoxLayout(orientation='horizontal') self.Layout.add_widget(self.Reader) self.Layout.add_widget(self.Button_Layout) self.add_widget(self.Layout) #设定切换事件 self.bind(on_pre_enter=self.on_pre_enter, on_enter=self.on_enter) def on_pre_enter(self, *args): #清空选项 for I in self.List_BSM: I.Switch_Button(New_Text=" ", Switch=False) def on_enter(self, *args): #载入选项 for I in zip(self.List_BSM, self.Data_Source.PreLoad_Text()): I[0].Switch_Button(New_Text=I[1], Switch=False)