Python 如何在kivy中设置旋转器内的按钮大小?

Python 如何在kivy中设置旋转器内的按钮大小?,python,python-2.7,spinner,kivy,Python,Python 2.7,Spinner,Kivy,敬请需要知道如何改变或控制在一个克维纺纱机内的特殊按钮的大小。注意:我的微调器使用的是kv语言,而不是python,如下所示: Spinner: id:some_id text:"some text" values:("1","2","3") size_hint:(None,None) size: root.width/4,root.height/12 Spinner内的按钮属于传递给option\u cls属性的类型。默认的是喷丝头选项类,它实际上是按

敬请需要知道如何改变或控制在一个克维纺纱机内的特殊按钮的大小。注意:我的微调器使用的是kv语言,而不是python,如下所示:

Spinner:
    id:some_id
    text:"some text"
    values:("1","2","3")
    size_hint:(None,None)
    size: root.width/4,root.height/12

Spinner
内的按钮属于传递给
option\u cls
属性的类型。默认的是
喷丝头选项
类,它实际上是
按钮
的一个子类。您可以更改传递给此属性的类(它必须具有
text
属性和
on_release
事件)或全局修改
SpinnerOption
类:

from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.base import runTouchApp

Builder.load_string('''
<SpinnerOption>:
    size_hint: None, None
    size: 20, 20

<MyWidget>:
    Spinner:
        id:some_id
        text:"some text"
        values:("1","2","3")
        size_hint:(None,None)
        size: root.width/4,root.height/12
''')

class MyWidget(BoxLayout):pass

runTouchApp(MyWidget())
来自kivy.lang导入生成器
从kivy.uix.boxlayout导入boxlayout
从kivy.base导入runTouchApp
Builder.load_字符串(“”)
:
大小提示:无,无
尺码:20,20
:
微调器:
身份证:一些
文本:“一些文本”
数值:(“1”、“2”、“3”)
大小提示:(无,无)
尺寸:根宽/4,根高/12
''')
类MyWidget(BoxLayout):通过
runTouchApp(MyWidget())
使用自定义按钮:

from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.spinner import Spinner
from kivy.base import runTouchApp
from kivy.properties import ObjectProperty

Builder.load_string('''
<MyButton>:
    size_hint: None, None
    size: 20, 20

<MyWidget>:
    MySpinner:
        id:some_id
        text:"some text"
        values:("1","2","3")
        size_hint:(None,None)
        size: root.width/4,root.height/12
''')

class MyButton(Button):
    pass

class MySpinner(Spinner):
    option_cls = ObjectProperty(MyButton) # setting this property inside kv doesn't seem to work

class MyWidget(BoxLayout):
    pass    

runTouchApp(MyWidget())
来自kivy.lang导入生成器
从kivy.uix.boxlayout导入boxlayout
从kivy.uix.button导入按钮
从kivy.uix.spinner导入微调器
从kivy.base导入runTouchApp
从kivy.properties导入ObjectProperty
Builder.load_字符串(“”)
:
大小提示:无,无
尺码:20,20
:
迈斯宾纳:
身份证:一些
文本:“一些文本”
数值:(“1”、“2”、“3”)
大小提示:(无,无)
尺寸:根宽/4,根高/12
''')
类MyButton(按钮):
通过
类旋转器(旋转器):
选项_cls=ObjectProperty(MyButton)#在kv内设置此属性似乎不起作用
类MyWidget(BoxLayout):
通过
runTouchApp(MyWidget())

这正是我想要的@Nykakin,但仍然有一个问题:如果我采用第一种解决方案,如何设置与根小部件成比例的高度和宽度(全局覆盖类SpinnerOption?不幸的是,我不知道,在尝试编码之后,我可以说它比我想象的更复杂。我刚刚发现spinner选项在默认情况下是可滚动的,这可能会解决问题。你看,我已经构建了一个工资计算器应用程序,我希望在每个android设备上运行e我担心的是小屏幕,因为打开时的微调器不适合小屏幕。Nexus 4上的微调器非常好,三星s4上的微调器非常棒,但对于具有240x320显示屏的小型设备……如何将按钮列在几列而不是一列中……?这也可以节省空间。当然,我这样做了,但有3个微调器还有ers,你可以选择家庭状况、孩子数量……给我你的gmail或whatsapp号码,这样我就可以给你发一张照片