2017-05-25 397 views
0

我正在开发一个简单的Notes应用程序。这就是我现在添加Note的屏幕的样子。 ![enter image description herekivy TextInput更改字体颜色添加背景线

我想实现两件事情

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

2.添加命令行来我的TextInput所看到的画面

enter image description here

该行应始终即使将TextInput是空可见。从我的Python脚本

提取:(!谢谢)从我的KV文件

class NewNoteView(ModalView): 
    pass 

提取

<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] 

回答

0

你的问题非常清晰的结构,但你并没有真正做你的研究正确,你是否?至少关于第一个问题。

  1. 答案很简单:使用foreground_color属性并将其设置为1, 1, 1, 1;从文档:

(fore_ground颜色是)当前颜色的前景的,在(R,G, B,A)的格式。默认为黑色。

  1. 现在这一个是更有趣和复杂一点。直接的解决方案是在画布中使用Line。像这样将白线添加到窗口小部件在.kv文件底部:

canvas.before: Color: rgba: 1, 1, 1, 1 Line: points: self.x + 20, self.y, self.x + self.width - 20, self.y width: 1

而且它看起来像这样,当我改变你的应用程序使用两个TextInputs: How it looks

但据我所知,你只想在笔记中有一个TextInput。所以你必须找出线的高度并且每x个像素画一条线。 Here's我发现了什么。您需要使用minimum_height或line_height加line_spacing。另外,我不认为你可以在.kv中做到这一点,我想你需要在Python中为它写一个方法。

我会推荐使用我的方法与额外的TextInputs。您可以绑定“输入”以每次创建一个新的TextInput,以便可以拥有无​​限的线条。我相信这样会更容易,但是你可以这样做。