[GTKmm] Problem beim Label hinzufügen
-
Hallo erstmal,
ich hab ein Programm das sieht folgendermaßen aus:
http://www.fv-24.de/screenshot_mst-ng.pngBei diesem wird der Organizer Tab folgendermaßen gebildet:
// Organizer Tab // Gtk::VBox *orga_tab; Gtk::HBox *orga_calendar_container; Gtk::Calendar *orga_calendar; void on_calender_date_selected(); Gtk::VBox *orga_result; Gtk::ScrolledWindow *orga_result_scroll; // Organizer Tab End //
/*** Organizer Tab ***/ orga_tab = new Gtk::VBox(false, 5); // General container for the content of the Tab orga_calendar_container = new Gtk::HBox(false, 0); // Container for the Calendar orga_calendar = new Gtk::Calendar(); // the Calendar orga_calendar_container->pack_start(*orga_calendar, Gtk::PACK_EXPAND_PADDING, 5); Gtk::Label *test = new Gtk::Label("Test", 0, 0); Gtk::EventBox *test_box = new Gtk::EventBox(); // EventBox for the Label test_box->modify_bg(Gtk::STATE_NORMAL, Gdk::Color("#ffffb5")); // Set a backgroundcolor for the Label/EventBox test_box->add(*test); orga_result = new Gtk::VBox(); // a VBox for the Label/EventBox orga_result->pack_start(*test_box, Gtk::PACK_EXPAND_WIDGET, 0); // set a HPadding for the Label/EventBox orga_result_scroll = new Gtk::ScrolledWindow(); orga_result_scroll->set_policy(Gtk::POLICY_AUTOMATIC,Gtk::POLICY_AUTOMATIC); orga_result_scroll->set_shadow_type(Gtk::SHADOW_NONE); orga_result_scroll->add(*orga_result); orga_tab->pack_start(*orga_calendar_container, Gtk::PACK_SHRINK, 5); // add Calendar orga_tab->pack_start(*orga_result_scroll, Gtk::PACK_EXPAND_WIDGET, 5); // add Label for the results
Nun hab ich ein Event darauf gelegt, dass das Datum im Kalender verändert wird.
In diesem Event soll ein weiteres Label hinzugefügt werden. Folgender Code:guint year; guint month; guint day; orga_calendar->get_date(year, month, day); month++; vector<int> result_array = organizer->getDates(day, month, year); std::cout << "test1" << std::endl; // DEBUG Gtk::Label *blubb = new Gtk::Label("Tdfdsfsdf", 4, 2); Gtk::EventBox *blubb_box = new Gtk::EventBox(); // EventBox for the Label blubb_box->modify_bg(Gtk::STATE_NORMAL, Gdk::Color("#ffffb5")); // Set a backgroundcolor for the Label/EventBox blubb_box->add(*blubb); orga_result->pack_end(*blubb_box, Gtk::PACK_EXPAND_WIDGET, 0); std::cout << "test2" << std::endl; // DEBUG
Hier sind eigentlich nur die Zeilen ab dem "test1" interessant, denn diese haben keine Wirkung. Es kommt auch keine Errormeldung. Jemand eine Idee warum dies so ist? Liegts an dem ScrolledWindow oder an den EventBoxen für die Farbe?
MfG
Es_lebt
-
Was bedeutet der Parameter 0 am Ende von
orga_result->pack_end()
? (Bin zu faul nachzuschauen)
Ansonsten könntest du mal
orga_result->show_all_children()
aufrufen.
-
Die 0 am Ende ist der Platz der um das Widget gelassen werden soll.
Und
orga_result->show_all_children()
hat das Problem gelöst, danke! (Auf die einfachsten Lösungen zu kommen dauert immer am längsten