?? gnome-pygarmin
字號:
#!/usr/bin/env python""" gnome-pygarmin This is a GNOME user application for communicating with Garmin GPS receivers. To use it you will need the gnome-python package installed, which can be found at ftp://ftp.daa.com.au/pub/james/python/ This is released under the Gnu General Public Licence. A copy of this can be found at http://www.opensource.org/licenses/gpl-license.html For the latest information about PyGarmin, please see http://pygarmin.sourceforge.net/ (c) 2000 James A. H. Skillen <jahs@skillen.org.uk> """import sys, garmin, libgladefrom gtk import *from gnome.ui import *from gnome import configclass GnomePygarmin: def __init__(self): self.widgets = libglade.GladeXML("gnome-pygarmin.glade", "gnome_pygarmin") signals = { "on_gnome_pygarmin_destroy" : self.exit, # File "on_menu_new_activate" : self.new, "on_menu_open_activate" : self.open, "on_menu_save_activate" : self.save, "on_menu_save_as_activate" : self.save_as, "on_menu_exit_activate" : self.exit, # Edit "on_menu_cut_activate" : self.cut, "on_menu_copy_activate" : self.copy, "on_menu_paste_activate" : self.paste, "on_menu_clear_activate" : self.clear, "on_menu_properties_activate" : self.properties, # GPS "on_menu_download_activate" : self.download, "on_menu_info_activate" : self.info, # Settings "on_menu_preferences_activate" : self.prefs, # Help "on_menu_about_activate" : self.about, # Toolbar "on_toolbar_open_clicked" : self.open, "on_toolbar_save_clicked" : self.save, "on_toolbar_download_clicked" : self.download, "on_toolbar_info_clicked" : self.info } self.widgets.signal_autoconnect(signals) self.gps = None device = config.get_string("/gnome-pygarmin/Preferences/serial_device") self._init_gps(device) def _init_gps(self, device = None): if device == None: self.prefs(None) GnomeErrorDialog("Please enter the serial device to which your GPS is connected.", self.widgets.get_widget("gnome_pygarmin")).set_modal(TRUE) else: try: phys = garmin.UnixSerialLink(device) self.gps = garmin.Garmin(phys) except: msg = str(sys.exc_info()[1]) if msg: self.prefs(None) GnomeErrorDialog(str(sys.exc_info()[1]), self.widgets.get_widget("gnome_pygarmin")).set_modal(TRUE) def _not_done(self): e = GnomeErrorDialog("Not yet implemented!", self.widgets.get_widget("gnome_pygarmin")) e.set_modal(TRUE) # File def new(self, widget): self._not_done() def open(self, widget): self._not_done() def save(self, widget): self._not_done() def save_as(self, widget): self._not_done() def exit(self, widget): config.sync() mainquit() # Edit def cut(self, widget): self._not_done() def copy(self, widget): self._not_done() def paste(self, widget): self._not_done() def clear(self, widget): self._not_done() def properties(self, widget): self._not_done() # GPS def download(self, widget): Download(self) def info(self, widget): self._not_done() # Settings def prefs(self, widget): Preferences(self) # Help def about(self, widget): About(self)class Preferences: def __init__(self, pygarmin): self.pygarmin = pygarmin self.widgets = libglade.GladeXML("gnome-pygarmin.glade", "preferences") signals = { "on_prefs_ok_clicked" : self.ok, "on_prefs_apply_clicked" : self.apply, "on_prefs_cancel_clicked" : self.cancel } self.widgets.signal_autoconnect(signals) window = self.widgets.get_widget("preferences") window.set_parent(self.pygarmin.widgets.get_widget("gnome_pygarmin")) text_entry = self.widgets.get_widget("device") device = config.get_string("/gnome-pygarmin/Preferences/serial_device") if device == None: device = "" text_entry.set_text(device) window.show() def ok(self, widget): text_entry = self.widgets.get_widget("device") device = text_entry.get_text() self.pygarmin._init_gps(device) config.set_string("/gnome-pygarmin/Preferences/serial_device", device) self.cancel(None) def apply(self, widget): text_entry = self.widgets.get_widget("device") device = text_entry.get_text() self.pygarmin._init_gps(device) self.cancel(None) def cancel(self, widget): window = self.widgets.get_widget("preferences") window.close()class Download: def __init__(self, pygarmin): self.pygarmin = pygarmin self.widgets = libglade.GladeXML("gnome-pygarmin.glade", "download") signals = { "on_download_ok_clicked" : self.ok, "on_download_cancel_clicked" : self.cancel } self.widgets.signal_autoconnect(signals) window = self.widgets.get_widget("download") window.set_parent(self.pygarmin.widgets.get_widget("gnome_pygarmin")) window.show() def _waypoints(self): if not self.pygarmin.gps: self.pygarmin._init_gps() return wpts = self.pygarmin.gps.getWaypoints() wpt_list = self.pygarmin.widgets.get_widget("wpt_list") wpt_list.clear() for w in wpts: wpt_list.append((w.ident, str(garmin.degrees(w.slat)), str(garmin.degrees(w.slon)))) def ok(self, widget): w = self.widgets.get_widget("download_waypoints") r = self.widgets.get_widget("download_routes") t = self.widgets.get_widget("download_tracks") get_w = w.get_active() self.cancel(None) if get_w: w = GnomeMessageBox("Downloading waypoints") self._waypoints() w.close() def cancel(self, widget): window = self.widgets.get_widget("download") window.close()class About: def __init__(self, pygarmin): self.pygarmin = pygarmin self.widgets = libglade.GladeXML("gnome-pygarmin.glade", "about") window = self.widgets.get_widget("about") window.set_parent(self.pygarmin.widgets.get_widget("gnome_pygarmin")) window.show()def main(): app = GnomePygarmin() mainloop()if __name__ == "__main__": main()
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -