ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • kivy에서 multicolumn listview 구현
    Android/kivy 2015. 11. 5. 04:28



    구글링한 결과 + 짐작 으로 만든거라.. 먼가 이상한 점들이 많을지도 모릅니다...ㅡㅠ

    안드로이드폰에 올릴려고 했더니 아쉽게도 freetds-dev문제 때문에 안되네요.


    1. from kivy.adapters.dictadapter import DictAdapter  
    2. from kivy.uix.listview import ListItemButton, \  
    3.         CompositeListItem, ListView  
    4. from kivy.uix.boxlayout import BoxLayout  
    5. from kivy.lang import Builder  
    6. from kivy.app import App  
    7.   
    8. from kivy.clock import Clock  
    9.   
    10.   
    11. import _mssql  
    12.   
    13.   
    14. Builder.load_string(""" 
    15. <MultiListView>: 
    16. #    ListView: 
    17. #        adapter: root.myadapter 
    18. """)  
    19.   
    20. class MultiListView(BoxLayout):  
    21.   
    22.   
    23.     def __init__(self, **kwargs):  
    24.   
    25.         super(MultiListView, self).__init__(**kwargs)  
    26.   
    27.         args_converter = \  
    28.             lambda row_index, rec: \  
    29.                 {'text': rec['ip'],  
    30.                  'is_selected':rec['is_selected'],  
    31.                  'size_hint_y'None,  
    32.                  'height'55,  
    33.                  'cls_dicts': [{'cls': ListItemButton,  
    34.                                 'kwargs': {'text': rec['ip'],  
    35.                                            'width':250,  
    36.                                            }},  
    37.   
    38.                                {'cls': ListItemButton,  
    39.                                 'kwargs': {'text': rec['time'],  
    40.                                            'width':250,  
    41.                                            }}]}  
    42.   
    43.         self.myadapter = DictAdapter(  
    44.                           sorted_keys=[1],  
    45.                           data="",  
    46.                           args_converter=args_converter,  
    47.                           cls=CompositeListItem,  
    48.                           selection_mode='single',  
    49.                           allow_empty_selection=True)  
    50.   
    51.         self.add_widget(ListView(adapter=self.myadapter))  
    52.   
    53.   
    54.         Clock.schedule_interval(self.update_list_data, 1)  
    55.   
    56.   
    57.     def update_list_data(self, dt):  
    58.         conn = _mssql.connect(server='서버아이피', user='아이디',  
    59.                       password='패스워드', database='데이터베이스 이름')  
    60.   
    61.   
    62.         conn.execute_query('SELECT * FROM STATE ORDER BY CURDATE DESC')  
    63.   
    64.         self.item = {}  
    65.         i=0;  
    66.         for row in conn:  
    67.             self.item[i] = {'ip'"IP=%s" % (row['IP']), 'is_selected'False,  
    68.                             'time'"TIME=%s" % ( row['CURTIME'])}  
    69.             i = i + 1  
    70.   
    71.         conn.close()  
    72.   
    73.         self.myadapter.data =self.item  
    74.   
    75.   
    76.   
    77.   
    78.   
    79. class TestApp(App):  
    80.     def build(self):  
    81.         return MultiListView()  
    82.   
    83. if __name__ == '__main__':  
    84.     TestApp().run()  


    포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
    댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

    여러분의 응원으로 좋은 컨텐츠가 만들어집니다. 지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

    유튜브 구독하기


    댓글 0

Designed by Tistory.