如何在 Vala 中显示带有虚拟数据的 GtkTreeView
How to display GtkTreeView with dummy data in Vala
我正在尝试使用 Vala 在 GtkApplication Window 中显示带有一些虚拟数据的 GtkTreeView。
问题是 window 似乎是空的,但在使用 GtkInspector 仔细查看后,我可以看到 GtkTreeView 在那里但看起来是空的,即使模型设置正确并且它有适当的数据。
我目前的代码是:
main_window.vala:
using GLib;
using Gtk;
namespace MediaOrganizer
{
public class MainWindow: Gtk.ApplicationWindow
{
/* public constructor(s)/destructor*/
public MainWindow(string title)
{
Object(
border_width : 0,
window_position : WindowPosition.CENTER
);
header_ = new Gtk.HeaderBar();
fileModel_ = new FilesystemModel();
fileView_ = new Gtk.TreeView();
mainLayout_ = new Gtk.Box(Gtk.Orientation.VERTICAL, 0);
this.set_default_size(800, 480);
header_.set_title(title);
header_.set_show_close_button(true);
this.set_titlebar(header_);
fileView_.set_model(fileModel_);
this.size_allocate.connect(on_size_changed);
mainLayout_.add(fileView_);
add(mainLayout_);
}
void on_size_changed(Gtk.Allocation size)
{
}
/* private variables */
private Box mainLayout_;
private Gtk.HeaderBar header_;
private FilesystemModel fileModel_;
private Gtk.TreeView fileView_;
}
}
filesystem_model.vala:
using GLib;
using Gtk;
namespace MediaOrganizer
{
public class FilesystemModel: Gtk.TreeStore
{
public FilesystemModel()
{
GLib.Type columnTypes[2] = {
typeof(int),
typeof(string)
};
set_column_types(columnTypes);
Gtk.TreeIter it;
append(out it, null);
set_value(it, 0, 0);
set_value(it, 1, "aaaa");
append(out it, null);
set_value(it, 0, 1);
set_value(it, 1, "bbbb");
append(out it, null);
set_value(it, 0, 2);
set_value(it, 1, "cccc");
}
}
}
为商店的每一列添加一个 TreeViewColumn:http://valadoc.org/#!api=gtk+-3.0/Gtk.TreeView
我正在尝试使用 Vala 在 GtkApplication Window 中显示带有一些虚拟数据的 GtkTreeView。
问题是 window 似乎是空的,但在使用 GtkInspector 仔细查看后,我可以看到 GtkTreeView 在那里但看起来是空的,即使模型设置正确并且它有适当的数据。
我目前的代码是:
main_window.vala:
using GLib;
using Gtk;
namespace MediaOrganizer
{
public class MainWindow: Gtk.ApplicationWindow
{
/* public constructor(s)/destructor*/
public MainWindow(string title)
{
Object(
border_width : 0,
window_position : WindowPosition.CENTER
);
header_ = new Gtk.HeaderBar();
fileModel_ = new FilesystemModel();
fileView_ = new Gtk.TreeView();
mainLayout_ = new Gtk.Box(Gtk.Orientation.VERTICAL, 0);
this.set_default_size(800, 480);
header_.set_title(title);
header_.set_show_close_button(true);
this.set_titlebar(header_);
fileView_.set_model(fileModel_);
this.size_allocate.connect(on_size_changed);
mainLayout_.add(fileView_);
add(mainLayout_);
}
void on_size_changed(Gtk.Allocation size)
{
}
/* private variables */
private Box mainLayout_;
private Gtk.HeaderBar header_;
private FilesystemModel fileModel_;
private Gtk.TreeView fileView_;
}
}
filesystem_model.vala:
using GLib;
using Gtk;
namespace MediaOrganizer
{
public class FilesystemModel: Gtk.TreeStore
{
public FilesystemModel()
{
GLib.Type columnTypes[2] = {
typeof(int),
typeof(string)
};
set_column_types(columnTypes);
Gtk.TreeIter it;
append(out it, null);
set_value(it, 0, 0);
set_value(it, 1, "aaaa");
append(out it, null);
set_value(it, 0, 1);
set_value(it, 1, "bbbb");
append(out it, null);
set_value(it, 0, 2);
set_value(it, 1, "cccc");
}
}
}
为商店的每一列添加一个 TreeViewColumn:http://valadoc.org/#!api=gtk+-3.0/Gtk.TreeView