<p>这演示了一次滚动7个通道,关键部分是<code>next_seven_channels = self.all_channels[self.channel_index:end_index]</code></p>
<pre><code>try:
import Tkinter as tk
except:
import tkinter as tk
class app(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.all_channels = [
'101 BBC One S East', '102 BBC Two', '103 ITV', '104 Channel 4',
'105 Channel 5', '106 Sky One', '107 Sky Living', '108 Sky Atlantic',
'401 Sky Sports 1 UK', '402 SKY Sports 2 UK', '403 Sky Sports 3 UK',
'404 Sky Sports 4 UK', '405 Sky Sports 5 UK', '406 Sky Sports News HQ',
'407 Sky Sports F1', '408 Sky Sports 1 HD', '409 Sky Sports 2 HD',
'410 Sky Sports 3 HD', '411 Sky Sports 4 HD', '412 Sky Sports 5 HD',
'413 Eurosport 1 UK', '414 Eurosport 2 UK', '415 BT Sport 1',
'416 BT Sport 2', '417 At the Races', '418 BT Sport ESPN', '419 MUTV',
'420 Chelsea TV', '421 Eir Sport 1', '422 Eir Sport 2']
self.channel_index = 0
self.print_channels = tk.Button(self,text="Page Down",
font=("Calibri",30,"bold"),
foreground="DodgerBlue2",
command=self.PageDown)
self.print_channels.pack()
def PageDown(self,event=None):
end_index = self.channel_index + 7
if end_index > len(self.all_channels):
end_index -= len(self.all_channels) - end_index
next_seven_channels = self.all_channels[self.channel_index:end_index]
self.channel_index += 7
if self.channel_index > len(self.all_channels):
self.channel_index = 0
print (next_seven_channels)
root = app()
root.mainloop()
</code></pre>
<p>如果我理解正确,要立即显示前7个通道,只需在程序启动后调用<code>self.PageDown()</code>,如下所示:</p>
<pre><code>try:
import Tkinter as tk
except:
import tkinter as tk
class app(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.all_channels = [
'101 BBC One S East', '102 BBC Two', '103 ITV', '104 Channel 4',
'105 Channel 5', '106 Sky One', '107 Sky Living', '108 Sky Atlantic',
'401 Sky Sports 1 UK', '402 SKY Sports 2 UK', '403 Sky Sports 3 UK',
'404 Sky Sports 4 UK', '405 Sky Sports 5 UK', '406 Sky Sports News HQ',
'407 Sky Sports F1', '408 Sky Sports 1 HD', '409 Sky Sports 2 HD',
'410 Sky Sports 3 HD', '411 Sky Sports 4 HD', '412 Sky Sports 5 HD',
'413 Eurosport 1 UK', '414 Eurosport 2 UK', '415 BT Sport 1',
'416 BT Sport 2', '417 At the Races', '418 BT Sport ESPN', '419 MUTV',
'420 Chelsea TV', '421 Eir Sport 1', '422 Eir Sport 2']
self.channel_index = 0
self.print_channels = tk.Button(self,text="Page Down",
font=("Calibri",30,"bold"),
foreground="DodgerBlue2",
command=self.PageDown)
self.print_channels.pack()
self.PageDown() # added code <
def PageDown(self,event=None):
end_index = self.channel_index + 7
if end_index > len(self.all_channels):
end_index -= len(self.all_channels) - end_index
next_seven_channels = self.all_channels[self.channel_index:end_index]
self.channel_index += 7
if self.channel_index > len(self.all_channels):
self.channel_index = 0
print (next_seven_channels)
root = app()
root.mainloop()
</code></pre>
<p>或在程序启动时跳过显示前7个频道:</p>
<pre><code>try:
import Tkinter as tk
except:
import tkinter as tk
class app(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.all_channels = [
'101 BBC One S East', '102 BBC Two', '103 ITV', '104 Channel 4',
'105 Channel 5', '106 Sky One', '107 Sky Living', '108 Sky Atlantic',
'401 Sky Sports 1 UK', '402 SKY Sports 2 UK', '403 Sky Sports 3 UK',
'404 Sky Sports 4 UK', '405 Sky Sports 5 UK', '406 Sky Sports News HQ',
'407 Sky Sports F1', '408 Sky Sports 1 HD', '409 Sky Sports 2 HD',
'410 Sky Sports 3 HD', '411 Sky Sports 4 HD', '412 Sky Sports 5 HD',
'413 Eurosport 1 UK', '414 Eurosport 2 UK', '415 BT Sport 1',
'416 BT Sport 2', '417 At the Races', '418 BT Sport ESPN', '419 MUTV',
'420 Chelsea TV', '421 Eir Sport 1', '422 Eir Sport 2']
self.channel_index = 7 # changed code <
self.print_channels = tk.Button(self,text="Page Down",
font=("Calibri",30,"bold"),
foreground="DodgerBlue2",
command=self.PageDown)
self.print_channels.pack()
def PageDown(self,event=None):
end_index = self.channel_index + 7
if end_index > len(self.all_channels):
end_index -= len(self.all_channels) - end_index
next_seven_channels = self.all_channels[self.channel_index:end_index]
self.channel_index += 7
if self.channel_index > len(self.all_channels):
self.channel_index = 0
print (next_seven_channels)
root = app()
root.mainloop()
</code></pre>