非常に長いテキスト入力を含む可能性があるComboboxesを使用しているので、コンボボックスの幅を合理的なサイズをはるかに超えて広げる の 私は最大幅をコンボボックス。コンボボックスのGtk(mm)制限幅
私はこのようにこれをやっている場合:
class MyCombo : public Gtk::ComboBox {
private:
CellRendererText render;
public:
MyCombo() {
render.property_width_chars() = 10;
render.property_ellipsize() = Pango::ELLIPSIZE_END;
pack_start(render, true);
}
};
結果は、私は、表示する列を指定していなかったので、論理的なようで所望の幅の空のセルになります。しかし、私はその試みでこれをどうやって行うことができますか?レンダラをバイパスちょうどます使用pack_start
...
別のアプローチは、このいずれかになります。
class MyCombo : public Gtk::ComboBox {
private:
CellRendererText render;
public:
MyCombo() {
pack_start(render, true);
set_cell_data_func(render, sigc::mem_fun(*this, &MyCombo::render_iter));
}
void render_iter(const TreeModel::const_iterator& iter) {
Glib::ustring data = get_string_from_iter(iter);
int desired_width_chars = 10; //for example
render.property_text() = ellipsize_string(data, desired_width_chars);
}
};
そのアプローチを使用して、それは動作しますが、ポップアップのテキストが(何uはコンボボックスをクリックすると開きます)また、私は望んでいないものが短くなっています(明らかに、ユーザーは文字列全体を読むことができるはずです。)
私にこれを手伝ってもらえますか?私は、アドバイス/代替ソリューションに満足しています。
よろしくは
コンボボックスの幅を制限したいが、コンボボックスの幅を制限したくないのですか? – theGtknerd
。そして、これは一般的な行動であると思われるので、私は本当に必死です。( – tagelicht