2016-06-06 5 views
0

Ich versuche, einen Datumswert von einem Kalender in Python Gtk3 zu bekommen. Der Kalender befindet sich in einem Dialog. Ich habe den folgenden Code:Get Kind von Box in einem Dialogfeld in Python Gtk3

import gi 

gi.require_version('Gtk', '3.0') 
from 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") 
      a = 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() 

Ich scheine kippe den Datumswert aus dem Kalender zu erhalten. Es gibt mir Box-Objekt hat keine Attributbox. Ich habe auch versucht, get_child mit dem gleichen Ergebnis zu verwenden. Die Box könnte in Zukunft zwei Kinder, einen Kalender und ein anderes Widget haben. Wie erhalte ich das Datum aus dem Kalender?

Antwort

0

Dies kann durch die Verwendung von selbst gelöst werden.

import gi 

gi.require_version('Gtk', '3.0') 
from 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") 
      a = 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()