예제 #1
0
 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'))
예제 #2
0
    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"))
예제 #3
0
 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)
예제 #5
0
파일: main.py 프로젝트: harbaum/ftDuino32
    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)
예제 #6
0
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)
예제 #7
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)
예제 #8
0
        "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)
예제 #9
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)


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")
예제 #11
0
        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
예제 #12
0
#!/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?""")
예제 #13
0
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)
예제 #14
0
    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"))
예제 #15
0
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)))
예제 #16
0
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),