Forums

Storing a list of arrays after the for loop

Hi guys,

I'm creating the width size for the buttons when I'm getting a list of arrays so I can store the buttons size in a database. The types of arrays that I stored for the buttons and the buttons width size is a list.

I have stored a list of buttons in the arrays where you can see that I'm using self.program_buttons.append. I have got a problem with the .getWidth method when I'm trying to get a list of arrays.

When I try this:

   self.program_buttons = list()

    program_controls = xbmcgui.ControlButton(
        int(position_start), 
        int(position_top), 
        int(program_width), 
        int(program_height), 
        program_title, 
        focusTexture = path + self.button_focus, 
        noFocusTexture = path + self.button_nofocus,
        textColor ='0xFFFFFFFF',
        focusedColor ='0xFF000000'
    )
    self.program_buttons.append(ProgramControls(program_controls, program))
cur.close()
#create the buttons in the database
cur.execute('CREATE TABLE IF NOT EXISTS buttons(program_id TEXT, program_width TEXT)')
programs_button = [elem.control for elem in self.program_buttons]

program_id = list()

#add the programs buttons
self.addControls(programs_button)

for elem in programs_button:
    program_id.append(elem.getId())

print program_id

I will get the result like this:

16:44:50 T:1296  NOTICE: [3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484]

So when I try this:

program_id = list()

for elem in programs_button:
    program_id.append(elem.getId())

print program_id
#let do something...

#add the programs buttons
self.addControls(programs_button)

I will get the result like this:

16:48:44 T:4480  NOTICE: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Here is a list of buttons:

