123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #!/usr/bin/env python3
- ############################################################################
- #
- # MODULE: g.gui.iclass
- # AUTHOR(S): Anna Petrasova
- # PURPOSE: Example GUI application
- # COPYRIGHT: (C) 2012-2014 by the GRASS Development Team
- #
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- ############################################################################
- #%module
- #% description: Example GUI application which displays raster map and further information
- #% keyword: example
- #% keyword: GUI
- #% keyword: raster
- #%end
- #%option G_OPT_R_INPUT
- #% description: Name of raster map to load
- #% required: no
- #%end
- import os
- import sys
- import wx
- # i18n is taken care of in the grass library code.
- # So we need to import it before any of the GUI code.
- import grass.script.core as gcore
- if __name__ == '__main__':
- wxbase = os.path.join(os.getenv('GISBASE'), 'etc', 'gui', 'wxpython')
- if wxbase not in sys.path:
- sys.path.append(wxbase)
- from core.globalvar import CheckWxVersion
- from core.giface import StandaloneGrassInterface
- from core.utils import GuiModuleMain
- from core.settings import UserSettings
- from example.frame import ExampleMapFrame
- def main():
- options, flags = gcore.parser()
- if options['input']:
- map_name = gcore.find_file(name=options['input'], element='cell')['fullname']
- if not map_name:
- gcore.fatal(_("Raster map <{raster}> not found").format(raster=options['input']))
- # define display driver (avoid 'no graphics device selected' error at start up)
- driver = UserSettings.Get(group='display', key='driver', subkey='type')
- if driver == 'png':
- os.environ['GRASS_RENDER_IMMEDIATE'] = 'png'
- else:
- os.environ['GRASS_RENDER_IMMEDIATE'] = 'cairo'
- # launch application
- app = wx.App()
- if not CheckWxVersion([2, 9]):
- wx.InitAllImageHandlers()
- # show main frame
- giface = StandaloneGrassInterface()
- frame = ExampleMapFrame(parent=None, giface=giface)
- if options['input']:
- giface.WriteLog(_("Loading raster map <{raster}>...").format(raster=map_name))
- frame.SetLayer(map_name)
- frame.Show()
- app.MainLoop()
- if __name__ == '__main__':
- GuiModuleMain(main)
|