Динамические данные в окне, которое выполняется одновременно с кнопками с использованием python

#python

#python

Вопрос:

В настоящее время я работаю над разработкой нового скина для Kodi, который включает кнопки, окна и динамические данные, такие как часы и дата, которые будут работать на сенсорном экране. Я делаю этот проект с помощью python. До сих пор мне удавалось создавать экран с кнопками, окнами и временем / датой, но у меня возникает проблема, когда дело доходит до объединения функций кнопок с часами. Если я настрою синхронизацию часов на секунду, кнопки будут непригодны для использования (все окно синхронизируется при синхронизации часов). Если я заставлю кнопки работать, часы будут показывать время с момента запуска kodi. Созданный мной скрипт основан на основном классе, основном классе отображения, со всеми элементами в виде функций и объектов.

Код:

из будущего отдела импорта импортируйте xbmcaddon, xbmc, xbmcgui, os, time, sys, многопроцессорность, подпроцесс

addon = xbmcaddon.Addon() addonname = addon.getAddonInfo(‘имя’)

white_color= ‘0xFFFFFFFF’ background_image = ‘special://home//addons//script.ici.media.script//resources//img//333.jpg ‘power_button = ‘специальный://главная страница//дополнения//script.ici.media.script//ресурсы//img//icon.png’

определение класса окна

ACTION_PREVIOUS_MENU = 10

класс MainDisplay(xbmcgui.Window): def init(self): # aici intra metode подсказка buton,text, imagine и т. Д.self.addControl(xbmcgui.ControlImage(0, 0, 1280, 720,background_image))

     self.background_image = 'special://home//addons//script.ici.media.script//resources//img//333.jpg'
    self.addControl(xbmcgui.ControlImage(0, 0, 1280, 720, background_image))

    self.strClockInfo = xbmcgui.ControlLabel(0, 15, 1280, 70,"" , font="ClockFont", textColor=white_color,alignment= 6)
    self.clock = time.strftime("  %H:%M:%S ")
    self.strClockInfo.setLabel(self.clock)
    self.addControl(self.strClockInfo)
    self.strDateInfo = xbmcgui.ControlLabel(0, 105, 1280, 0, "", font="ClockFont", textColor=white_color,alignment=6)
    self.date = time.strftime("%d-%m-%Y")
    self.strDateInfo.setLabel(self.date)
    self.addControl(self.strDateInfo)

    self.strActionInfo = xbmcgui.ControlLabel(100, 75, 400, 500, '', 'font30', '0xFFFF00')

    self.addControl(self.strActionInfo)
    # self.strActionInfo.setLabel('Push ESC to quit')

    self.button0 = xbmcgui.ControlButton(0, 50, 300, 300, 'Camera 1', alignment=6)
    self.addControl(self.button0)

    self.button1 = xbmcgui.ControlButton(980, 50, 300, 300, 'Camera 2', alignment=6)
    self.addControl(self.button1)

    self.button2 = xbmcgui.ControlButton(0, 400, 300, 300, 'Camera 3', alignment=6)
    self.addControl(self.button2)

    self.button3 = xbmcgui.ControlButton(980, 400, 300, 300, 'Camera 4', alignment=6)
    self.addControl(self.button3)

    self.button4 = (xbmcgui.ControlButton(620, 650, 35, 45, "", alignment=6))
    self.addControl(self.button4)

    self.button5 = (xbmcgui.ControlImage(610, 640, 70, 70, power_button))
    self.addControl(self.button5)

def onAction(self, action):
    if action == ACTION_PREVIOUS_MENU:
        self.close()

def onControl(self, control):
    if control == self.button0:
        self.message("Camera 1",'')

    if control == self.button1:
        self.message("Camera 2","")

    if control == self.button2:
        self.message("Camera 3","")

    if control == self.button3:
        self.message("Camera 4","")

    if control == self.button4:
        xbmc.shutdown()

def message(self, heading, message):
    dialog = xbmcgui.Dialog()
    dialog.ok(heading, message)
  

mydisplay = MainDisplay()
mydisplay.DoModal()

удалить mydisplay

Комментарии:

1. Итак, в чем вопрос?

2. @UnholySheep как я прочитал в первом абзаце после «объединения функций кнопок с часами», проблема заключается в том, но форматирование и более четкое указание того, что происходит и что должно — может сделать этот вопрос лучше.

3. ДА. Извините за это. если я настрою часы для синхронизации, кнопки больше не будут активны. Если я заставлю кнопки работать, часы будут отображаться, но время не будет обновляться. Я хочу отобразить часы, которые показывают реальное время в реальном времени, и при этом нажимать кнопки.