私はGtk +で少し練習しています。私は、作業メニュー付きのウィンドウを作成するためにabelしてきました。 テストオブジェクト(基本的に正方形で、辺の長さを入力するように求める)を作成してベクトルに格納できますが、リストすることはできません。私が欲しいものベクトルの内容をGtkで一覧表示する+
が格納されたオブジェクトのすべてをリストスクロールウィンドウを表示することで、何かのように:
_Square 1-side:7_
_Square 2-side:25_
今まで、私はに関する情報のスクロールテキストラベルを持つウィンドウが、どれを表示することができ格納されたオブジェクト ここに私が試したコードは次のとおり
Gtk::Dialog dialog("Listing Squares",false,true);
dialog.set_default_size(500,30);
Gtk::Button close("Close");
close.signal_clicked().connect(sigc::mem_fun(*this,&Window::onFileListButtonClose));
Gtk::VBox* vbox = dialog.get_vbox();
Gtk::ScrolledWindow sw;
sw.set_policy(Gtk::POLICY_AUTOMATIC,Gtk::POLICY_AUTOMATIC);
/** FETCH FROM ARRAY*/
for(unsigned int i(0); i<vc.size();++i){
Gtk::Label label("Square number " + i);
sw.add(label);
}
sw.show_all_children();
vbox->pack_start(sw);
vbox = 0;
dialog.add_action_widget(close,1);
dialog.show_all_children();
dialog.run();
[EDIT:]
1)VCはスタンダードである::ベクター。これはクラス属性です。
2)正方形の長さを入力してvcに格納するようにユーザーに指示するコード。
void Window::onMenuFileNew(void) {
Gtk::Dialog dialog("New Square",true,true);
dialog.set_default_size(70,20);
dialog.set_has_separator(true);
Gtk::Button close("Close");
entry.set_max_length(2);
entry.set_text("");
close.signal_clicked().connect(sigc::mem_fun(*this,&Window::onFileNewButtonClose));
Gtk::Label lab("Square side length:");
Gtk::VBox* vbox = dialog.get_vbox();
vbox->pack_start(lab);
vbox->pack_start(entry);
vbox = 0;
dialog.add_action_widget(close,1);
dialog.show_all_children();
dialog.run();
}
void Window::onFileNewButtonClose(void) {
int side = atoi((entry.get_text()).c_str());
vc.push_back(Cuadrado(side));
}
助けてください。 :)
PS:正方形をリストする前に、私はそれらのいくつかを作った!
'vc'を定義して移植するコードを提供する必要があります。それが空の場合はどうなりますか? – Irfy
そのコードで投稿を更新します! –
'for'ループでは、" Square number# "というテキストを含むラベルを追加するだけです。あなたはそのテキストを見ますか? 'Cuadrado'オブジェクトから情報を追加するために、ループ内にコードを追加するだけでよいでしょうか?実際にそのようなオブジェクトのコンテンツにアクセスできますか? – Irfy