2014-07-19 2 views
0

가 어떻게 선 (구분자)를 삽입 할 수있는 KV 파일보기 위젯 사이, 그리고 KV 파일에 그리드 뷰도 색 테두리 경계 TextInput 상자에 max_chars 기능이 있습니다.라인을 삽입하고, 색상은 그리드

현재 KV 파일 :

<[email protected]> 
    text_size: self.size 
    valign: 'middle' 

<ContactFrm> 
    padding: 5,5 
    orientation: 'vertical' 
    #row_default_height: '36dp' 
    #cols:1 
    #spacing: 0,0 

    GridLayout: 
     cols: 4  
     row_default_height: '32dp' 
     row_force_default: True 
     spacing: 10,0 
     size_hint_y: None 
     #height:34 

     Label: 
      text: 'Name' 
      size_hint_x: 0.5 

     TextBox: 
      id:name 
      max_chars:35 

     Label: 
      text: 'Contact Name' 
      size_hint_x: 0.5 

     TextBox: 
      id:contactname 
      max_chars:35 

    GridLayout: 
     cols: 4  
     row_default_height: '32dp' 
     row_force_default: True 
     spacing: 10,0  
     size_hint_y: None 
     #height: 36    

     Label: 
      text: 'Mobile 1' 
      size_hint_x: 0.5 
     TextBox: 
      id:mob1 
      max_chars:35 
     Label: 
      text: 'Mobile 2' 
      size_hint_x: 0.5 
     TextBox: 
      id:mob2 
      max_chars:35 
     Label: 
      text: 'Landline' 
      size_hint_x: 0.5 
     TextBox: 
      id:land1 
     max_chars:35 
    Label: 
     text: 'E-mail' 
     size_hint_x: 0.5 
    TextBox: 
     id:email1 
     max_chars:75 

GridLayout: 
    row_default_height: '32dp' 
    row_force_default: True 
    spacing: 10,0 
    cols: 4  
    size_hint_y: None 
    #height: 36 

    Label: 
     text: 'Street 1' 
     size_hint_x: 0.5 
    TextBox: 
     id:street1 
     max_chars:75 
    Label: 
     text: 'Street 2' 
     size_hint_x: 0.5 
    TextBox: 
     id:street2 
     max_chars:75 
    Label: 
     text: 'Area' 
     size_hint_x: 0.5 
    TextBox: 
     id:area 
     max_chars:75 
    Label: 
     text: 'City' 
     size_hint_x: 0.5 
    TextBox: 
     id:city 
     max_chars:35 
    Label: 
     text: 'District' 
     size_hint_x: 0.5 
    TextBox: 
     id:district 
     max_chars:35 
    Label: 
     text: 'State' 
     size_hint_x: 0.5 
    TextBox: 
     id:state 
     max_chars:35 
    Label: 
     text: 'Zip Code' 
     size_hint_x: 0.5 
    TextBox: 
     id:zipcode 
     max_chars:10 
BoxLayout: 

내가 좀 순진 수 있습니다 위의 코드 그래서 모든 나는 또한 향상시킬 수있는, 조언을 바랍니다, 파이썬과 kivy 모두 새로운 오전. 고맙습니다.

최종 코드 두께도 제공 할 수 있도록 내가 수정에 사용되는 :

<[email protected]>: 
    id: separator 
    size_hint_y: None 
    height: 6 
    thickness: 2 
    canvas: 
     Color: 
      rgb: .24, .65, .94 
     Rectangle: 
      #pos: 0, separator.center_y 
      pos: self.pos[0], separator.center_y 
      size: separator.width, self.thickness 
+0

내가 Kivy에 새로운 해요하지만 : 당신은 당신이 구분자로 사용할 수있는 위젯이 있는지 여부를 문서 (또는 인터넷)에서 검색 했습니까? – furas

답변

2

나는 Kivy에 새하지만 난 당신이 분리 정상적인 Widget을 추가하고 캔버스에 사각형을 그릴 수 있다고 생각. 이 같은

뭔가하는 것은 나에게 빨간 선을 제공 - 아래 이미지 참조 : 사용 (난 당신이 국경을 그릴 GridLayout과 캔버스 (또는 canvas.before)를 사용할 수 있다고 생각

Widget: 
     id: separator 
     size_hint_y: None 
     height: 6 
     canvas: 
      Color: 
       rgb: 1., 0., 0. 
      Rectangle: 
       pos: 0, separator.center_y 
       size: separator.width, 2 

enter image description here


사각형 또는 두 가지 - 테두리 색상과 배경 색상이있는 외부 색상)하지만 테두리를 표시하려면 여백을 (여하 르게) 만들어야합니다.


편집 :

첫 번째 해결책은 일정한 두께로했다.

두께가 다른 경우 약간의 계산이 필요합니다.
나는 계산을 위해 margin을 더한다.

<[email protected]> 
    size_hint_y: None 
    thickness: 2 
    margin: 2 
    height: self.thickness + 2 * self.margin 
    color: 1., .0, .0 
    canvas: 
     Color: 
      rgb: self.color 
     Rectangle: 
      pos: self.x + self.margin, self.y + self.margin + 1 
      size: self.width - 2 * self.margin , self.thickness 

은 BTW : 그것은 (왜하지만 나도 몰라) 잘 보이므로
나는 pos+1를 사용합니다.
왼쪽 및 오른쪽 여백을 추가합니다.

enter image description here

+0

그건 분리자를 위해 일했고, 국경을 위해서 나는 효과를 얻기 위해 다른 위젯을 동봉해야한다고 생각합니다. 또한 띄어쓰기 문제에 대해 나는 'pos : 0, separator.center_y'를 'pos : self.pos [0], separator.center_y'로 바꾸었다. – surpavan

+0

'separator.x' 또는'self.x 'self.pos [0]'대신에 더 읽기 쉽게 만들어줍니다. – furas

+0

호, 고마워, 나에 대한 업데이 트입니다. – surpavan

관련 문제