0
我試圖熟悉kivy,通過這樣做,我想我可以爲我訪問量最大的一些網站製作一個小型新聞閱讀器。 (他們都有一個rss的形式)Kivy:嘗試使用按鈕滾動網格佈局
我掙扎着圍繞着基維的頭,它似乎是我生命中的一個新怪物。
我有下面的代碼。我想要做的是創建一個按鈕列表(我可以做得很好),然後讓該列表滾動(在一些網站中有很多新聞提要)。
Im努力獲取列表中的可滾動部分。現在它只是試圖將所有的按鈕放在窗口的底部,這使得它看起來全部被壓扁和粗糙,我認爲這與size_hint_y = none有關,但我知道文檔提到你需要禁用gridview的hint_y爲scrollview的工作(或至少這是我如何解釋它)。
代碼:
import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.base import runTouchApp
from kivy.lang import Builder
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
from kivy.uix.scrollview import ScrollView
#Importing modules for data capture for website and reading.
from urllib import urlopen
from re import findall, MULTILINE, sub
#news list data
heading = []
date = []
id_ref = []
URL_list = 'my_sites.xml'
O_WL = urlopen(URL_list).read()
class Screen(GridLayout):
def __init__(self,**kwargs):
super(Screen,self).__init__(**kwargs)
self.cols = 1
self.spacing = 2
self.size_hint_y=None
for i in range(len(id_ref)):
btn_new = Button(text = heading[i],height=50, text_size=(300,None),font_size='15sp')
self.add_widget(btn_new)
root = ScrollView(size_hint=(None,None),size=(400,400))
root.add_widget(self)
class rss_class(App):
def build(self):
O_WL = urlopen(URL_list).read()
id_ex = findall('<id>(.*)</id>',O_WL)
for i in id_ex:
id_ref.extend([i])
head_ex = findall('<headline>(.*)</headline>',O_WL)
for i in head_ex:
heading.extend([i])
date_ex = findall('<modifiedDate>(.*)</modifiedDate>',O_WL)
for i in date_ex:
date.extend([i])
print id_ref
return Screen()
runTouchApp(rss_class())
在此先感謝您的幫助和指導。
你能否修復縮進問題和答案。 –
@ Micheled'Amico,確定使用正確的縮進更新了代碼。希望有一個更簡單的方法來做到這一點。 – GenGen