一级菜单左右划优化
authorp15692025051 <846603105@qq.com>
Wed, 2 Aug 2023 07:07:44 +0000 (15:07 +0800)
committerp15692025051 <846603105@qq.com>
Wed, 2 Aug 2023 07:07:44 +0000 (15:07 +0800)
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_main_menu.py

index 06e04cd..a62ab27 100644 (file)
@@ -89,12 +89,14 @@ style_font_youyuan_font_60 = lv.style_t()
 style_font_youyuan_font_60.init()
 style_font_youyuan_font_60.set_text_color(lv.color_make(0xFF, 0xFF, 0xFF))
 style_font_youyuan_font_60.set_text_font(lv.font_60_main_menu)
-
+MainMenu2x = 0
+MainMenu2_num = 0
 MainMenu2 = lv.obj()
 print("MainMenu2")
 MainMenu2_til = lv.tileview(MainMenu2)
 MainMenu2_til.set_scrollbar_mode(0)
 MainMenu2_til.add_style(style_MainMenu_screen_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
 #表盘
 MainMenu2_Watchface = MainMenu2_til.add_tile(0, 1,  lv.DIR.LEFT | lv.DIR.RIGHT)
 
@@ -102,13 +104,14 @@ label_text = lv.label(MainMenu2_Watchface)
 label_text.set_pos(0, 240)
 label_text.set_size(0, 0)
 label_text.set_text("0")
+MainMenu2_num+=1
 #支付宝
-MainMenu2_alipay = MainMenu2_til.add_tile(0, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+MainMenu2_alipay = MainMenu2_til.add_tile(MainMenu2x, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
 #MainMenu2_alipay.set_tile_act(7,0,lv.ANIM.ON)#设置拼接
 label_text = lv.label(MainMenu2_alipay)
 label_text.set_pos(0, 240)
 label_text.set_size(0, 0)
-label_text.set_text("1")
+label_text.set_text("{}".format(MainMenu2_num))
 MainMenu2_img_alipay_text = lv.label(MainMenu2_alipay)
 MainMenu2_img_alipay_text.set_pos(int(0),int(220))
 MainMenu2_img_alipay_text.set_size(240,100)
@@ -123,17 +126,18 @@ MainMenu2_img_alipay.set_pos(40,20)
 MainMenu2_img_alipay.set_src("U:/static/alipay_.png")
 MainMenu2_img_alipay.add_flag(lv.obj.FLAG.CLICKABLE)
 MainMenu2_img_alipay.add_style(style_MainMenu_img_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-
+MainMenu2_num+=1
+MainMenu2x+=1
 
 # label_alipay.set_long_mode(lv.label.LONG.WRAP)
 # label_alipay.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 # label_alipay.add_style(style_font_youyuan_25, lv.PART.MAIN | lv.STATE.DEFAULT)
 #拨号盘
-MainMenu2_phone = MainMenu2_til.add_tile(1, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+MainMenu2_phone = MainMenu2_til.add_tile(MainMenu2x, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
 label_text = lv.label(MainMenu2_phone)
 label_text.set_pos(0, 240)
 label_text.set_size(0, 0)
-label_text.set_text("2")
+label_text.set_text("{}".format(MainMenu2_num))
 MainMenu2_img_phone = lv.img(MainMenu2_phone)
 MainMenu2_img_phone.set_size(160,160)
 MainMenu2_img_phone.set_pos(40,20)
@@ -148,14 +152,15 @@ MainMenu2_img_phone_text.add_flag(lv.obj.FLAG.CLICKABLE)
 MainMenu2_img_phone_text.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 MainMenu2_img_phone_text.set_text("拨号盘")
 MainMenu2_img_phone_text.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.STATE.DEFAULT)
-
+MainMenu2_num+=1
+MainMenu2x+=1
 
 #通讯录
-MainMenu2_contacts = MainMenu2_til.add_tile(2, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+MainMenu2_contacts = MainMenu2_til.add_tile(MainMenu2x, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
 label_text = lv.label(MainMenu2_contacts)
 label_text.set_pos(0, 240)
 label_text.set_size(0, 0)
-label_text.set_text("3")
+label_text.set_text("{}".format(MainMenu2_num))
 MainMenu2_img_contacts = lv.img(MainMenu2_contacts)
 MainMenu2_img_contacts.set_size(160,160)
 MainMenu2_img_contacts.set_pos(40,20)
@@ -170,13 +175,15 @@ MainMenu2_img_contacts_txt.add_flag(lv.obj.FLAG.CLICKABLE)
 MainMenu2_img_contacts_txt.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 MainMenu2_img_contacts_txt.set_text("联系人")
 MainMenu2_img_contacts_txt.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.STATE.DEFAULT)
+MainMenu2_num+=1
+MainMenu2x+=1
 
 #短信
-MainMenu2_SMS = MainMenu2_til.add_tile(3, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+MainMenu2_SMS = MainMenu2_til.add_tile(MainMenu2x, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
 label_text = lv.label(MainMenu2_SMS)
 label_text.set_pos(0, 240)
 label_text.set_size(0, 0)
-label_text.set_text("4")
+label_text.set_text("{}".format(MainMenu2_num))
 MainMenu2_img_sms = lv.img(MainMenu2_SMS)
 MainMenu2_img_sms.set_size(160,160)
 MainMenu2_img_sms.set_pos(40,20)
@@ -191,13 +198,15 @@ MainMenu2_img_sms_txt.add_flag(lv.obj.FLAG.CLICKABLE)
 MainMenu2_img_sms_txt.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 MainMenu2_img_sms_txt.set_text("短信")
 MainMenu2_img_sms_txt.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.STATE.DEFAULT)
+MainMenu2_num+=1
+MainMenu2x+=1
 
 #微聊
-MainMenu2_wechat = MainMenu2_til.add_tile(4, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+MainMenu2_wechat = MainMenu2_til.add_tile(MainMenu2x, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
 label_text = lv.label(MainMenu2_wechat)
 label_text.set_pos(0, 240)
 label_text.set_size(0, 0)
-label_text.set_text("5")
+label_text.set_text("{}".format(MainMenu2_num))
 MainMenu2_img_wechat = lv.img(MainMenu2_wechat)
 MainMenu2_img_wechat.set_size(160,160)
 MainMenu2_img_wechat.set_pos(40,20)
@@ -212,13 +221,15 @@ MainMenu2_img_wechat_txt.add_flag(lv.obj.FLAG.CLICKABLE)
 MainMenu2_img_wechat_txt.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 MainMenu2_img_wechat_txt.set_text("微聊")
 MainMenu2_img_wechat_txt.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.STATE.DEFAULT)
+MainMenu2_num+=1
+MainMenu2x+=1
 
-#å¿\83å¾\8bæ£\80æµ\8b
-MainMenu2_heartrate = MainMenu2_til.add_tile(5, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+#å\81¥åº·æµ\8bé\87\8f
+MainMenu2_heartrate = MainMenu2_til.add_tile(MainMenu2x, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
 label_text = lv.label(MainMenu2_heartrate)
 label_text.set_pos(0, 240)
 label_text.set_size(0, 0)
-label_text.set_text("6")
+label_text.set_text("{}".format(MainMenu2_num))
 MainMenu2_img_health = lv.img(MainMenu2_heartrate)
 MainMenu2_img_health.set_size(160,160)
 MainMenu2_img_health.set_pos(40,20)
@@ -233,8 +244,8 @@ MainMenu2_img_health_txt.add_flag(lv.obj.FLAG.CLICKABLE)
 MainMenu2_img_health_txt.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 MainMenu2_img_health_txt.set_text("健康测量")
 MainMenu2_img_health_txt.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-
+MainMenu2_num+=1
+MainMenu2x+=1
 #血样检测
 # MainMenu2_spo2 = MainMenu2_til.add_tile(4, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
 # label_text = lv.label(MainMenu2_spo2)
@@ -255,14 +266,15 @@ MainMenu2_img_health_txt.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.S
 # MainMenu2_img_spo2_txt.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 # MainMenu2_img_spo2_txt.set_text("血氧检测")
 # MainMenu2_img_spo2_txt.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.STATE.DEFAULT)
-
+#MainMenu2_num+=1
+#MainMenu2x+=1
 
 #工具箱
-MainMenu2_toolbox = MainMenu2_til.add_tile(6, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+MainMenu2_toolbox = MainMenu2_til.add_tile(MainMenu2x, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
 label_text = lv.label(MainMenu2_toolbox)
 label_text.set_pos(0, 240)
 label_text.set_size(0, 0)
-label_text.set_text("7")
+label_text.set_text("{}".format(MainMenu2_num))
 MainMenu2_img_toolbox = lv.img(MainMenu2_toolbox)
 MainMenu2_img_toolbox.set_size(160,160)
 MainMenu2_img_toolbox.set_pos(40,20)
@@ -277,15 +289,16 @@ MainMenu2_img_toolbox_txt.add_flag(lv.obj.FLAG.CLICKABLE)
 MainMenu2_img_toolbox_txt.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 MainMenu2_img_toolbox_txt.set_text("工具箱")
 MainMenu2_img_toolbox_txt.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.STATE.DEFAULT)
-
+MainMenu2_num+=1
+MainMenu2x+=1
 
 #设置
-MainMenu2_setting = MainMenu2_til.add_tile(7, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+MainMenu2_setting = MainMenu2_til.add_tile(MainMenu2x, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
 #MainMenu2_setting.set_tile_act(0,0,lv.ANIM.ON)
 label_text = lv.label(MainMenu2_setting)
 label_text.set_pos(0, 240)
 label_text.set_size(0, 0)
-label_text.set_text("8")
+label_text.set_text("{}".format(MainMenu2_num))
 MainMenu2_img_setting = lv.img(MainMenu2_setting)
 MainMenu2_img_setting.set_size(160,160)
 MainMenu2_img_setting.set_pos(40,20)
@@ -300,8 +313,8 @@ MainMenu2_img_setting_txt.add_flag(lv.obj.FLAG.CLICKABLE)
 MainMenu2_img_setting_txt.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
 MainMenu2_img_setting_txt.set_text("设置")
 MainMenu2_img_setting_txt.add_style(style_font_youyuan_font_60, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-
+MainMenu2_num+=1
+MainMenu2x+=1
 
 
 
@@ -315,8 +328,12 @@ class MainMenuScreen(Screen):
         self.meta = MainMenu2
         self.watchface = WatchFace()
         self.menu_id = "0"
+        self.menu_new_id = "255"
+        self.menu_old_id = "255"
+        self.scroll_begin_event_count = 0
+        self.menu_action = 0 # =1左滑  =2右划
         print("MainMenu1:__init__")    
-        #MainMenu2_til.add_event_cb(lambda e: EventMesh.callback_wrapper(self.scroll_begin_event(e)),lv.EVENT.SCROLL_END,None)
+        MainMenu2_til.add_event_cb(lambda e: EventMesh.callback_wrapper(self.scroll_begin_event_cb(e)),lv.EVENT.SCROLL_END,None)
         #lv_obj_add_event_cb(lv_tabview_get_content(tabview), scroll_begin_event, LV_EVENT_SCROLL_END, NULL);
         MainMenu2_img_phone.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,  "Phone")), lv.EVENT.CLICKED, None)
         MainMenu2_img_toolbox.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "toolbox")), lv.EVENT.CLICKED, None)
@@ -342,12 +359,34 @@ class MainMenuScreen(Screen):
         #     MainMenu2_til.set_tile_id(self.meta_info[0],self.meta_info[1],lv.ANIM.OFF)    
         pass#
     
-    def scroll_begin_event(self, e):
-        print("MainMenu2:scroll_begin_event!")
-        MainMenu = e.get_target()
-        code = e.get_code()
-        if code == lv.EVENT.SCROLL_END:
-            pass
+    def scroll_begin_event_cb(self, e):
+    #     EventMesh.publish("publish_message_event_ui",{"func":self.scroll_begin_event,"data":0})
+    # def scroll_begin_event(self, data):    
+        #处理轻微滑动不跳页面问题
+        self.scroll_begin_event_count+=1
+        
+        if self.scroll_begin_event_count == 1:
+            self.menu_new_id = MainMenu2_til.get_tile_act().get_child(0).get_text()
+            #print("scroll_begin_event scroll_begin_event {} old_id {} new_id{}".format(self.scroll_begin_event_count,self.menu_old_id,self.menu_new_id))
+        elif self.scroll_begin_event_count == 2:
+            self.menu_old_id = MainMenu2_til.get_tile_act().get_child(0).get_text()
+            print("scroll_begin_event menu_action {} old_id {} new_id {}".format(self.menu_action,self.menu_old_id,self.menu_new_id))
+            self.scroll_begin_event_count = 0
+            if self.menu_old_id == self.menu_new_id and self.menu_action == 1:
+                MainMenu2_til.set_tile_id(int(self.menu_old_id)-2,0,lv.ANIM.ON)
+                print("scroll_begin_event menu_action == 1")
+            elif self.menu_old_id == self.menu_new_id and self.menu_action == 2:
+                print("scroll_begin_event menu_action == 2")
+                MainMenu2_til.set_tile_id(int(self.menu_old_id),0,lv.ANIM.ON)
+            self.menu_action = 0
+        else :
+            self.scroll_begin_event_count = 0
+        
+        # MainMenu = e.get_target()
+        # code = e.get_code()
+        # print("MainMenu2:scroll_begin_event code {}!!!!!".format(code))
+        # if code == lv.EVENT.SCROLL_END:
+        #     pass
     def watch_top_show(self, event, msg): #
         MainMenu2_til.set_tile_id(0,1,lv.ANIM.OFF)  
         
@@ -418,19 +457,23 @@ class MainMenuScreen(Screen):
         self.menu_id = id
     def done_left_to_right(self):
         id = MainMenu2_til.get_tile_act().get_child(0).get_text()
-        print("done_left_to_right:ID{}".format(id))
+        print("done_left_to_right:ID{} menu_id{}".format(id,self.menu_id))
         if id == "0":
-            MainMenu2_til.set_tile_id(7,0,lv.ANIM.OFF)
+            MainMenu2_til.set_tile_id(MainMenu2_num-2,0,lv.ANIM.OFF)
         elif self.menu_id != '2' and id == '1':
-            MainMenu2_til.set_tile_id(7,0,lv.ANIM.OFF) 
+            MainMenu2_til.set_tile_id(MainMenu2_num-2,0,lv.ANIM.OFF) 
+        elif self.menu_id ==  id :
+            self.menu_action = 1
         self.menu_id = id
     def done_right_to_left(self):
         id = MainMenu2_til.get_tile_act().get_child(0).get_text()
-        print("done_right_to_left:ID{}".format(id))
+        print("done_right_to_left:ID{} menu_id{}".format(id,self.menu_id))
         if id == "0":
             MainMenu2_til.set_tile_id(0,0,lv.ANIM.OFF)
-        elif (self.menu_id != '7' ) and id == '8':
+        elif (self.menu_id != str(MainMenu2_num-2) ) and id == str(MainMenu2_num-1) :
             MainMenu2_til.set_tile_id(0,0,lv.ANIM.OFF)
+        else :
+            self.menu_action = 2
         self.menu_id = id   
 
     def Close(self):