GtkD - how to list 0..100K strings
mark
mark at qtrac.eu
Sun Apr 26 08:06:53 UTC 2020
I'm trying to develop an application in GtkD.
I need a widget to display a list of strings: there could be
anything from 0 to 100K strings, but typically a few hundred or
thousand.
Using the DemoCustomList as a model I have created this code:
// Note: DebNames is an AAset!string (AAset is a wrapper around a
D AA, so in this case a set of strings)
// namestore.d
import gtk.ListStore: ListStore;
class NameStore : ListStore {
this(DebNames names) {
import gobject.c.types: GType;
import gtk.TreeIter: TreeIter;
super([GType.STRING]);
TreeIter iter;
foreach (name; names) {
append(iter);
setValue(iter, 0, name);
}
}
}
// appwindow.d
final class AppWindow: ApplicationWindow {
TreeView debsTreeView;
NameStore nameStore;
// ...
private void populateNames(DebNames names) {
import gtk.CellRendererText: CellRendererText;
import gtk.TreeViewColumn: TreeViewColumn;
nameStore = new NameStore(names);
auto column = new TreeViewColumn;
auto renderer = new CellRendererText;
column.packStart(renderer, true);
column.addAttribute(renderer, "text", 0);
column.setTitle("Names");
debsTreeView.appendColumn(column);
}
}
When populateNames() is called the treeview expands horizontally
but shows nothing, so I'm stuck.
Can anyone help?
Note that I don't have to use a tree widget if there's a better
one for this use case. I did see ListBox but that seemed to be a
list of widgets which would be a bit heavy for 100K strings?
More information about the Digitalmars-d-learn
mailing list