【问题标题】:Widgets ( button , inputtext etc. ) inside screen is not working屏幕内的小部件(按钮、输入文本等)不起作用
【发布时间】:2015-07-21 03:44:17
【问题描述】:

我试图在屏幕内放置一些文本框和按钮,但似乎不起作用。代码中有任何建议或问题吗?运行 main.py 时,文本输入和第一个按钮和标签不存在

电话.kv

<Phone>:
    orientation: 'vertical'
    ScreenManager:
        size_hint: 1, 1
        id: _screen_manager
        Screen:
            name: 'screen1'
            Label:
                markup: True
                text: 'manish'
            TextInput:
                text: 'Hi Kivy'
            Button:
                text: 'Go to Screen 1'
                on_press:
                    _screen_manager.current = 'screen1'
            Button:
                text: 'Go to Screen 2'
                on_press:
                    root.login()
                    _screen_manager.current = 'screen2'

        Screen:
            name: 'screen2'
            GridLayout:
                cols: 3
                padding: 50
                Button:
                    text: "1"

main.py

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
import time

class Phone(FloatLayout):
    def login(self):
        print "before"
        time.sleep(2)
        print "after"

class PhoneApp(App):
    def build(self):
        return Phone()

if __name__ == '__main__':
    PhoneApp().run()

【问题讨论】:

    标签: python kivy


    【解决方案1】:

    一切都可能在那里,只是彼此重叠,因为默认情况下 Screen 会放置其子元素来填充自己。

    试试下面这样的方法,它使用了一个盒子布局,应该把它的孩子放在不同的地方。

    屏幕: 名称:'screen1' 盒子布局: 方向:“垂直” 标签: 标记:真 文字:'manish' 文本输入: 文字:“嗨基维” 按钮: 文本:'转到屏幕 1' on_press: _screen_manager.current = 'screen1' 按钮: 文本:'转到屏幕 2' on_press: root.login() _screen_manager.current = 'screen2'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 2018-11-18
      • 2017-02-12
      • 2011-09-28
      • 1970-01-01
      相关资源
      最近更新 更多