kivy TextInput更改字体颜色添加背景线

时间:2017-05-25 13:36:04

标签: python kivy kivy-language

我正在开发一个简单的Notes应用程序。这就是我现在添加注释的屏幕的样子。 ![enter image description here

我想实现两件事

1。将TextInput的字体颜色更改为白色。

2。在我的TextInput中添加行,如图所示

enter image description here

即使TextInput为空,这些行也应始终可见。

从我的python脚本中提取:

class NewNoteView(ModalView):
    pass

从我的kv文件中提取

<NewNoteView>:
    BoxLayout:
        orientation: 'vertical'

        BoxLayout:
            size_hint_y: 0.2
            canvas.before:
                Color:
                    rgb: 33/255, 41/255, 55/255
                Rectangle:
                    pos: self.pos
                    size: self.size
            orientation: 'vertical'
            BoxLayout:
                Button:
                    size_hint_x:0.1
                    text: 'x'
                    font_size: self.height*0.5
                    background_color: 0, 0, 0, 0
                    on_press: root.dismiss()
                Label:
                    text: 'New Label'

                Button:
                    size_hint_x:0.1
                    text:'+'
                    font_size: self.height*0.5
                    background_color: 0, 0, 0, 0
                    on_press: app.root.notifyP()

                Button:
                    size_hint_x:0.1
                    text: 'L'
                    font_size: self.height*0.5
                    background_color: 0, 0, 0, 0

            BoxLayout:
                TextInput:
                    font_size: self.height*0.5
                    background_color: 0, 0, 0, 0
                    cursor_color: 1, 1, 1, 1

                    hint_text: 'Heading'
                    multiline: False
                    padding_x: [30,30]

                Button:
                    size_hint_x: 0.2
        BoxLayout:
            canvas.before:
                Color:
                    rgba: [38/255, 49/255, 70/255,1]
                Rectangle:
                    pos: self.pos
                    size: self.size
            TextInput:
                background_color: 0, 0, 0, 0
                cursor_color: 1, 1, 1, 1
                color: 1, 1, 1, 1
                hint_text: 'Body'
                padding_x: [30,30]

1 个答案:

答案 0 :(得分:1)

你的问题结构非常清晰(谢谢!)但是你没有真正做好你的研究,是吗?至少关于第一个问题。

  1. 答案很简单:使用foreground_color属性并将其设置为SELECT COUNT(*) FROM ( SELECT post_id FROM metatable WHERE (meta_key = '_email' AND meta_value LIKE '%$user_email%') OR (meta_key = '_theDate' AND LEFT(meta_value, 4) LIKE '%2017%') GROUP BY post_id HAVING COUNT(DISTINCT meta_key) = 2 ) p ;来自文档:
  2.   

    (fore_ground颜色是)前景的当前颜色,(r,g,   b,a)格式。默认为黑色。

    1. 现在这个有点复杂了。直接的解决方案是在画布中使用1, 1, 1, 1。像这样的东西会在.kv文件的小部件底部添加一条白线:
    2. Line

      当我将您的应用更改为使用两个TextInput时,它看起来像这样: How it looks

      但是,据我所知,你只想在一个音符中有一个TextInput。所以你必须弄清线高,每x像素画一条线。 Here's我发现了什么。您需要使用minimum_height或line_height加上line_spacing。另外,我认为你不能在.kv中这样做,我想你需要在Python中为它编写一个方法。

      我建议使用我的方法和额外的TextInputs。您可以绑定“enter”以每次创建一个新的TextInput,这样您就可以拥有无​​限的行。我相信这会更容易,但你可以这样做。