2017-01-16 11 views
0
from kivy.app import App 
from kivy.uix.label import Label 
from kivy.uix.floatlayout import FloatLayout 
from kivy.uix.gridlayout import GridLayout  
class Grid(GridLayout): 
    pass 
class UcoeApp(App): 
    def build(self): 
     return Grid() 
UcoeApp().run() 

ucoe.kv файл выглядит следующим образом:Невозможно сделать простой макет сетки с 4-мя кнопками в kivy

<Grid>: 
GridLayout: 
    cols:2 
    row_force_default:True 
    row_default_height:40 

Button: 
    text:"hello1" 
    size_hint_x:None 
    width=100 
Button: 
    text:"world1" 


Button: 
    text:"hello2" 
    size_hint_x:None 
    width:100 
Button: 
    text:"world2" 

, но я получаю ошибку следующим образом: Файл «/ USR/Библиотека/python3/dist-packages/kivy/lang.py ", строка 1440, в parse_level « Недопустимые данные после объявления ») kivy.lang.ParserException: Parser: Файл« /home/dimple/ucoe.kv », строка 4: ... 2: GridLayout: 3: cols: 2

4: row_force_default: Правда 5: row_default_height: 40 6:
... Недействительные данные после заявления Пожалуйста, помогите, я новичок в kivy.

ответ

0

Есть много ошибок в yr-коде.

  • Кнопка импорта
  • в .kv при ширине кнопки = 100 (неправильно)
  • удалить GridLayout в .kv не требуется.

Ниже приводится обновленный и действующий код.

from kivy.uix.button import Button 
from kivy.app import App 
from kivy.uix.label import Label 
from kivy.uix.floatlayout import FloatLayout 
from kivy.uix.gridlayout import GridLayout  
class Grid(GridLayout): 
    pass 
class UcoeApp(App): 
    def build(self): 
     return Grid() 
UcoeApp().run() 

ucoe.kv Файл =>

<Grid>: 
    cols:2 
    row_force_default:True 
    row_default_height:40 
    Button: 
     text:"hello1" 
     size_hint_x:None 
     width:100 
    Button: 
     text:"world1" 
    Button: 
     text:"hello2" 
     size_hint_x:None 
     width:100 
    Button: 
     text:"world2" 
0

Edit, как вы считаете нужным.

main.py

from kivy.uix.button import Button 
from kivy.app import App 
from kivy.uix.gridlayout import GridLayout  
from kivy.lang import Builder 


class Grid(GridLayout): 
    pass 


presentation = Builder.load_file("main.kv") 

class UcoeApp(App): 
    def build(self): 
     return Grid() 


UcoeApp().run() 

main.kv

<[email protected]>: 
    cols:2 
    Button: 
     text:"hello1" 
     size: self.size 
    Button: 
     text:"world1" 
     size: self.size 
    Button: 
     text:"hello2" 
     size: self.size 
    Button: 
     text:"world2" 
     size: self.size 

 Смежные вопросы

  • Нет связанных вопросов^_^