我正在使用我的python脚本从sqlite3数据库中获取通道列表。
我想获取7个频道来设置每个标签控件中的每个频道4010
,4011
,4012
,4013
,4014
,{{1 }和4015
。当我获取通道列表以将它们放入每个标签时,没有任何实际发生,因为每个标签控件都没有设置文本。
当我使用它时:
4016
结果:
#Pull the data from the database
channelList = list()
programList = list()
database_path = xbmc.translatePath(os.path.join('special://userdata/addon_data/script.tvguide', 'source.db'))
if os.path.exists(database_path):
#get the channels list
cur.execute('SELECT channel FROM programs WHERE channel GROUP BY channel')
for row in cur:
channel = row[0].encode('ascii')
channelList.append(channel)
# set the channels text
for index in range(0, channels_per_page):
if index >= len(channel):
self.setControlLabel(4010 + index, channel)
我想在每个标签控件中设置文本,如下所示:
17:02:10 T:6400 NOTICE: 101 ABC FAMILY
17:02:10 T:6400 NOTICE: 102 CBS
17:02:10 T:6400 NOTICE: 103 CNN USA
17:02:10 T:6400 NOTICE: 105 ESPN USA
17:02:10 T:6400 NOTICE: 106 Fox News
17:02:10 T:6400 NOTICE: 107 Animal Planet
17:02:10 T:6400 NOTICE: 108 USA Network
17:02:10 T:6400 NOTICE: 110 SPIKE
17:02:10 T:6400 NOTICE: 111 BRAVO USA
17:02:10 T:6400 NOTICE: 112 BRAVO1
17:02:10 T:6400 NOTICE: 113 BRAVO2
17:02:10 T:6400 NOTICE: 114 BRAVO3
17:02:10 T:6400 NOTICE: 115 BRAVO4
17:02:10 T:6400 NOTICE: 116 BRAVO5
17:02:10 T:6400 NOTICE: 117 BRAVO6
17:02:10 T:6400 NOTICE: 118 BRAVO7
编辑:当我使用此代码时:
>>4010 ABC FAMILY
>>4011 CNN USA
>>4012 ESPN USA
>>4013 Fox News
>>4014 Animal Planet
>>4015 USA Network
>>4016 SPIKE
我得到了这个结果:
self.getControl(4110 + idx).setLabel(channels)
编辑:当我使用它时:
>>4010 BRAVO7
>>4011 BRAVO7
>>4012 BRAVO7
>>4013 BRAVO7
>>4014 BRAVO7
>>4015 BRAVO7
>>4016 BRAVO7
它将拆分字符串并将每个字母设置为每个标签控件,如下所示:
self.getControl(4110 + index).setLabel(channels[index])
它应该是这样的:
4110 >> 1
4111 >> 0
4112 >> 1
4113 >>
4114 >> A
4115 >> B
4116 >> C
答案 0 :(得分:0)
for row in cur:
channel = row[0].encode('ascii')
channelList.append(channel)
# set the channels text
for index in range(0, channels_per_page):
if index >= len(channel):
self.setControlLabel(4010 + index, channel)
这里看起来你从数据库中获得的每个频道都进行一次for
循环。我猜你实际上想要从数据库中获取所有数据之后运行for循环。如果是这种情况,这段代码可能会起到作用:
for row in cur:
channel = row[0].encode('ascii')
channelList.append(channel)
# set the channels text
for index in range(len(channelList)):
self.setControlLabel(4010 + index, channelList[index])
但要理解其中某些功能(setControlLabel
,getControl
,setLabel
)以及您尝试使用代码完成的工作有点困难。这是我根据评论做出的假设。