2014-06-12 3 views
1

뭔가 실망한 시간을 보낸 후 (GTK-2에서) 내 질문에 간단한 것이 될 것으로 기대합니다. 이 질문에 코드 또는 세부 사항이 부족해서 죄송합니다. 나는 전혀 작동하지 않습니다.Glade, python, GTK3 : 데이터 목록보기

데이터베이스의 일부 데이터를 가져 와서 테이블 형식으로 제공해야하는 응용 프로그램을 작성하고 있습니다. 표준 물건, 나는 말하고 싶다. 나는 그것을하는 방법을 알아낼 수 없다. 내 창에서 ListStore 이상을 가지고 있기 때문에 자습서가 없습니다 (저기있는 것들은 저를 위해 작동하지 않습니다). Glade에서 UI를 디자인하고 있습니다. 목록이있는 장소를 비롯하여 여러 가지 요소가 포함 된 노트가있는 노트가 있습니다.

ListStore 개체를 추가하려고했지만 표시 할 수 없습니다. 파이썬 2.7.6, 글 레이드 3.16.1.

self.liststore = self.builder.get_object('liststore1') 
    self.liststore.append(['1st column','2nd column']) 

이것은 데이터를 표시하는 것으로 가정합니다. Glade에서 ListStore를 미리보기로 표시 할 수 없으며 최상위 오브젝트로 추가 할 수 있습니다.

+0

ListStore에 바인딩 된 TreeView를 설정하고 있습니까? TreeView 및 ListStore에 대한 빈약 한 XML의 쌍을 이루는 스 니펫이 도움이 될 것입니다. –

+0

내가 뭘하는지 더 이상 알지 못합니다. 너무 많이 시도했습니다! 이것에 대한 유용한 튜토리얼과 닮은 것이 부족하다는 것이 문제의 일부입니다. 마침내 목록보기를 보여줄 수있는 뭔가를 얻었습니다 - 자습서 중 하나에 코드 조각을 적용하여 -하지만 hacky, glade를 사용하지 않고 데이터를 업데이트 할 수는 없습니다 ... 나는 총 항목 목록을 보여주는 것처럼 기본 사항을 수행하는 방법에 대한 손실. – Wouter

+0

기본적으로 완전한 예제가 필요합니다. – Wouter

답변

0

이것은 두 개의 항목이있는 하나의 열만 보여주는 매우 기본적인 예입니다. 숲 사이의 빈터 파일에 생성 된 그 중 하나, 파이썬으로 작성 다른 하나는 그래서 당신은 liststore을 수정하는 방법을 볼 수 있습니다

숲 사이의 빈터 파일 :

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Generated with glade 3.16.1 --> 
<interface> 
    <requires lib="gtk+" version="3.10"/> 
    <object class="GtkListStore" id="liststore1"> 
    <columns> 
     <!-- column-name test --> 
     <column type="gchararray"/> 
    </columns> 
    <data> 
     <row> 
     <col id="0" translatable="yes">entry</col> 
     </row> 
    </data> 
    </object> 
    <object class="GtkWindow" id="window1"> 
    <property name="can_focus">False</property> 
    <property name="default_width">247</property> 
    <property name="default_height">188</property> 
    <child> 
     <object class="GtkTreeView" id="treeview1"> 
     <property name="visible">True</property> 
     <property name="can_focus">True</property> 
     <property name="model">liststore1</property> 
     <child internal-child="selection"> 
      <object class="GtkTreeSelection" id="treeview-selection1"/> 
     </child> 
     <child> 
      <object class="GtkTreeViewColumn" id="treeviewcolumn1"> 
      <property name="title" translatable="yes">test-column</property> 
      <child> 
       <object class="GtkCellRendererText" id="cellrenderertext1"/> 
       <attributes> 
       <attribute name="text">0</attribute> 
       </attributes> 
      </child> 
      </object> 
     </child> 
     </object> 
    </child> 
    </object> 
</interface> 

그리고 이것은 파이썬 파일입니다

from gi.repository import Gtk 

class Test: 
    def __init__(self): 
     builder = Gtk.Builder() 
     builder.add_from_file('test.glade') 

     self.liststore = builder.get_object('liststore1') 
     #append something with python: 
     self.liststore.append(('stackoverflow',)) 

     window = builder.get_object('window1') 
     window.connect('delete-event', Gtk.main_quit) 
     window.show_all() 

if __name__ == '__main__': 
    Test() 
    Gtk.main() 
관련 문제