57 lines
2.0 KiB
Python
Executable File
57 lines
2.0 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# [SNIPPET_NAME: gtk3 calendar widget with menu]
|
|
# [SNIPPET_CATEGORIES: gtk3]
|
|
# [SNIPPET_TAGS: widgets, gtk3]
|
|
# [SNIPPET_DESCRIPTION: GTK3 calendar example and drop down menu example]
|
|
# [SNIPPET_AUTHOR: Oliver Marks ]
|
|
# [SNIPPET_LICENSE: GPL]
|
|
from gi.repository import Gtk, GLib, GObject
|
|
|
|
|
|
class application_gui:
|
|
"""Tutorial 08 menu, calendar widget."""
|
|
count = 0
|
|
|
|
def __init__(self):
|
|
#load in our glade interface
|
|
xml = Gtk.Builder()
|
|
xml.add_from_file('tut08.glade')
|
|
|
|
#grab our widget using get_object this is the name of the widget from glade, window1 is the default name
|
|
self.window = xml.get_object('window1')
|
|
self.text = xml.get_object('entry1')
|
|
|
|
#load our widgets from the glade file
|
|
self.widgets = {}
|
|
self.widgets['calendar'] = xml.get_object('calendar1')
|
|
self.widgets['menushow'] = xml.get_object('menuitem6')
|
|
self.widgets['menuhide'] = xml.get_object('menuitem7')
|
|
self.widgets['menuhello'] = xml.get_object('menuitem8')
|
|
|
|
#connect to events, in this instance just quit our application
|
|
self.window.connect('delete_event', Gtk.main_quit)
|
|
self.window.connect('destroy', lambda quit: Gtk.main_quit())
|
|
self.widgets['menushow'].connect('activate', self.showcalendar)
|
|
self.widgets['menuhide'].connect('activate', self.hidecalendar)
|
|
self.widgets['menuhello'].connect('activate', self.hello)
|
|
self.widgets['calendar'].connect('day-selected', self.date_selected)
|
|
|
|
#show the window else there is nothing to see :)
|
|
self.window.show()
|
|
|
|
def hidecalendar(self, *args):
|
|
self.widgets['calendar'].hide()
|
|
|
|
def showcalendar(self, *args):
|
|
self.widgets['calendar'].show()
|
|
|
|
def hello(self, *args):
|
|
self.text.set_text('hello world')
|
|
|
|
def date_selected(self, *args):
|
|
date = self.widgets['calendar'].get_date()
|
|
self.text.set_text(str(date[2]) + '-'+str(date[1]) + '-' + str(date[0]))
|
|
|
|
application = application_gui()
|
|
Gtk.main()
|