Kivy:如何更改"Spinner"按钮的颜色和大小? [英] Kivy: How to change 'Spinner' button colour and size?

查看:169
本文介绍了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()

推荐答案

要更改Button的大小和颜色.spinner.html"rel =" nofollow noreferrer> Spinner ,实施

To change the size and colour of Button in Spinner, implement dropdown_cls and option_cls.

  • 设置 False(默认为True)
  • 提供自己的width
  • Set auto_width to False (Default is True)
  • 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