Click here to Skip to main content
15,792,397 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Python 2.7
Kivy 1.10.1
Android 4+, Linux, Windows7,8,10.

I am learning (qucikly) kivy and find it answers my requirements. So , sticking with kivy, I am developing an integrated TV stream (M3U8) player with EPG (TV Listing, TV Guide) module in Python on kivy.

I have written and tested a parser for to get channel info (http/mpeg-ts streams from the M3U file) and play them. This works. What I want to do now is write the EPG GUI.I do not know where to start with the GUI.

I thought of two approaches:

First, create a display matrix - all the rows (for channels) and columns (for programme events through the day(s) / time slots - and populate the entire matrix. Then , using horizontal and vertical scrollbars, allow the user to pan around the matrix (the EPG). Selecting on a "cell" would display event info. I though initally of loading one single day's EPG - and go from there depending on speed. Kivy's ScrollView seems a likely candidate for the view inside which I would create rectangles of a length to reflect event duration, with event title as inner text?

Or, create the matrix as a fixed view, populate it with static numnber of rows/columns, and as the user clicks down/left/right/up, redraw the matrix mapping each individual matrix cell to the appropriate channel/event and then re-drawing that cell.

Also, i'm not sure how to architect the matrix, possibly, for a single day 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)

What i would like to do though is have sizeable Programme Event columns so that the user can "zoom" in say to 30 or even 15minute periods, and out to say 3hour interval periods... (pinch in/out maybe). But dont know how to do this in Kivy.

Either way, I'm not sure how to do this - i may well find out - but if anyone can offer ideas or template code, I'd be grateful.

What I have tried:

nothing yet, this is exploratory
Updated 20-Jun-18 1:56am

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900