• <bdo id='eiLdj'></bdo><ul id='eiLdj'></ul>
  • <legend id='eiLdj'><style id='eiLdj'><dir id='eiLdj'><q id='eiLdj'></q></dir></style></legend>

    <small id='eiLdj'></small><noframes id='eiLdj'>

    <tfoot id='eiLdj'></tfoot>

    1. <i id='eiLdj'><tr id='eiLdj'><dt id='eiLdj'><q id='eiLdj'><span id='eiLdj'><b id='eiLdj'><form id='eiLdj'><ins id='eiLdj'></ins><ul id='eiLdj'></ul><sub id='eiLdj'></sub></form><legend id='eiLdj'></legend><bdo id='eiLdj'><pre id='eiLdj'><center id='eiLdj'></center></pre></bdo></b><th id='eiLdj'></th></span></q></dt></tr></i><div id='eiLdj'><tfoot id='eiLdj'></tfoot><dl id='eiLdj'><fieldset id='eiLdj'></fieldset></dl></div>
      1. 用于简单计算的 Kivy 输入值

        时间:2023-10-10
          <tbody id='mvX3j'></tbody>

        1. <legend id='mvX3j'><style id='mvX3j'><dir id='mvX3j'><q id='mvX3j'></q></dir></style></legend>

              <small id='mvX3j'></small><noframes id='mvX3j'>

                • <bdo id='mvX3j'></bdo><ul id='mvX3j'></ul>

                  <i id='mvX3j'><tr id='mvX3j'><dt id='mvX3j'><q id='mvX3j'><span id='mvX3j'><b id='mvX3j'><form id='mvX3j'><ins id='mvX3j'></ins><ul id='mvX3j'></ul><sub id='mvX3j'></sub></form><legend id='mvX3j'></legend><bdo id='mvX3j'><pre id='mvX3j'><center id='mvX3j'></center></pre></bdo></b><th id='mvX3j'></th></span></q></dt></tr></i><div id='mvX3j'><tfoot id='mvX3j'></tfoot><dl id='mvX3j'><fieldset id='mvX3j'></fieldset></dl></div>
                • <tfoot id='mvX3j'></tfoot>
                • 本文介绍了用于简单计算的 Kivy 输入值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我对 Kivy 很陌生(昨天开始),我正在尝试创建一个足够简单的应用程序,该应用程序具有用于计算体积的多个高度和面积值的输入框.我找不到任何这样做的工作方法.到目前为止,我得到的只有这个:

                  I'm quite new to Kivy (started yesterday) and am trying to create a simple enough app that has input boxes for several values of height and area to calculate volumes. I cant find any working methods of doing this. So far all I have got is this:

                  from kivy.app import App
                  from kivy.lang import Builder
                  from kivy.uix.screenmanager import ScreenManager, Screen
                  
                  
                  Builder.load_string("""
                  <MenuScreen>:
                      FloatLayout:
                  
                          Label:
                              text: 'Please Select an Area to Work With:'
                              pos: 230, 490
                              size_hint: .15, .05
                              font_size: 23
                  
                  
                  
                          Button:
                              text: "A"
                              pos: 230, 100
                              size_hint: .4,.1
                              font_size: 23
                              on_press: root.manager.current = 'settings'
                  
                  
                          Button:
                              text: "B"
                              pos: 230, 210
                              size_hint: .4,.1
                              font_size: 23
                              on_press: root.manager.current = 'settings'
                  
                  
                          Button:
                              text: "C"
                              pos: 230, 320
                              size_hint: .4,.1
                              font_size: 23
                              on_press: root.manager.current = 'settings'
                  
                  
                  
                          Button:
                              text: "D"
                              pos: 230, 420
                              size_hint: .4,.1
                              font_size: 23
                              on_press: root.manager.current = 'settings'
                  
                  
                  
                  
                  
                  
                  <SettingsScreen>:
                      GridLayout:
                          Label:
                              text: 'Room 1'
                              pos: 6, 460
                              size_hint: .15, .05
                              font_size: 23
                  
                          Label:
                              text: 'Room 2'
                              pos: 6, 420
                              size_hint: .15, .05
                              font_size: 23
                  
                          Label:
                              text: 'Room 3'
                              pos: 6, 380
                              size_hint: .15, .05
                              font_size: 23
                  
                          Label:
                              text: 'Room 4'
                              pos: 6, 340
                              size_hint: .15, .05
                              font_size: 23
                  
                          Label:
                              text: 'Room 5'
                              pos: 6, 300
                              size_hint: .15, .05
                              font_size: 23
                  
                          Label:
                              text: 'Room 6'
                              pos: 6, 260
                              size_hint: .15, .05
                              font_size: 23
                  
                          TextInput:
                              text1: "0"
                              multiline: False
                              pos: 200,420
                              font_size: 23
                              on_text: viewer.text = self.text1
                              size_hint: .001, .001
                  
                          TextInput:
                              text2: "0"
                              multiline: False
                              pos: 200, 420
                              font_size: 23
                              on_text: viewer.text = self.text2
                              size_hint: .001, .001
                  
                          TextInput:
                              text3: "0"
                              multiline: False
                              pos: 200,380
                              font_size: 23
                              on_text: viewer.text = self.text3
                              size_hint: .001, .001
                  
                          TextInput:
                              text4: "0"
                              multiline: False
                              pos: 200,340
                              font_size: 23
                              on_text: viewer.text = self.text4
                              size_hint: .001, .001
                  
                  
                          TextInput:
                              text5: "0"
                              multiline: False
                              pos: 200,300
                              font_size: 23
                              on_text: viewer.text = self.text5
                              size_hint: .001, .001
                  
                          TextInput:
                              text6: "0"
                              multiline: False
                              pos: 200,240
                              font_size: 23
                              on_text: viewer.text = self.text6
                              size_hint: .001, .001
                  """)
                  
                  # Declare both screen
                  class MenuScreen(Screen):
                      pass
                  
                  class SettingsScreen(Screen):
                      pass
                  
                  # Create the screen manager
                  sm = ScreenManager()
                  sm.add_widget(MenuScreen(name='menu'))
                  sm.add_widget(SettingsScreen(name='settings'))
                  
                  class TestApp(App):
                  
                      def build(self):
                          return sm
                  
                  if __name__ == '__main__':
                      TestApp().run()
                  

                  我计划为每个按下的按钮设置唯一的第二页,但希望有任何帮助.

                  Im planning to have the second page unique for each button pressed, but want Any help would be appreciated.

                  推荐答案

                  希望我能理解你的问题.您正在寻求执行此操作的方法.简单的答案是您拥有整个 Python 来执行您想要的所有操作.Kivy 是一个提供大量组件来设计 GUI 的库.它还为您提供了一种由 Builder.load_string() 解析的语言.这是一个可能或多或少是您正在寻找的示例.它有点像第一个屏幕上的计算器.第二个屏幕是空的,您可以使用底部按钮在它们之间移动.

                  I hope I got to understand your question. You are asking for methods to do this. The plain answer is that you have the whole Python to do all the operations you want. Kivy is a library that provides a lot of components to design GUI. It also provides you with a language that is parsed by the Builder.load_string(). Here is an example that might be more or less what you are looking for. It is sort of a calculator on the first screen. The second screen is empty and you can move between them with the bottom buttons.

                  第一个屏幕上的计算器有两个 InputTexts 和两个按钮(SumProduct).Sum 按钮直接在 kivy 语言上实现了求和.Product Button 调用根中的一个方法(Calc 的一个实例).该方法本身并不存在.我在 kivy 部分下面的 python 代码中创建.对于我所说的代码,有一些注释.

                  The calculator on the first screen has two InputTexts and two buttons (Sum and Product). The Sum Button has the implementation of a sum directly on the kivy language. The Product Button calls a method in the root (an instance of Calc). The method doesn't exist by itself. I created in the python code below the kivy section. There is some comments on the code for what I am saying.

                  from kivy.app import App
                  from kivy.lang import Builder
                  from kivy.uix.floatlayout import FloatLayout
                  
                  Builder.load_string("""
                  <Calc>:
                      # This are attributes of the class Calc now
                      a: _a
                      b: _b
                      result: _result
                      AnchorLayout:
                          anchor_x: 'center'
                          anchor_y: 'top'
                          ScreenManager:
                              size_hint: 1, .9
                              id: _screen_manager
                              Screen:
                                  name: 'screen1'
                                  GridLayout:
                                      cols:1
                                      TextInput:
                                          id: _a
                                          text: '3'
                                      TextInput:
                                          id: _b
                                          text: '5'
                                      Label:
                                          id: _result
                                      Button:
                                          text: 'sum'
                                          # You can do the opertion directly
                                          on_press: _result.text = str(int(_a.text) + int(_b.text))
                                      Button:
                                          text: 'product'
                                          # Or you can call a method from the root class (instance of calc)
                                          on_press: root.product(*args)
                              Screen:
                                  name: 'screen2'
                                  Label: 
                                      text: 'The second screen'
                      AnchorLayout:
                          anchor_x: 'center'
                          anchor_y: 'bottom'
                          BoxLayout:
                              orientation: 'horizontal'
                              size_hint: 1, .1
                              Button:
                                  text: 'Go to Screen 1'
                                  on_press: _screen_manager.current = 'screen1'
                              Button:
                                  text: 'Go to Screen 2'
                                  on_press: _screen_manager.current = 'screen2'""")
                  
                  class Calc(FloatLayout):
                      # define the multiplication of a function
                      def product(self, instance):
                          # self.result, self.a and self.b where defined explicitely in the kv
                          self.result.text = str(int(self.a.text) * int(self.b.text))
                  
                  class TestApp(App):
                      def build(self):
                          return Calc()
                  
                  if __name__ == '__main__':
                      TestApp().run()
                  

                  这篇关于用于简单计算的 Kivy 输入值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:将变量从 .py 传递到 .kv 文件 下一篇:Kivy 外部规则继承 2

                  相关文章

                  最新文章

                    <i id='4mDHs'><tr id='4mDHs'><dt id='4mDHs'><q id='4mDHs'><span id='4mDHs'><b id='4mDHs'><form id='4mDHs'><ins id='4mDHs'></ins><ul id='4mDHs'></ul><sub id='4mDHs'></sub></form><legend id='4mDHs'></legend><bdo id='4mDHs'><pre id='4mDHs'><center id='4mDHs'></center></pre></bdo></b><th id='4mDHs'></th></span></q></dt></tr></i><div id='4mDHs'><tfoot id='4mDHs'></tfoot><dl id='4mDHs'><fieldset id='4mDHs'></fieldset></dl></div>

                    <small id='4mDHs'></small><noframes id='4mDHs'>

                  1. <legend id='4mDHs'><style id='4mDHs'><dir id='4mDHs'><q id='4mDHs'></q></dir></style></legend>

                  2. <tfoot id='4mDHs'></tfoot>
                      • <bdo id='4mDHs'></bdo><ul id='4mDHs'></ul>