2016-05-11 2 views
0

PageRayoutをAccordionで使用しようとしていますが、どこでもクリックしようとするとこのエラーが表示されます。それを働かせる方法。AccordionでPageLayoutを使用する

Traceback (most recent call last): 
    File "accmain.py", line 19, in <module> 
    LiuApp().run() 

    File "/usr/lib/python2.7/dist-packages/kivy/app.py", line 828, in run 
    runTouchApp() 

    File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 487, in runTouchApp 
    EventLoop.window.mainloop() 

    File "/usr/lib/python2.7/dist-packages/kivy/core/window/window_sdl2.py", line 619, in mainloop 
    self._mainloop() 

    File "/usr/lib/python2.7/dist-packages/kivy/core/window/window_sdl2.py", line 362, in _mainloop 
    EventLoop.idle() 

    File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 330, in idle 
    self.dispatch_input() 

    File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 315, in dispatch_input 
    post_dispatch_input(*pop(0)) 

    File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 221, in post_dispatch_input 
    listener.dispatch('on_motion', etype, me) 

    File "_event.pyx", line 718, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:7146) 

    File "/usr/lib/python2.7/dist-packages/kivy/core/window/__init__.py", line 1034, in on_motion 
    self.dispatch('on_touch_up', me) 

    File "_event.pyx", line 718, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:7146) 

    File "/usr/lib/python2.7/dist-packages/kivy/core/window/__init__.py", line 1070, in on_touch_up 
    if w.dispatch('on_touch_up', touch): 

    File "_event.pyx", line 718, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:7146) 

    File "/usr/lib/python2.7/dist-packages/kivy/uix/widget.py", line 454, in on_touch_up 
    if child.dispatch('on_touch_up', touch): 

    File "_event.pyx", line 718, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:7146) 

    File "/usr/lib/python2.7/dist-packages/kivy/uix/widget.py", line 454, in on_touch_up 
    if child.dispatch('on_touch_up', touch): 

    File "_event.pyx", line 718, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:7146) 

    File "/usr/lib/python2.7/dist-packages/kivy/uix/widget.py", line 454, in on_touch_up 
    if child.dispatch('on_touch_up', touch): 

    File "_event.pyx", line 718, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:7146) 

    File "/usr/lib/python2.7/dist-packages/kivy/uix/widget.py", line 454, in on_touch_up 
    if child.dispatch('on_touch_up', touch): 

    File "_event.pyx", line 718, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:7146) 

    File "/usr/lib/python2.7/dist-packages/kivy/uix/widget.py", line 454, in on_touch_up 
    if child.dispatch('on_touch_up', touch): 

    File "_event.pyx", line 718, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:7146) 

    File "/usr/lib/python2.7/dist-packages/kivy/uix/pagelayout.py", line 201, in on_touch_up 

return self.children[-self.page + 1].on_touch_up(touch) 

IndexError: list index out of range 

これは、私がこれまでこのエラーを解決するために行ってきたことです。 accmain.pyファイル

from kivy.app import App 
from kivy.uix.accordion import Accordion 

class RunLiu(Accordion): 
    def __init__(self, **kwargs): 
     super(RunLiu, self).__init__(**kwargs) 

class LiuApp(App): 
    def build(self): 
     root = RunLiu() 
     return root 

if __name__ == "__main__": 
    LiuApp().run()` 

liu.kvファイルフォーマットのための

<RunLiu>: 
    orientation: "vertical" 
    AccordionItem: 
     title: "Item 1" 
     PageLayout: 
      Label: 
       text: "yee" 

    AccordionItem: 
     title: "Item 2" 
     Label: 
      text: "hey there" 

    AccordionItem: 
     title: "3rd tab" 
     Label: 
      text: 'Item 3' 

申し訳ありませんが、オーバーフローとkivyの両方をスタックすることは非常に新しいです。すべての字下げは、私のファイルで正しいです。

答えて

0

私はあなたの問題を理解していません。あなたのコード全体を投稿したり、誤字を犯したり、古いバージョンのkivyを持っていなかったかのようです。マスターブランチ(1.9.2)では、このコードではエラーは発生せず、問題なくページをリストすることができます(もちろん、ラベルには背景がないので重複します):

from kivy.app import App 
from kivy.lang import Builder 
from kivy.uix.accordion import Accordion 
Builder.load_string(''' 
<RunLiu>: 
    orientation: "vertical" 
    AccordionItem: 
     title: "Item 1" 
     PageLayout: 
      Label: 
       text: "yee" 
      Label: 
       text: "ya" 
      Label: 
       text: "yas" 

    AccordionItem: 
     title: "Item 2" 
     Label: 
      text: "hey there" 

    AccordionItem: 
     title: "3rd tab" 
     Label: 
      text: 'Item 3' 
''') 

class RunLiu(Accordion): 
    def __init__(self, **kwargs): 
     super(RunLiu, self).__init__(**kwargs) 

class LiuApp(App): 
    def build(self): 
     root = RunLiu() 
     return root 

if __name__ == "__main__": 
    LiuApp().run() 
+0

ありがとう@KeyWeeUsr。私はkivy v1.9.1とpython v2.7.6を使用しています。同じコードを実行しても同じエラーが発生します。私はkivyを更新しようとしました、そのpython-kivyは既に最新バージョンです。 ubuntu 14.04で作業していて、[ここ]からkivyを更新しています(https://kivy.org/docs/installation/installation-linux.html) –

+0

kivyをv1.9.2にアップデートするにはどうすればよいですか? –

+0

@ NarendraSingh [Here](https://kivy.org/docs/installation/installation-linux.html)、夜間のビルドを使用するか、[github](https://github.com/kivy/)からコードをダウンロードしてください。 kivy)、それをコンパイルします。 Kivyは安定版(1.9.1)をインストールしたため、最新の安定版がないため、Kivyが最新であると言います。 – KeyWeeUsr

関連する問題