[gtkmm] Mehrere Bilder (dynamisch) einbinden.
-
Hallo,
ich habe mich entschlossen gtkmm als Wrapper für mein Projekt 'Binäre Uhr' zu benutzen.
Ich habe eine Array[6][3] wobei ein Element entweder 0 oder 1 ist.
Nun würde ich dieses Gitter gerne grafisch durch 2 Bilder zeichnen lassen.
Einmal das Bild für den 1-Status und für den 0-Status.Bis hierher geht's ja noch :>
Das hier ist ein Beispiel, wie man ein Image lädt:
// Gtk::Image example by Fredrik Arnerup (e97_far@e.kth.se) // build with // g++ -o image image.cc $(pkg-config --cflags --libs gtkmm-2.4) #include <gtkmm.h> #include <iostream> class Window: public Gtk::Window { public: Window(const std::string &filename) { set_title(filename); add(*manage(new Gtk::Image(filename))); show_all(); } }; int main(int argc, char **argv) { if(argc == 2) { Gtk::Main kit(argc, argv); Window window(argv[1]); Gtk::Main::run(window); } else std::cerr << "usage: " << argv[0] << " imagefile" << std::endl; return 0; }
Ich hab hier leider keine Ahnung, wie ich mehrere Images einbinde. Ich würde es gerne dynamisch über eine Schleife machen, aber auch schon statisch wär das okay... Hab schon ewig gegoogelt und finde sehr wenig Material, obschon gtkmm als c++ wrapper doch beliebt sein sollte
Über einen Link oder Beispielsnippet wäre ich sehr glücklich.
Vielen Dank für's Lesen.
-
Habe einfach auf gut Glück probiert ein zweites Gtk::Image einzubinden. Kommt Folgendes bei heraus.
(image:12756): Gtk-WARNING **: Attempting to add a widget with type gtkmm__GtkImage to a gtkmm__GtkWindow, but as a GtkBin subclass a gtkmm__GtkWindow can only contain one widget at a time; it already contains a widget of type gtkmm__GtkImage
Da findest Du eine recht ausführliche Dokumentation.
http://www.gtkmm.org/docs/gtkmm-2.4/docs/index.html
-
Ich verkneife mir mal meinen Zynismus.
Erstmal, danke, dass du Lebenszeit für mich geopfert hast.
Leider hilfst du mir nicht.
Ich hab auch schon auf mehrere Weisen versucht mehrere GTK::Images einzubinden und auch schon den gleichen Fehler wie du bekommen.Die Dokumentation, die eigentlich eine Referenz ist, hatte ich auch schon als Lesezeichen aufgenommen, aber sie scheint uns beiden nicht geholfen zu haben, oder?
Bitte erfahrener gtkmm user, unterstütze mich!
Danke.
-
http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/ch03s02.html
http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/ch07.htmlwas für dich aber interessanter sein dürfte
http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/ch14.htmltrotzdem solltest du dir mal angucken, wie man in GTKmm Widgets platziert
-
In ein Gtk::Window kann man nur ein einziges Widget packen, da es keine Containerklasse ist. Du musst also eine Containerklasse (z.B. VBox, HBox oder Table - fuer eine Uebersicht siehe Docu im Netz oder zweiter Link von kingruedi) in deine Window-Klasse packen. In diesen Container kannst du dann wiederum Widgets packen.
Packe also zum Beispiel eine VBox, HBox oder Table in dein Window und dann kannst du in diese VBox, HBox oder Table mehrere Bilder packen.
-
aber Gtk::Window ist doch von Gtk::Container abgeleitet (dazwischen noch Gtk::Bin)
-
Nimm einfach Glade.
-
hmmmmmmm schrieb:
aber Gtk::Window ist doch von Gtk::Container abgeleitet (dazwischen noch Gtk::Bin)
Ja und Gtk::Bin sagt, dass der Container nur 1 Element aufnehmen kann. Lest bitte die Links, die ich gepostet habe. Die sind sehr informativ