Gtkmmでは、ListStoreを使ってGtk TreeViewを作成し、リスト内の列の1つをComboBoxTextにしたいと考えています。しかし、私はそれを行う方法を把握していないようです。ComboBoxをTreeView列に追加するにはどうすればよいですか?
class PlayerListColumns : public Gtk::TreeModelColumnRecord
{
public:
PlayerListColumns()
{ add(name); add(team);}
TreeModelColumn<string> name;
TreeModelColumn<ComboBoxText*> team;
}
そして、TreeViewコントロール(player_list_viewオブジェクト)
PlayerListColumns *columns = new PlayerListColumns();
Glib::RefPtr<ListStore> refListStore = ListStore::create(*columns);
player_list_view->set_model(refListStore);
ComboBoxText *box = manage(new ComboBoxText());
box->append("Blah");
box->append("Blah");
box->append("Blah");
TreeModel::Row row = *(refListStore->append());
row[columns->name] = "My Name";
row[columns->team] = box;
列 "名前" がうまく現れ、ないコンボボックスを設定するとき:
は、私は現在のようなルックスを持ってどのような。私はほぼ単に列の型としてコンボボックスへのポインタを持っていることは間違っていますが、私はそれがどのようになっているのかわかりません。私はGTK警告が表示されますか:
のGLib-GObjectの-WARNING **:プロパティ
text' of type
gchararrayを設定することができない '`型の値からGtkComboBoxText' の小さなビットから(示すように思わ
グーグル)は、非基本型のためのデフォルトのレンダラーは存在しないということです。しかし、問題があれば、私はそれを設定する方法の例を見つけることができませんでした。すべてのチュートリアルでは、プリミティブデータ型のTreeViewのみが表示されます。
誰でもComboBoxをTreeViewに配置する方法を知っていますか?