i'm trying date value calendar in python gtk3. calendar inside dialog. have following code:
import gi gi.require_version('gtk', '3.0') gi.repository import gtk class mytest(gtk.window): def __init__(self): gtk.window.__init__(self, title="titulo") self.connect("delete_event", gtk.main_quit) self.set_border_width(6) button = gtk.button("open dialog") button.connect("clicked", self.on_button_clicked) self.add(button) def on_button_clicked(self, widget): dialog = dialogexample(self) response = dialog.run() if response == gtk.responsetype.ok: print("ok") = dialog.box.cal date = a.get_date() print(date) elif response == gtk.responsetype.cancel: print("cancel") dialog.destroy() class dialogexample(gtk.dialog): def __init__(self, parent): gtk.dialog.__init__(self, "my dialog", parent, 0, (gtk.stock_cancel, gtk.responsetype.cancel, gtk.stock_ok, gtk.responsetype.ok)) self.set_default_size(150, 100) box = self.get_content_area() box.set_border_width(6) cal = gtk.calendar() box.add(self.cal) self.show_all() window = mytest() window.show_all() gtk.main()
i cant seem date value calendar. gives me box object has no attribute box. tried using get_child same result. box may in future have 2 children, calendar , other widget. how date calendar?
this can solved using self.
import gi gi.require_version('gtk', '3.0') gi.repository import gtk class mytest(gtk.window): def __init__(self): gtk.window.__init__(self, title="titulo") self.connect("delete_event", gtk.main_quit) self.set_border_width(6) button = gtk.button("open dialog") button.connect("clicked", self.on_button_clicked) self.add(button) def on_button_clicked(self, widget): dialog = dialogexample(self) response = dialog.run() if response == gtk.responsetype.ok: print("ok") = dialog.cal date = a.get_date() print(date) elif response == gtk.responsetype.cancel: print("cancel") dialog.destroy() class dialogexample(gtk.dialog): def __init__(self, parent): gtk.dialog.__init__(self, "my dialog", parent, 0, (gtk.stock_cancel, gtk.responsetype.cancel, gtk.stock_ok, gtk.responsetype.ok)) self.set_default_size(150, 100) self.box = self.get_content_area() self.box.set_border_width(6) self.cal = gtk.calendar() self.box.add(self.cal) self.show_all() window = mytest() window.show_all() gtk.main()