Andrey
Andrey

Reputation: 156

How can i know number of page in pagelayout(kivy,python)

How can i know number of page in pagelayout(kivy,python)For instance ,when user choose 3th page number of 'page' var will be 3.Please help

Upvotes: 0

Views: 174

Answers (1)

ikolim
ikolim

Reputation: 16041

Page Numbering in PageLayout

In PageLayout, the first page has a page number of 0. The third page is 2. Please refer to the example below for details.

Total Pages in PageLayout

Use for loop to determine the total number of pages in a PageLayout.

Snippets - PageLayout is Root

    for page in self.children:
        print(page)

Snippets - PageLayout is not Root

    for child in self.children:
        if isinstance(child, PageLayout):
            for page in child.children:
                print(page)

Example

main.py

from kivy.app import App
from kivy.uix.pagelayout import PageLayout


class RootWidget(PageLayout):

    def print_page(self, btn):
        print("{0} has a page number = {1}".format(btn.text, self.page))


class TestApp(App):

    def build(self):
        return RootWidget()


if __name__ == "__main__":
    TestApp().run()

test.kv

#:kivy 1.10.0

<RootWidget>:
    Button:
        text: 'page1'
        on_release: root.print_page(self)
    Button:
        text: 'page2'
        on_release: root.print_page(self)
    Button:
        text: 'page3'
        on_release: root.print_page(self)

Output

Img01 - page1 has page number 0 Img02 - page3 has page number 2

Upvotes: 1

Related Questions