2017-07-17 12 views
0

私はos xのPyinstallerでパッケージ化したシンプルなテーブルアプリケーションを持っています。私はmain.pyを実行すると、ウィジェットが正しく表示されます。パッケージ化されたKivyアプリが視覚的に間違っています

Correct view

.appなどのラベルのサイズをdocsに従ってアプリをパッケージ化して開いた後台無しにされています。実際に、他のウィジェットがあれば、それも正しくサイズ変更されません。

enter image description here

多分これを引き起こしていることを一般的には私のkvまたはコードに問題はありますか?私は一週間パッケージ化しようとしている大きなアプリを持っているし、この最後のビットに物事を取得しました。

その他の情報:私はMac Yosemiteにいます。必要に応じてログを提供できますが、エラーは表示されません。ここで

は、あなたがあなたのサイズでdpまたはspを使用する必要がありますmain.py

from kivy.app import App 
from kivy.uix.label import Label 
from kivy.uix.scrollview import ScrollView 
from kivy.properties import BooleanProperty, ObjectProperty 
from kivy.lang import Builder 

kv = """ 
<Cell>: 
    size_hint: (None, None) 
    width: 400 
    height: 60 
    canvas.before: 
     Color: 
      rgba: [0.23, 0.23, 0.23, 1] if self.is_even else [0.2, 0.2, 0.2, 1] 
     Rectangle: 
      pos: self.pos 
      size: self.size 

<Table>: 
    grid: grid 
    bar_width: 25 
    scroll_type: ['bars', 'content'] 
    bar_color: [0.4, 0.7, 0.9, 1] 
    bar_inactive_color: [0.2, 0.7, 0.9, .5] 
    do_scroll_x: True 
    do_scroll_y: True 
    GridLayout: 
     id: grid 
     cols: 15 
     rows: 30 
     size_hint: (None, None) 
     width: self.minimum_width 
     height: self.minimum_height 
""" 

Builder.load_string(kv) 


class Cell(Label): 
    is_even = BooleanProperty(None) 


class Table(ScrollView): 

    grid = ObjectProperty(None) 

    def __init__(self, *args, **kwargs): 
     super(Table, self).__init__(*args, **kwargs) 

     for i in range(30): 
      for j in range(15): 
       text = "data row: {}, column: {}".format(i, j) 
       self.grid.add_widget(Cell(text=text, is_even=i % 2 is 0)) 


class TestApp(App): 
    def build(self): 
     return Table() 


if __name__ == '__main__': 
    TestApp().run() 
+0

おそらくあなたはあなたのサイズでdpまたはspを使う必要があります。 https://kivy.org/docs/api-kivy.metrics.html – frmdstryr

+0

をご覧くださいありがとう!私はそれが問題だと思う。答えをつけて、あなたが望むならそれをマークします。 – Mox

答えて

関連する問題