Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Mam okno nadrzędne[1] posiadające wewnątrz widget typu scrolledwindow, do którego potrzebuje załadować (najlepiej) całe okno, lub choćby jeden vbox z okna podrzędnego[2].
Każde z tych okien przynależy do obiektów typu libglade, definiowanych w odpowiednich klasach[3] i [4]
Próbowałem w konstruktorze obiektu okna nadrzędnego tworzyć nowy obiekt okna podrzędnego, następnie dodawać potomków do scrolledwindow przy pomocy funkcji add(widget) - jednak piszczał mi o potrzebie reparent (przeojcowania??) widgetów - zajrzałem na gtk FAQ - jednak efektów nie uzyskałem. Jeszcze kilka guseł odprawiałem, lecz nic wymiernego nie dostałem ;/
Pliki glade'a z projektami okien:
[1] - http://fatcat.ftj.agh.edu.pl/~przyboro/other/jagabase/oldzam.glade
[2] - http://fatcat.ftj.agh.edu.pl/~przyboro/other/jagaba … subform.glade
Źródła:
[3] - http://fatcat.ftj.agh.edu.pl/~przyboro/other/jagabase/OldZam.java
[4] - http://fatcat.ftj.agh.edu.pl/~przyboro/other/jagabase/ZamSubForm.java
//EDIT:
Ten upał mi nie służy...;/
Osiągnąłem postęp. Zrzutowałem widget typu GtkVBox na zmienną typu vbox i teraz udało sie przeparentowac. Tylko jeszcze nie wygląda to załadnie ;-)
//EDIT2:
Robimy tak:
Okno nadrzędne:
Wewnątrz kontenera typu GtkScrolledWindow umieszczamy GtkViewport a w nim GtkVBox.
widget GtkViewport nazwijmy viewport1, a box'a - vbox1.
W oknie podrzędnym interesujący nas widget typu GtkVBox nazwijmy vbox2.
Kod konstruktora obiektów klasy odpowiedzialnej za okno nadrzędne (odpowiednie zmienne sa wczesniej zadeklarowane oczywiście):
_scrolledWindow = (ScrolledWindow) _gladeWindow.getWidget("scrolledWindow"); _viewport1 = (Viewport) _gladeWindow.getWidget("viewport1"); _obiektPodrzedny = new Podrzedny[10]; _vbox1 = new VBox[10]; for(int i=0;i<10;i++) { //rzutujemy widget na zmienną za niego odpiewiedzialną _vbox1[i] = (VBox) _gladeWindow.getWidget("vbox1"); //dodajemy widgeta potomnego do viewport _viewport1.add(_vbox1[i]); //tworzymy nowy obiekt klasy Podrzedny _obiektPodrzedny[i] = new Podrzedny(); //przeparentowanie (czy jak to zwią ;-) ) - musi być _obiektPodrzedny[i]._vbox2.reparent(_vbox1[i]); //dodanie widgeta potomnego do viewport _viewport1.add(_obiektPodrzedny[i]._vbox2); }
Wiem, że pokrętnie opisane ale chodzi o to by z tych dwóch okien
uzyskać takie jedno ;-)
Offline
Strony: 1