python - 如何在 kivy 的微调器中设置按钮大小?

标签 python python-2.7 spinner kivy

请知道如何更改或控制 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_cls 属性的类型。默认的是SpinnerOption类,它实际上是Button的子类。您可以更改传递给此属性的类(它必须具有 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())

使用自定义按钮:

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())

关于python - 如何在 kivy 的微调器中设置按钮大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19926534/

相关文章:

Python Scrapy 无法从类中提取文本

java - 在更改第一个微调器值时更改第二个微调器值

java - 在 Swing JTable 中使用微调器作为编辑器有什么方便的方法吗?

javascript - 我怎样才能制作一个没有重复的随机数组?

python - 在附加新值之前检查文本文件中的现有值

python - 如何匹配 pandas DataFrame 中的多列 "interval"?

python - 使用 python 和 gtk 3 将 gtk 应用程序主题更改为默认主题

python - Spark : Broadcast variables: It appears that you are attempting to reference SparkContext from a broadcast variable, Action ,或转换

python - 在 python 中导入 opencv 时出错

python - 编写一个将十六进制转换为十进制的函数