【问题标题】:Kivy window shows nothingKivy 窗口什么也不显示
【发布时间】:2020-10-21 04:00:17
【问题描述】:

kivy 窗口什么也没有显示

import kivy 
from kivy.app import App 
from kivy.uix.label import Label 
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput

class MyGrid(GridLayout):
    def __init__(self, **kwargs):
        super(MyGrid, self).__init__(**kwargs)
        self.cols = 2
        self.add_widget(Label(text='Name: '))
        self.name = TextInput(multiline=False)
        self.add_widget(self.name)


class MyApp(App):
    def biuld(self):
        return MyGrid()


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

这是我的点子列表,我使用的是 python 3.7.8:

  • 证书 2020.6.20
  • chardet 3.0.4
  • docutils 0.16
  • idna 2.10
  • 基维 1.11.1
  • kivy-deps.angle 0.2.0
  • kivy-deps.glew 0.2.0
  • kivy-deps.gstreamer 0.2.0
  • kivy-deps.sdl2 0.2.0
  • 基维花园 0.1.4
  • 点 20.1.1
  • Pygments 2.6.1
  • pypiwin32 223
  • pywin32 228
  • 请求 2.24.0
  • 设置工具 47.1.0
  • urllib3 1.25.9

【问题讨论】:

  • 我不知道 kivy,但我确实注意到您的 MyApp 类实现/覆盖了 biuld 方法,这对我来说看起来像是一个错字,这可能是您的问题吗?你得到什么错误?此外,python 要求的完整列表可能与您的问题无关

标签: python kivy


【解决方案1】:

来自kivy docs

要使用小部件树初始化您的应用,请覆盖应用类中的 build() 方法并返回您构建的小部件树。

简而言之,您的build 方法有一个错字(def biuld)。这是一个适合您的更新版本:

import kivy 
from kivy.app import App 
from kivy.uix.label import Label 
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput

class MyGrid(GridLayout):
    def __init__(self, **kwargs):
        super(MyGrid, self).__init__(**kwargs)
        self.cols = 2
        self.add_widget(Label(text='Name: '))
        self.name = TextInput(multiline=False)
        self.add_widget(self.name)


class MyApp(App):
    def build(self):
        return MyGrid()


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

【讨论】:

    【解决方案2】:
        def biuld(self):
    

    你拼错了 build。

    【讨论】:

      猜你喜欢
      • 2020-11-24
      • 2020-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      • 1970-01-01
      • 2019-06-14
      相关资源
      最近更新 更多