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



Moderator




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