Search code examples
pythonpython-3.xkivykivy-language

Kivy Popup Shows Background Widgets


I am trying to use the popup widget in Kivy, but everytime I run the code, the popup just has 2 smaller versions of the widget on the main screen.

This is my Python code (the .py file):

import kivy
kivy.require('1.9.0')
from kivy.app import App
from kivy.uix.widget import Widget


class Layout(Widget):
    pass


class KivyTestApp(App):
    def build(self):
        return Layout()


app = KivyTestApp()
app.run()

and this is my Kivy code (the .kv file):

#: import Factory kivy.factory.Factory

<MyPopup@Popup>:
    title: 'Test'
    size_hint: None, None
    size: 400, 400

<Layout>:
    Button:
        id: but
        size: root.width, root.height
        background_normal: ''
        background_color: .5, .7, .9, 1
        text: 'Press me to open the popup'
        pos: 0, 0
        on_press: Factory.MyPopup().open()

This creates a window that looks like this:

enter image description here

And the popup looks like this:

enter image description here

As you can see, I have added no content to the popup, yet Buttons still appear! If anyone could help me, that would be great, and thanks in advance!


Solution

  • Kivy already has an internal widget called Layout, which is subclassed all over the place. Try naming your own widget something else.