2009-07-24 30 views
5

Tôi đang sử dụng Glade 3 để tạo tệp GtkBuilder cho ứng dụng PyGTK tôi đang làm việc. Đó là để quản lý băng thông, vì vậy tôi có một gtk.ComboBox để chọn giao diện mạng để theo dõi.Làm cách nào để thêm các mục vào gtk.ComboBox được tạo thông qua glade khi chạy?

Làm cách nào để thêm chuỗi vào ComboBox khi chạy? Đây là những gì tôi có cho đến thời điểm này:

self.tracked_interface = builder.get_object("tracked_interface") 

self.iface_list_store = gtk.ListStore(gobject.TYPE_STRING) 
self.iface_list_store.append(["hello, "]) 
self.iface_list_store.append(["world."]) 
self.tracked_interface.set_model(self.iface_list_store) 
self.tracked_interface.set_active(0) 

Nhưng ComboBox vẫn trống. Tôi đã cố gắng RTFM'ing, nhưng chỉ cần đi xa hơn bối rối, nếu bất cứ điều gì.

Chúc mừng.

Trả lời

6

Hoặc bạn chỉ có thể tạo ra và chèn hộp combo mình sử dụng gtk.combo_box_new_text(). Sau đó, bạn sẽ có thể sử dụng phím tắt gtk cho văn bản append, insert, prependremove.

combo = gtk.combo_box_new_text() 
combo.append_text('hello') 
combo.append_text('world') 
combo.set_active(0) 

box = builder.get_object('some-box') 
box.pack_start(combo, False, False) 
5

Xin chào, tôi thực sự nhận được câu trả lời cho câu hỏi của riêng mình!

Bạn phải thêm gtk.CellRendererText vào đó cho nó để thực sự render:

self.iface_list_store = gtk.ListStore(gobject.TYPE_STRING) 
self.iface_list_store.append(["hello, "]) 
self.iface_list_store.append(["world."]) 
self.tracked_interface.set_model(self.iface_list_store) 
self.tracked_interface.set_active(0) 
# And here's the new stuff: 
cell = gtk.CellRendererText() 
self.tracked_interface.pack_start(cell, True) 
self.tracked_interface.add_attribute(cell, "text", 0) 

Lấy từ, tất nhiên, PyGTK FAQ.

Corrected dụ nhờ Joe McBride

2

Chỉ trong trường hợp bất cứ ai khác sử dụng này, dòng cuối cùng của mã nên là:

self.tracked_interface.add_attribute(cell, "text", 0) 

thay vì:

self.tracked_interface.(cell, "text", 0) 
+0

Tôi sẽ sửa câu trả lời của tôi. Cảm ơn! – Bernard

Các vấn đề liên quan