Kivy:如何更改"Spinner"按钮的颜色和大小? [英] Kivy: How to change 'Spinner' button colour and size?
本文介绍了Kivy:如何更改"Spinner"按钮的颜色和大小?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在寻找一种在Spinner
小部件中指定按钮颜色和按钮大小的方法.
I'm looking for a way to specify button colour and button size in Spinner
widget.
我想指定大约不是主(显示)按钮,但是要指定下拉列表按钮.
似乎Spinner
小部件可能仅具有用于指定主(显示)按钮的API.
I want to specify about not main(shown) button but drop-down-list button.
It seems that Spinner
widget probably only has API to specify about main(shown) button.
如何更改微调器的颜色和大小?
How can I change colour and size of my spinner?
import kivy
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.spinner import Spinner
class SpinnerWidget(Spinner):
def __init__(self, **kwargs):
super(SpinnerWidget, self).__init__(**kwargs)
self.pos_hint = {'top':0.8, 'x':0.2}
self.size_hint_x = 0.5
self.size_hint_y = 0.1
# default value shown
self.text = 'Home'
# main button color = white
self.background_color = [255,255,255,1]
# font size
self.font_size = "12sp"
# font_color
self.color = [0,0,0,1]
# available values
self.values=('Home', 'Work', 'Other', 'Custom')
# Is it possible to change color of drop-down button here?
# ~~~
def show_selected_value(spinner, text):
print('The spinner', spinner, 'has text', text)
class TestScreen(Screen):
def __init__(self, **kwargs):
super(TestScreen, self).__init__(**kwargs)
spi = SpinnerWidget()
self.add_widget(spi)
sm = ScreenManager()
class DemoApp(App):
def build(self):
sm.add_widget(TestScreen(name='test'))
return sm
if __name__ == '__main__':
DemoApp().run()
推荐答案
要更改Spinner
,实施 option_cls .
To change the size and colour of Button
in Spinner
, implement dropdown_cls and option_cls.
- Set
auto_width
toFalse
(Default isTrue
) - Provide your own
width
- Set
background_normal = ''
- Provide your own colour to
background_color
- Provide your own
height
from kivy.uix.spinner import Spinner, SpinnerOption
from kivy.uix.dropdown import DropDown
class SpinnerOptions(SpinnerOption):
def __init__(self, **kwargs):
super(SpinnerOptions, self).__init__(**kwargs)
self.background_normal = ''
self.background_color = [0, 0, 1, 1] # blue colour
self.height = 26
class SpinnerDropdown(DropDown):
def __init__(self, **kwargs):
super(SpinnerDropdown, self).__init__(**kwargs)
self.auto_width = False
self.width = 150
class SpinnerWidget(Spinner):
def __init__(self, **kwargs):
super(SpinnerWidget, self).__init__(**kwargs)
self.dropdown_cls = SpinnerDropdown
self.option_cls = SpinnerOptions
...
输出
这篇关于Kivy:如何更改"Spinner"按钮的颜色和大小?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文