python错误:参数" pControls"必须是元组或列表

时间:2015-05-05 14:09:24

标签: python python-2.7 xbmc

我需要一些帮助,因为我的代码有问题。

我试图通过每个ID获取控件来查找我正在寻找的控件然后删除控件。

当我尝试这个时:

def clearEPG(self):
    program_button = [elem.control for elem in self.program_buttons]

    program_id = list()
    position_X = list()
    position_Y = list()
    for elem in program_button:
        program_id.append(elem.getId())
        position_X.append(elem.getX())
        position_Y.append(elem.getY())
    program_id = map(str, program_id)
    pos_X = map(str, position_X)
    pos_Y = map(str, position_Y)

    try:
        for pos_X, pos_Y, prog_id in zip(pos_X, pos_Y, program_id):
            if int(pos_Y) == 315:
               #print type(prog_id)
               program_button = self.getControl(int(prog_id))
               #print type(program_id)
               self.removeControls(program_button)
    except RuntimeError:
        for elem in self.program_buttons:
            print program_id

            try:
                pass
                #self.removeControl(elem.control)
            except RuntimeError:
                pass

显示错误: TypeError:参数" pControls"必须是元组或列表。

此行突出显示错误:

self.removeControls(program_button)

以下是prog_id输出列表:

NOTICE: 3002
NOTICE: 3003
NOTICE: 3004
NOTICE: 3005

以下是prog_id的类型:

NOTICE: <type 'str'>
NOTICE: <type 'str'>
NOTICE: <type 'str'>
NOTICE: <type 'str'>

你能帮我解决一下我需要做些什么来解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

如果您只打算删除一个控件,则应使用removeControl

self.removeControl(program_button)

您可以使用removeControls删除一组控件,因此函数需要列表或元组。

修改

我发现奇怪的一点是,在此代码的开头,您确实为program_button分配了一个列表(错误的名称应该是program_buttons?)

program_button = [elem.control for elem in self.program_buttons]

但稍后你用一个奇异的值覆盖它

program_button = self.getControl(int(prog_id))

这会导致您看到的问题。