def __init__(self, app, *args, **kwds): self.app = app super().__init__(*args, **kwds) self.tabview = lv.tabview(self) self.page_simple = Page_Simple(self.app, self.tabview.add_tab('Simple')) self.page_buttons = Page_Buttons(self.app, self.tabview.add_tab('Buttons'))
def __init__(self, app, *args, **kwds): self.app = app super().__init__(*args, **kwds) self.tabview = lv.tabview(self) self.page_simple = Page_Simple(self.app, self.tabview.add_tab("Simple")) self.page_buttons = Page_Buttons(self.app, self.tabview.add_tab("Buttons")) self.page_chart = Page_Chart(self.app, self.tabview.add_tab("Chart"))
def __init__(self, app, *args, **kwds): self.app = app super().__init__(*args, **kwds) self.theme = AdvancedDemoTheme() self.tabview = lv.tabview(self, lv.DIR.TOP, 20) self.page_simple = Page_Simple(self.app, self.tabview.add_tab("Simple")) self.page_buttons = Page_Buttons(self.app, self.tabview.add_tab("Buttons")) self.page_chart = Page_Chart(self.app, self.tabview.add_tab("Chart"))
def interface(): def update_task(task): set_usb_voltage(power.getVbusVoltage()) set_usb_pwr(power.getVbusCurrent()) if power.isBatteryConnect(): set_batt_voltage(power.getBattVoltage()) if power.isChargeing(): set_batt_pwr("Charging", power.getBattChargeCurrent()) batt_percent.set_hidden(True) else: set_batt_pwr("Discharging", power.getBattDischargeCurrent()) set_batt_per(power.getBattPercentage()) batt_percent.set_hidden(False) def event_cb(obj, event): if event == lv.EVENT.VALUE_CHANGED: tft.set_backlight_level(obj.get_value()) def set_usb_pwr(pwr): usb_pwr.set_text("USB current: {} mA".format(pwr)) def set_usb_voltage(volts): usb_voltage.set_text("USB voltage: {} mV".format(volts)) def set_batt_voltage(volts): batt_voltage.set_text("Battery voltage: {} mV".format(volts)) def set_batt_pwr(mode, pwr): batt_pwr.set_text("{} battery \ncurrent: {} mA".format(mode, pwr)) def set_batt_per(per): batt_percent.set_text("Battery percent: {}%".format(per)) scr = lv.obj() tabview = lv.tabview(scr) vbus_tab = tabview.add_tab("USB") usb_voltage = lv.label(vbus_tab) usb_pwr = lv.label(vbus_tab) usb_pwr.set_y(usb_voltage.get_y() + 20) la = lv.switch(vbus_tab) batt_tab = tabview.add_tab("Battery") batt_voltage = lv.label(batt_tab) batt_pwr = lv.label(batt_tab) batt_pwr.set_y(batt_voltage.get_y() + 20) batt_percent = lv.label(batt_tab) batt_percent.set_y(batt_pwr.get_y() + 40) brightness_slider = lv.slider(batt_tab) brightness_slider.align(None, lv.ALIGN.IN_BOTTOM_MID, 0, 0) brightness_slider.set_range(0, 100) brightness_slider.set_value(100, 1) brightness_slider.set_event_cb(event_cb) update_task(None) lv.scr_load(scr) watch.tft.backlight_fade(100) lv.task_create(update_task, 1000, 5, None)
def __init__(self, *args, **kwds): super().__init__(*args, **kwds) self.tabview = lv.tabview(self) self.tabview.set_size(240, 320) self.tabview.align(self, lv.ALIGN.IN_TOP_MID, 0, 0) self.mainpage = main.Page_Main(self.tabview.add_tab("Main")) self.wifipage = wifi.Page_WiFi(self.tabview.add_tab("WiFi"), self) self.appspage = apps.Page_Apps(self.tabview.add_tab("Apps"), self) try: self.sd = machine.SDCard(slot=2, sck=14, miso=12, mosi=13, cs=15) uos.mount(self.sd, '/sd') print("SD card mounted") self.mainpage.set_status("sdcard", True) except Exception as e: import sys sys.print_exception(e)
def m6(): #wifi def btn_event(obj, event): if obj == btn2 and event == lv.EVENT.CLICKED: m5() if obj == ta and event == lv.EVENT.CLICKED: kb = lv.keyboard(scr) kb.set_textarea(ta) scr = lv.obj() lv.scr_load(scr) tab = lv.tabview(scr) tab1 = tab.add_tab("Wifi Settings") btn2 = lv.btn(tab) btn2.align(tab, lv.ALIGN.IN_TOP_LEFT, 0, 0) lbl_btn2 = lv.label(btn2) lbl_btn2.set_text(lv.SYMBOL.HOME) btn2.set_fit(lv.FIT.TIGHT) btn2.set_event_cb(btn_event) cont = lv.cont(tab1) cont.align(tab1, lv.ALIGN.IN_TOP_MID, 0, 20) cont.set_fit2(lv.FIT.TIGHT, lv.FIT.TIGHT) ta = lv.textarea(cont) ta.align(cont, lv.ALIGN.IN_TOP_MID, 0, 10) ta.set_one_line(True) ta.set_event_cb(btn_event) btn = lv.btn(cont) btn.align(ta, lv.ALIGN.OUT_BOTTOM_MID, 0, 0)
def m4(): scr = lv.obj() lv.scr_load(scr) #container for drop and switch cont = lv.cont(scr) cont.set_auto_realign(True) cont.set_fit2(lv.FIT.PARENT, lv.FIT.TIGHT) cont.set_layout(lv.LAYOUT.PRETTY_MID) cont.align(scr, lv.ALIGN.IN_TOP_MID, 0, 0) #dropdown drop = lv.dropdown(cont) drop.set_style_local_border_post(lv.BORDER_SIDE.NONE, lv.BORDER_SIDE.NONE, lv.BORDER_SIDE.NONE) drop.set_options( "Trigger 1\nTrigger 2\nTrigger 3\nTrigger 4\nTrigger 5\nTrigger 6\nTrigger 7\nTrigger 8\nTrigger 9\n Trigger 10" ) #label lbl1 = lv.label(cont) lbl1.set_text("Arm?") #switch switch = lv.switch(cont) #tabview tab = lv.tabview(scr) tab.align(cont, lv.ALIGN.OUT_BOTTOM_MID, 0, 0) tab1 = tab.add_tab("Time") tab2 = tab.add_tab("Auto") tab3 = tab.add_tab("Switches") #tab1 lbl2 = lv.label(tab1) lbl2.set_text("Start time [h][m][s]") lbl2.align(tab1, lv.ALIGN.IN_TOP_MID, 0, 0) trig_btn = lv.btnmatrix(tab1) trig_btn.set_height(200) trig_btn.align(lbl2, lv.ALIGN.OUT_BOTTOM_MID, 0, 0) def remap(): btn_map = [ lv.SYMBOL.UP, lv.SYMBOL.UP, lv.SYMBOL.UP, "\n", str(trigger[0].bhour), str(trigger[0].bminute), str(trigger[0].bsecond), "\n", lv.SYMBOL.DOWN, lv.SYMBOL.DOWN, lv.SYMBOL.DOWN, "\n", lv.SYMBOL.SAVE, "", "" ] print('remapped called') return btn_map trig_btn.set_map(remap()) #trig_btn.set_style def event_handler(obj, event): if event == lv.EVENT.VALUE_CHANGED: txt = obj.get_active_btn() print("{} was pressed".format(txt)) if (txt == 0): trigger[0].bhour += 1 if (txt == 1): trigger[0].bminute += 1 if (txt == 2): trigger[0].bsecond += 1 if (txt == 6): trigger[0].bhour -= 1 if (txt == 7): trigger[0].bminute -= 1 if (txt == 8): trigger[0].bsecond -= 1 trig_btn.set_map(remap()) trig_btn.set_event_cb(event_handler) #label set duration lbl3 = lv.label(tab1) lbl3.align(trig_btn, lv.ALIGN.OUT_BOTTOM_MID, -100, 0) lbl3.set_text("Set trigger duration [h][m][s]") roller = lv.roller(tab1)
"Bluetooth", lv.SYMBOL.GPS, "GPS", lv.SYMBOL.USB, "USB", lv.SYMBOL.SD_CARD, "SD card", lv.SYMBOL.CLOSE, "Close" ] for i in range(0, len(txts) // 2, 2): btn = list.add_btn(txts[i], txts[i + 1]) lv.btn.set_checkable(lv.btn.__cast__(btn), True) # Make a button disabled if i == 4: btn.set_state(lv.btn.STATE.DISABLED) cal.set_highlighted_dates(hl, 2) tv = lv.tabview(lv.scr_act(), None) display = scr.get_disp() disp_size = display.get_size_category() tv.set_style_local_pad_left(lv.tabview.PART.TAB_BG, lv.STATE.DEFAULT, disp_drv.hor_res // 2) sw = lv.switch(lv.scr_act(), None) if lv.theme_get_flags() & lv.THEME_MATERIAL_FLAG.DARK: sw.on(LV_ANIM_OFF) sw.set_event_cb(color_chg_event_cb) sw.set_pos(LV_DPX(10), LV_DPX(10)) sw.set_style_local_value_str(lv.switch.PART.BG, lv.STATE.DEFAULT, "Dark") sw.set_style_local_value_align(lv.switch.PART.BG, lv.STATE.DEFAULT, lv.ALIGN.OUT_RIGHT_MID) sw.set_style_local_value_ofs_x(lv.switch.PART.BG, lv.STATE.DEFAULT, LV_DPI // 35)
cont.set_fit2(lv.FIT.PARENT, lv.FIT.TIGHT) home_button = lv.btn(cont) home_button.align(cont, lv.ALIGN.IN_LEFT_MID,0,10) home_button.set_fit(lv.FIT.TIGHT) lbl_home = lv.label(home_button) lbl_home.set_text(lv.SYMBOL.HOME) lbl_home.set_event_cb(btn_event) lbl_header = lv.label(cont) lbl_header.set_text("Dashboard") lbl_header.align(home_button, lv.ALIGN.OUT_RIGHT_MID,0,-5) tab_header = lv.tabview(scr) tab_header.align(cont, lv.ALIGN.OUT_BOTTOM_MID, 0, 0) tab1 = tab_header.add_tab("Triggers") tab2 = tab_header.add_tab("Switches") tab3 = tab_header.add_tab("Sensors") tab4 = tab_header.add_tab("Charts") #tab1 : Triggers #making trigger cards
import display_driver display_driver.getdisplay_landscape() def scroll_begin_event(e): #Disable the scroll animations. Triggered when a tab button is clicked */ if e.get_code() == lv.EVENT.SCROLL_BEGIN: a = lv.anim_t.__cast__(e.get_param()) if a: a.time = 0 # Create a Tab view object tabview = lv.tabview(lv.scr_act(), lv.DIR.LEFT, 80) tabview.get_content().add_event_cb(scroll_begin_event, lv.EVENT.SCROLL_BEGIN, None) tabview.set_style_bg_color(lv.palette_lighten(lv.PALETTE.RED, 2), 0) tab_btns = tabview.get_tab_btns() tab_btns.set_style_bg_color(lv.palette_darken(lv.PALETTE.GREY, 3), 0) tab_btns.set_style_text_color(lv.palette_lighten(lv.PALETTE.GREY, 5), 0) tab_btns.set_style_border_side(lv.BORDER_SIDE.RIGHT, lv.PART.ITEMS | lv.STATE.CHECKED) # Add 3 tabs (the tabs are page (lv_page) and can be scrolled tab1 = tabview.add_tab("Tab 1") tab2 = tabview.add_tab("Tab 2") tab3 = tabview.add_tab("Tab 3") tab4 = tabview.add_tab("Tab 4")
cal_x0=touch_x0, cal_x1=touch_x1, cal_y0=touch_y0, cal_y1=touch_y1, ) TOUCH_READY = 1 #表示已经配置好触摸参数 ############################################# ############### Tabview ############## ############################################# if TOUCH_READY: # Create a Tab view object tabview = lv.tabview(lv.scr_act()) # Add 3 tabs (the tabs are page (lv_page) and can be scrolled tab1 = tabview.add_tab("Tab 1") tab2 = tabview.add_tab("Tab 2") tab3 = tabview.add_tab("Tab 3") # Add content to the tabs label = lv.label(tab1) label.set_text(""" This the first tab If the content of a tab become too long the it automatically become
#!/opt/bin/lv_micropython -i import time import lvgl as lv import display_driver # Create a Tab view object tabview = lv.tabview(lv.scr_act(), lv.DIR.TOP, 50) # Add 3 tabs (the tabs are page (lv_page) and can be scrolled tab1 = tabview.add_tab("Tab 1") tab2 = tabview.add_tab("Tab 2") tab3 = tabview.add_tab("Tab 3") # Add content to the tabs label = lv.label(tab1) label.set_text("""This the first tab If the content of a tab becomes too longer than the container then it automatically becomes scrollable. Can you see it?""")
def m4(): position = 0 scr = lv.obj() lv.scr_load(scr) #container for drop and switch cont = lv.cont(scr) cont.set_auto_realign(True) cont.set_fit2(lv.FIT.PARENT, lv.FIT.TIGHT) cont.set_layout(lv.LAYOUT.PRETTY_MID) cont.align(scr, lv.ALIGN.IN_TOP_MID, 0, 0) cont.set_style_local_radius(0, 0, 0) #dropdown - event def drop_event(obj, event): if event == lv.EVENT.VALUE_CHANGED: position = drop.get_selected() print("changing trigger position to {}".format(str(position))) m4_1(position) #call to refresh roller position #dropdown drop = lv.dropdown(cont) drop.set_style_local_border_post(lv.BORDER_SIDE.NONE, lv.BORDER_SIDE.NONE, lv.BORDER_SIDE.NONE) drop.set_options( "Trigger 1\nTrigger 2\nTrigger 3\nTrigger 4\nTrigger 5\nTrigger 6\nTrigger 7\nTrigger 8\nTrigger 9\n Trigger 10" ) drop.set_event_cb(drop_event) #tabview tab = lv.tabview(scr) tab.align(cont, lv.ALIGN.OUT_BOTTOM_MID, 0, 0) tab1 = tab.add_tab("Time") tab2 = tab.add_tab("Auto") tab3 = tab.add_tab("Switches") tab4 = tab.add_tab("Desc") ####Tab 1 #label lbl1 = lv.label(cont) lbl1.set_text("Arm?") #switch switch = lv.switch(cont) lbl2 = lv.label(tab1) lbl2.set_text("Set time to begin trigger :") lbl2.align(tab1, lv.ALIGN.IN_TOP_MID, 0, 10) #contain - sort vert cont2 = lv.cont(tab1) cont2.align(lbl2, lv.ALIGN.OUT_BOTTOM_MID, 0, 10) cont2.set_auto_realign(True) cont2.set_layout(lv.LAYOUT.ROW_MID) cont2.set_fit(lv.FIT.TIGHT) roller_hour = lv.roller(cont2) roller_hour.set_options( "00\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23", lv.roller.MODE.NORMAL) roller_minute = lv.roller(cont2) roller_minute.set_options( "00\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n53\n54\n55\n56\n57\n58\n59", lv.roller.MODE.NORMAL) roller_sec = lv.roller(cont2) roller_sec.set_options( "00\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n53\n54\n55\n56\n57\n58\n59", lv.roller.MODE.NORMAL) btn = lv.btn(cont2) lbl_btn = lv.label(btn) lbl_btn.set_text("SET") #duration lbl3 = lv.label(tab1) lbl3.set_text("Set duration for trigger : ") lbl3.align(cont2, lv.ALIGN.OUT_BOTTOM_MID, 0, 10) cont3 = lv.cont(tab1) cont3.align(lbl3, lv.ALIGN.OUT_BOTTOM_MID, 0, 10) cont3.set_auto_realign(True) cont3.set_layout(lv.LAYOUT.ROW_MID) cont3.set_fit(lv.FIT.TIGHT) roller_hour_dur = lv.roller(cont3) roller_hour_dur.set_options( "00\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23", lv.roller.MODE.NORMAL) roller_minute_dur = lv.roller(cont3) roller_minute_dur.set_options( "00\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n53\n54\n55\n56\n57\n58\n59", lv.roller.MODE.NORMAL) roller_sec_dur = lv.roller(cont3) roller_sec_dur.set_options( "00\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n53\n54\n55\n56\n57\n58\n59", lv.roller.MODE.NORMAL) #button (set timer) - event def btn_event(obj, event): if obj == btn and event == lv.EVENT.CLICKED: position = drop.get_selected() trigger[position].bhour = roller_hour.get_selected() trigger[position].bminute = roller_minute.get_selected() trigger[position].bsecond = roller_sec.get_selected() print("btn - event : position {}, bhour {}, bminute {}, bsec{}". format(str(position), str(roller_hour.get_selected()), str(roller_minute.get_selected()), str(roller_sec.get_selected()))) if obj == btn2 and event == lv.EVENT.CLICKED: position = drop.get_selected() trigger[position].hourdur = roller_hour_dur.get_selected() trigger[position].minutedur = roller_minute_dur.get_selected() trigger[position].seconddur = roller_sec_dur.get_selected() print("btn2 - event") if obj == switch and event == lv.EVENT.VALUE_CHANGED: position = drop.get_selected() trigger[position].isArmed = switch.get_state() print("Arming trigger {}".format(switch.get_state())) if obj == btn_t4_1 and event == lv.EVENT.CLICKED: m5() btn2 = lv.btn(cont3) lbl_btn2 = lv.label(btn2) lbl_btn2.set_text("SET") #button event call btn.set_event_cb(btn_event) btn2.set_event_cb(btn_event) switch.set_event_cb(btn_event) def m4_1(_position): #run after dropdown selected or pos 0 default position = _position print("M4_1() calling position {}".format(position)) roller_hour.set_selected(trigger[position].bhour, lv.ANIM.ON) roller_minute.set_selected(trigger[position].bminute, lv.ANIM.ON) roller_sec.set_selected(trigger[position].bsecond, lv.ANIM.ON) roller_hour_dur.set_selected(trigger[position].hourdur, lv.ANIM.ON) roller_minute_dur.set_selected(trigger[position].minutedur, lv.ANIM.ON) roller_sec_dur.set_selected(trigger[position].seconddur, lv.ANIM.ON) #set proper state of switch if switch.get_state() != trigger[position].isArmed: switch.toggle(lv.ANIM.ON) m4_1(position) #####Tab 2 - Automation tab2.set_height(320) lbl_t2 = lv.label(tab2) lbl_t2.align(tab1, lv.ALIGN.IN_TOP_MID, 210, 10) lbl_t2.set_text("Automatic trigger disable settings") cont3 = lv.cont(tab2) cont3.set_auto_realign(True) cont3.set_layout(lv.LAYOUT.PRETTY_MID) cont3.align(lbl_t2, lv.ALIGN.OUT_BOTTOM_MID, 0, 10) cont3.set_fit2(lv.FIT.TIGHT, lv.FIT.TIGHT) lbl_t2_2 = lv.label(cont3) lbl_t2_2.set_text("Enable Flow Sensor") switch_t2_1 = lv.switch(cont3) lbl_t2_3 = lv.label(cont3) lbl_t2_3.set_text("Enable Rain Sensor") switch_t2_2 = lv.switch(cont3) lbl_t2_4 = lv.label(cont3) lbl_t2_4.set_text("Enable MET weather API") switch_t2_3 = lv.switch(cont3) lbl_t2_5 = lv.label(cont3) lbl_t2_5.set_text("Enable Soil Sensor") switch_t2_4 = lv.switch(cont3) gauge_t2 = lv.gauge(tab2) gauge_t2.align(cont3, lv.ALIGN.OUT_BOTTOM_MID, 0, 10) ####Tab 3 - Switches tab3.set_height(320) lbl_t3 = lv.label(tab3) lbl_t3.align(tab3, lv.ALIGN.IN_TOP_MID, -80, 10) lbl_t3.set_text("Assign Pin to be triggered") #page4 = lv.page(tab3) #page4.set_auto_realign(True) #page4.align(lbl_t3, lv.ALIGN.OUT_BOTTOM_MID,0,10) #page4.set_size(290,800) btnmtx_t3 = lv.btnmatrix(tab3) btnmtx_t3.align(lbl_t3, lv.ALIGN.OUT_BOTTOM_MID, 0, 0) btnmtx_t3.set_width(250) btnmtx_t3.set_height(600) btn_map_t3 = [ "3.3v", "GND", "\n", "EN", "23", "\n", "36", "22", "\n", "39", "01", "\n", "34", "03", "\n", "35", "21", "\n", "32", "GND", "\n", "33", "19", "\n", "25", "18", "\n", "26", "05", "\n", "27", "17", "\n", "14", "16", "\n", "12", "04", "\n", "GND", "00", "\n", "13", "02", "\n", "09", "15", "\n", "10", "08", "\n", "11", "07", "\n", "VIN", "06", "" ] btnmtx_t3.set_map(btn_map_t3) btnmtx_t3.set_btn_ctrl_all(btnmtx_t3.CTRL.CHECKABLE) btn_t3_save = lv.btn(tab3) btn_t3_save.align(btnmtx_t3, lv.ALIGN.OUT_BOTTOM_MID, 0, 10) lbl_btn_t3_save = lv.label(btn_t3_save) lbl_btn_t3_save.set_text("Save Toggles") #### Tab 4 Description btn_t4_1 = lv.btn(tab4) btn_t4_1.align(tab4, lv.ALIGN.CENTER, 0, 0) btn_t4_1.set_event_cb(btn_event) lbl_btn_t4_1 = lv.label(btn_t4_1) lbl_btn_t4_1.set_text(lv.SYMBOL.HOME)
def __init__(self, *args, **kwds): super().__init__(*args, **kwds) self.tabview = lv.tabview(self) page_wifi.Page_WiFi(self.tabview.add_tab("WiFi")) page_apps.Page_Apps(self.tabview.add_tab("Apps"))
def m7(): # dashboard #btn_event def btn_event(obj, event): if obj == home_button and event == lv.EVENT.CLICKED: m5() #gui code scr = lv.obj() lv.scr_load(scr) cont = lv.cont(scr) cont.align(scr, lv.ALIGN.IN_TOP_MID, 0, 0) cont.set_style_local_radius(0, 0, 0) cont.set_fit2(lv.FIT.PARENT, lv.FIT.TIGHT) home_button = lv.btn(cont) home_button.align(cont, lv.ALIGN.IN_LEFT_MID,0,10) home_button.set_fit(lv.FIT.TIGHT) home_button.set_event_cb(btn_event) lbl_home = lv.label(home_button) lbl_home.set_text(lv.SYMBOL.HOME) lbl_header = lv.label(cont) lbl_header.set_text("Dashboard") lbl_header.align(home_button, lv.ALIGN.OUT_RIGHT_MID,10,0) tab_header = lv.tabview(scr) tab_header.align(cont, lv.ALIGN.OUT_BOTTOM_MID, 0, 0) tab1 = tab_header.add_tab("Triggers") tab2 = tab_header.add_tab("Switches") tab3 = tab_header.add_tab("Sensors") tab4 = tab_header.add_tab("Charts") #tab1 : Triggers ''' tab1.set_auto_realign(True) tab1.set_layout(lv.LAYOUT.PRETTY_TOP) ''' #tab1.set_auto_realign(True) #tab1.set_layout(lv.LAYOUT.PRETTY_TOP) cont1 = lv.cont(tab1) cont1.align(tab1, lv.ALIGN.IN_TOP_MID, 0, 10) cont1.set_fit2(lv.FIT.PARENT, lv.FIT.TIGHT) cont1.set_auto_realign(True) cont1.set_fit2(lv.FIT.TIGHT, lv.FIT.TIGHT) cont1.set_layout(lv.LAYOUT.PRETTY_TOP) card = [] for i in range(0, len(trigger)): card.append(lv.cont(cont1)) card[i].set_fit2(lv.FIT.TIGHT, lv.FIT.TIGHT) '''set color.''' if trigger[i].isTriggered == True: card[i].set_style_local_bg_color(lv.obj.PART.MAIN, lv.STATE.DEFAULT, lv.color_hex(0xe6ffb3)) if trigger[i].isTriggered == False: card[i].set_style_local_bg_color(lv.obj.PART.MAIN, lv.STATE.DEFAULT, lv.color_hex(0xffcccc)) card[i].set_width(220) card[i].set_height(100) lbl_trigger = lv.label(card[i]) lbl_trigger.align(card[i], lv.ALIGN.IN_TOP_LEFT,0,0) lbl_trigger.set_text("Trigger " + str(i)) lbl_start = lv.label(card[i]) lbl_start.align(lbl_trigger, lv.ALIGN.OUT_BOTTOM_LEFT,0,0) lbl_start.set_text("On : " + "{:02}:{:02}:{:02}".format(int(trigger[i].bhour), int(trigger[i].bminute), int(trigger[i].bsecond)))
btn.set_width(WIDTH) btn.set_style_radius(lv.STATE.DEFAULT, 0) btn.align_to(scr, lv.ALIGN.TOP_MID, 0, 0) btn.set_height(50) btn.set_style_bg_color(lv.color_hex(0x089e85), 0) label = lv.label(btn) label.set_style_text_font(lv.font_montserrat_14, 0) label.set_text('WHATZAPP LGVL') label.align_to(btn, lv.ALIGN.LEFT_MID, 10, 0) label2 = lv.label(btn) label2.set_text(lv.SYMBOL.EYE_OPEN) label2.align_to(btn, lv.ALIGN.RIGHT_MID, -10, 0) tabv = lv.tabview(scr, lv.DIR.TOP, 50) tabv.get_child(0).set_style_bg_color(lv.color_hex(0x0089e85), 0) tabv.set_width(WIDTH) tabv.align_to(btn, lv.ALIGN.OUT_BOTTOM_MID, 0, 0) tab1 = tabv.add_tab("CHATS") tab2 = tabv.add_tab("STATUS") tab3 = tabv.add_tab("CALLS") tabs_btn = tabv.get_tab_btns() tabs_btn.set_style_text_color(lv.color_hex(0xffffff), 0) tabs_btn.set_style_bg_color(lv.color_hex(0x0516d), lv.PART.ITEMS | lv.STATE.CHECKED) tabs_btn.set_style_text_color(lv.color_hex(0xffffff), lv.PART.ITEMS | lv.STATE.CHECKED) tabs_btn.set_style_border_color(lv.color_hex(0x9df8e9),