ninjaef Ответов: 0

Помощь с проектным подходом TV EPG в киви


Python 2.7
Киви 1.10.1
Android 4+, Linux, Windows7,8,10.

Я изучаю (qucikly) киви и нахожу, что он отвечает моим требованиям. Итак , придерживаясь kivy, я разрабатываю интегрированный плеер TV stream (M3U8) с модулем EPG (TV Listing, TV Guide) на Python на kivy.

Я написал и протестировал парсер для получения информации о канале (потоки http/mpeg-ts из файла M3U) и воспроизведения их. Эта работа. Что я хочу сделать сейчас, так это написать графический интерфейс EPG.Я не знаю, с чего начать с графического интерфейса.

Я подумал о двух подходах:

Во - первых, создайте матрицу отображения - все строки (для каналов) и столбцы (для событий программы через день(ы) / временные интервалы) - и заполните всю матрицу. Затем , используя горизонтальные и вертикальные полосы прокрутки, позвольте пользователю перемещаться по матрице (EPG). Выбор на "ячейке" будет отображать информацию о событии. Я хотя бы изначально загружаю один единственный дневной ЭПГ - и иду оттуда в зависимости от скорости. ScrollView киви кажется вероятным кандидатом на представление, внутри которого я бы создал прямоугольники длины, чтобы отразить продолжительность события, с заголовком события в качестве внутреннего текста?

Или создайте матрицу в виде фиксированного представления, заполните ее статическим числом строк/столбцов и, когда пользователь нажмет кнопку вниз/влево/вправо/вверх, перерисуйте матрицу, сопоставив каждую отдельную ячейку матрицы с соответствующим каналом/событием, а затем повторно нарисуйте эту ячейку.

Кроме того, я не уверен, как спроектировать матрицу, возможно, для одного дня EPG
* A ScrollView inside which is:-
        * A GridLayout, with:-
            * Column1 = VerticalBox layout with one row for each Channels, with :-
                * RowHeight = fixed
                * RowWidth = fixed
            * Column2 .. ColumnX where X = 24 (hours in day) for Programme Events with:-
                * RowHeight = same as Column1 RowHeight
                * RowWidth = same as Column width (one hour)

Однако то, что я хотел бы сделать, - это иметь большие столбцы событий программы, чтобы пользователь мог "увеличить", скажем, до 30 или даже 15 минутных периодов, а затем, скажем, до 3-часовых интервальных периодов... (возможно, щепотка). Но не знаю, как это сделать в киви.

В любом случае, я не знаю, как это сделать - я вполне могу узнать, - но если кто-то может предложить идеи или шаблонный код, я буду благодарен.

Что я уже пробовал:

пока ничего, это исследовательская работа

0 Ответов