treemodel에서 채워지는 treeview가 있습니다.gtk의 기존 treemodel에 열을 추가 할 수 있습니까?
나는 트리 뷰에 열을 추가하고 싶습니다. 별도의 treemodel에서 해당 열의 데이터를 그릴 수 있습니까 아니면 런타임에 기존 treemodel에 열을 추가 할 수 있습니까?
treemodel에서 채워지는 treeview가 있습니다.gtk의 기존 treemodel에 열을 추가 할 수 있습니까?
나는 트리 뷰에 열을 추가하고 싶습니다. 별도의 treemodel에서 해당 열의 데이터를 그릴 수 있습니까 아니면 런타임에 기존 treemodel에 열을 추가 할 수 있습니까?
모델의 열 제한없이 필요한만큼 트리 뷰에 열을 추가 할 수 있습니다. 당신이 필요로하는 데이터 모델에 존재하지 않는 경우에, 당신은 열에 대한 콜백을 설정할 수 있습니다
import gtk
def inIta(col, cell, model, iter, mymodel):
s = model.get_string_from_iter(iter)
niter = mymodel.get_iter_from_string(s)
obj = mymodel.get_value(niter, 0)
cell.set_property('text', obj)
model = gtk.ListStore(str)
model2 = gtk.ListStore(str)
view = gtk.TreeView(model)
rend1 = gtk.CellRendererText()
col1 = gtk.TreeViewColumn('hello', rend1, text=0)
view.append_column(col1)
rend2 = gtk.CellRendererText()
col2 = gtk.TreeViewColumn('ciao', rend2)
col2.set_cell_data_func(rend2, inIta, model2)
view.append_column(col2)
model.append(['hello world'])
model2.append(['ciao mondo'])
win = gtk.Window()
win.connect('delete_event', gtk.main_quit)
win.add(view)
win.show_all()
gtk.main()
gtk.TreeView
개체에는 append_column
메서드가 있으므로 예 프로그래밍 방식으로 gtk.TreeView
에 열을 추가 할 수 있습니다.
그러나 기존 모델에 새 열을 추가하거나 동일한 모델에 대해 여러 개의 모델을 사용하는 방법을 알지 못합니다. gtk.TreeView
. 어쨌든, 여분의 열이있는 새 모델을 만들고 이전 모델의 내용을 복사 한 다음 트리보기를 업데이트하여 새 모델을 사용할 수 있다고 생각합니다.
제목의 질문에 대답하기 : 아니, 당신이 GtkTreeModel에 열을 추가 할 수는있었습니다 후 만들어진.
감사합니다. 그저 필요한 것입니다. 수치와 gtk에서 기본적으로 모델과 treeview 사이에 일대일 관계와 다 대 일 관계를 정의 할 수는 없다. 나는 이것이 이것이 데이터베이스 정보를 표현하는데 더 유용 할 것이라고 생각했을 것이다. –
나는 gtk 위에 빌드 된 라이브러리가 있다고 생각한다. [kiwi] (http://www.async.com.br/projects/kiwi/)는 하나이지만, 위에 또 다른 인터페이스를 빌드하는 또 다른 함수가 있다고 생각한다. 데이터베이스. –
@mg에 감사드립니다. 키위를 확인해 보겠습니다. –