Miten voin muuttaa ikkunan sisältöä GTK:ssa kun on kokoruudun kokoinen aloitusvalikko, josta sitten painetaan nappulaa ja sitten vaihtuisi ikkunan sisältö sen mukaan.
Olen yrittänyt tehdä sen näin
import sys import os import gtk class Ohjelma(object): def __init__(self): self.builder = gtk.Builder() self.builder.add_from_file("GUI/main.xml") self.builder.connect_signals(self) self.main_window = self.builder.get_object("main_window") self.main_window.fullscreen() def on_main_window_destroy(self,data=None): gkt.main_quit() def on_switch_button_clicked(self,data=None): self.main_window.hide() self.builder.add_from_file("GUI/second.xml") self.builder.connect_signals(self) self.second_window = self.builder.get_object("second_window") self.second_window.fullscreen() def on_exit_button_clicked(self,data=None): gtk.main_quit() if __name__ == "__main__": app = Ohjelma() gtk.main()
mutta ongelmana tuossa on se, että ikkunan vaihtumisessa tulee viive, jonka erottaa silmällä hyvin eli siis ensimmäinen ikkuna sammuu ja viiven jälkeen tulee toinen ikkuna tilalle.
Onko siis jotain näppärämpää tapaa tehdä tuo ilman viivettä?
Saattaisi auttaa jos siirrät nuo toisen ikkunan lataukset ennen pääikkunan piilotusta.
Muita vaihtoehtoja mitä tulee mieleen, on että et piilota pääikkunaa ollenkaan vaan lataat toisesta ikkunasta ylimmän lapsi widgetin ja reparentoit sen pääikkunaan. Mahdollisesti pääikkunan ylin lapsi täytyy tuhota ensin. En ole tätä testannut eikä toiminnasta ole mitään takuita. Toinen tapa on että lisäät molemmat sisällöt samaan ikkunaan GtkNotebookiin eri sivuille. Notebookista voi sitten poistaa borderin ja tabit näkyvistä ja kaikki ylimääräiset paddingit nollaan niin Notebook on melko näkymätön. Sitten vain tuossa switch_button metodissa vaihdat Notebookin sivun.
/K
Aihe on jo aika vanha, joten et voi enää vastata siihen.