Помощь с проектным подходом 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-часовых интервальных периодов... (возможно, щепотка). Но не знаю, как это сделать в киви.
В любом случае, я не знаю, как это сделать - я вполне могу узнать, - но если кто-то может предложить идеи или шаблонный код, я буду благодарен.
Что я уже пробовал:
пока ничего, это исследовательская работа