官术网_书友最值得收藏!

  • Kivy Cookbook
  • Hugo Solis
  • 238字
  • 2021-07-16 20:39:55

Reusing styles in multiple widgets

This recipe will teach you how to take advantage of reusing styles for different widgets, a procedure that could be useful for the scalability of a system.

Getting ready

We will use this example of a file, e8.kv, where two widgets are defined:

<MyWidget1>:
    Button: 
        on_press: self.text(txt_inpt.text) 
    TextInput: 
        id: txt_inpt 
<MyWidget2>: 
    Button: 
        on_press: self.text(txt_inpt.text) 
    TextInput: 
        id: txt_inpt

We must note that they are very similar, and actually just the name of the widget is different between them.

How to do it…

The following steps provide a way to join the two widgets:

  • Let's conserve just one of the widgets.
  • The name of the discarded widget will be added to name of the conserved widget, by separating with a comma:
    <MyWidget1,MyWidget2>:
        Button: 
            on_press: self.text(txt_inpt.text) 
        TextInput: 
            id: txt_inpt 

How it works…

In this case, by separating the class names with a comma, all the classes listed in the declaration will have the same KV properties and you could join any number of similar widgets.

There's more…

In the Python code, the widgets could do different tasks, as in the next portion of code:

class MyWidget1(Widget):
    def text(self, val):
        print('text input text is: {txt}'.format(txt=val)) 
class MyWidget2(Widget): 
    writing = StringProperty('') 
    def text(self, val): self.writing = val 

Similarly, you can join the widgets in the Kv language.

See also

If you want to get more details about widgets, see the recipes in Chapter 4, Widgets.

主站蜘蛛池模板: 兴城市| 科技| 始兴县| 天津市| 揭西县| 东乡县| 克拉玛依市| 伊川县| 和田市| 利川市| 互助| 福州市| 墨竹工卡县| 黑水县| 保山市| 泽普县| 历史| 阿巴嘎旗| 晋江市| 长岭县| 鄂尔多斯市| 济阳县| 五大连池市| 西昌市| 中方县| 福鼎市| 陆河县| 马山县| 二连浩特市| 西青区| 册亨县| 赣榆县| 句容市| 贵阳市| 平果县| 金华市| 拉萨市| 杭锦旗| 凤山县| 砀山县| 万山特区|