16:59:02 T:1016  NOTICE: [<xbmcgui.ControlButton object at 0x1067A650>, <xbmcgui.ControlButton object at 0x1067CF98>, <xbmcgui.ControlButton object at 0x10681098>, <xbmcgui.ControlButton object at 0x10681170>, <xbmcgui.ControlButton object at 0x10681248>, <xbmcgui.ControlButton object at 0x10681320>, <xbmcgui.ControlButton object at 0x106813F8>, <xbmcgui.ControlButton object at 0x106814D0>, <xbmcgui.ControlButton object at 0x106815A8>, <xbmcgui.ControlButton object at 0x10681680>, <xbmcgui.ControlButton object at 0x10681758>, <xbmcgui.ControlButton object at 0x10681830>, <xbmcgui.ControlButton object at 0x10681908>, <xbmcgui.ControlButton object at 0x106819E0>, <xbmcgui.ControlButton object at 0x10681AB8>, <xbmcgui.ControlButton object at 0x10681B90>, <xbmcgui.ControlButton object at 0x10681C68>, <xbmcgui.ControlButton object at 0x10681D40>, <xbmcgui.ControlButton object at 0x10681E18>, <xbmcgui.ControlButton object at 0x10681EF0>, <xbmcgui.ControlButton object at 0x10681FC8>, <xbmcgui.ControlButton object at 0x106820C8>, <xbmcgui.ControlButton object at 0x106821A0>, <xbmcgui.ControlButton object at 0x10682278>, <xbmcgui.ControlButton object at 0x10682350>, <xbmcgui.ControlButton object at 0x10682428>, <xbmcgui.ControlButton object at 0x10682500>, <xbmcgui.ControlButton object at 0x106825D8>, <xbmcgui.ControlButton object at 0x106826B0>, <xbmcgui.ControlButton object at 0x10682788>, <xbmcgui.ControlButton object at 0x10682860>, <xbmcgui.ControlButton object at 0x10682938>, <xbmcgui.ControlButton object at 0x10682A10>, <xbmcgui.ControlButton object at 0x10682AE8>, <xbmcgui.ControlButton object at 0x10682BC0>, <xbmcgui.ControlButton object at 0x10682C98>, <xbmcgui.ControlButton object at 0x10682D70>, <xbmcgui.ControlButton object at 0x10682E48>, <xbmcgui.ControlButton object at 0x10682F20>, <xbmcgui.ControlButton object at 0x10686020>, <xbmcgui.ControlButton object at 0x106860F8>, <xbmcgui.ControlButton object at 0x106861D0>, <xbmcgui.ControlButton object at 0x106862A8>, <xbmcgui.ControlButton object at 0x10686380>, <xbmcgui.ControlButton object at 0x10686458>, <xbmcgui.ControlButton object at 0x10686530>, <xbmcgui.ControlButton object at 0x10686608>, <xbmcgui.ControlButton object at 0x106866E0>, <xbmcgui.ControlButton object at 0x106867B8>, <xbmcgui.ControlButton object at 0x10686890>, <xbmcgui.ControlButton object at 0x10686968>, <xbmcgui.ControlButton object at 0x10686A40>, <xbmcgui.ControlButton object at 0x10686B18>, <xbmcgui.ControlButton object at 0x10686BF0>, <xbmcgui.ControlButton object at 0x10686CC8>, <xbmcgui.ControlButton object at 0x10686DA0>, <xbmcgui.ControlButton object at 0x10686E78>, <xbmcgui.ControlButton object at 0x10686F50>, <xbmcgui.ControlButton object at 0x10689050>, <xbmcgui.ControlButton object at 0x10689128>, <xbmcgui.ControlButton object at 0x10689200>, <xbmcgui.ControlButton object at 0x106892D8>, <xbmcgui.ControlButton object at 0x106893B0>, <xbmcgui.ControlButton

Here is the full code:

import xbmc
import xbmcgui
import xbmcaddon


class ProgramControls(object):
     def __init__(self, control, program):
         self.control = control
         self.program = program



class MyClass(xbmcgui.WindowXML):

    def __init__(self):
        self.program_buttons = list()
        self.button_focus = 'programs_yellow.png'
        self.button_nofocus = 'channels_bar1.png'


    def All_Channels_BACKUP(self):
        #create width size for per program button
        if program_length >= 10 and program_length <= 60:
            program_width = 342.06
        elif program_length >= 60 and program_length <= 90:
            program_width = 691.09
        elif program_length >= 90 and program_length <= 105:
            program_width = 879.10
        elif program_length >= 105 and program_length <= 120:
            program_width = 879.12
        elif program_length >= 120 and program_length <= 150:
            program_width = 879.15
        elif program_length >= 150 and program_length <= 180:
             program_width = 879.18
        elif program_length >= 180 and program_length <= 210:
            program_width = 879.21
        elif program_length >= 210 and program_length <= 240:
            program_width = 879.24
        elif program_length >= 240 and program_length <= 270:
            program_width = 879.27
        elif program_length >= 270 and program_length <= 300:
            program_width = 879.30
        elif program_length >= 300 and program_length <= 330:
            program_width = 879.33
        elif program_length >= 330 and program_length <= 360:
            program_width = 879.36
        elif program_length >= 360 and program_length <= 390:
            program_width = 879.39
        elif program_length >= 390 and program_length <= 410:
            program_width = 879.42
        elif program_length >= 420 and program_length <= 450:
            program_width = 879.45
        elif program_length >= 450 and program_length <= 480:
            program_width = 879.48


        program_controls = xbmcgui.ControlButton(
            int(position_start), 
            int(position_top), 
            int(program_width), 
            int(program_height), 
            program_title, 
            focusTexture = path + self.button_focus, 
            noFocusTexture = path + self.button_nofocus,
            textColor ='0xFFFFFFFF',
            focusedColor ='0xFF000000'
        )
        self.program_buttons.append(ProgramControls(program_controls, program))
    cur.close()
    #create the buttons in the database
    cur.execute('CREATE TABLE IF NOT EXISTS buttons(program_id TEXT, program_width TEXT)')
    programs_button = [elem.control for elem in self.program_buttons]

    program_id = list()

    #add the programs buttons
    #self.addControls(programs_button)

    for elem in programs_button:
        program_id.append(elem.getId())
    print program_id

    #store the buttons in the database
    #cur.execute("INSERT INTO buttons(program_id, program_width)" + " VALUES(?, ?)", [program_id, program_width])

    #change the size for each button
    #if program_length >= 10 and program_length <= 60:
        #program_width = 342.06
    #elif program_length >= 60 and program_length <= 90:
        #program_width = 691.09

The problem I realised that is because I moved the self.addControls(programs_button) after the for loop. I want to use self.addControls after the for elem in programs_button: to allowed me to control the size for the buttons when I resize them.

Can you please help me how I can get a list of buttons size in the arrays when I moved the self.addControls after the for loop?

does anyone know???????

Hi there,

This looks like a question about writing an XBMC GUI program. These forums are for users of PythonAnywhere, and we (the developers) are only really here to answer questions about our platform. Other users might be able to help out of kindness, but there's no reason to think they would know anything about XBMC...

You might be able to find some help over at codementor

We've had a few XBMC users show up in these forums recently, and we're really confused about why -- how did you come across us? What made you think you could get help here?

@harry it didn't really matter if it only just for pythonAnywhere or not. It can be used for anything included xbmc. Python is a python, it didn't matter what version it is or didn't matter if it used xbmc or any other program, its PYTHON so that is why i am here. I haven't got the money to waste sorry.

I don't understand why cant you just post the code of i'm looking for?

I'm just saying this isn't the right place to look for help with your problem. You could try stackoverflow, or a python channel on IRC? Good luck, I hope you find an answer.