Я пытаюсь создать инструмент «автоматического обновления» для ArcMap, чтобы обновить DataFrame. Я считаю, что в версии 10 было дополнение, которое вы могли загрузить для этой цели ... однако мы работаем с 10.1, и такого инструмента нет.
ИЗМЕНИТЬ таймер wxPython должен работать, однако использовать wx в arc сложно. Вот как сейчас выглядит код:
import arcpy
import pythonaddins
import os
import sys
sMyPath = os.path.dirname(__file__)
sys.path.insert(0, sMyPath)
WATCHER = None
class WxExtensionClass(object):
"""Implementation for Refresher_addin.extension (Extension)"""
_wxApp = None
def __init__(self):
# For performance considerations, please remove all unused methods in this class.
self.enabled = True
def startup(self):
from wx import PySimpleApp
self._wxApp = PySimpleApp()
self._wxApp.MainLoop()
global WATCHER
WATCHER = watcherDialog()
class RefreshButton(object):
"""Implementation for Refresher_addin.button (Button)"""
def __init__(self):
self.enabled = True
self.checked = False
def onClick(self):
if not WATCHER.timer.IsRunning():
WATCHER.timer.Start(5000)
else:
WATCHER.timer.Stop()
class watcherDialog(wx.Frame):
'''Frame subclass, just used as a timer event.'''
def __init__(self):
wx.Frame.__init__(self, None, -1, "timer_event")
#set up timer
self.timer = wx.Timer(self)
self.Bind(wx.EVT_TIMER, self.onTimer, self.timer)
def onTimer(self, event):
localtime = time.asctime( time.localtime(time.time()) )
print "Refresh at :", localtime
arcpy.RefreshActiveView()
app = wx.App(False)
Вы заметите там материал PySimpleApp. Я понял это из презентации Седерхольма. Мне интересно, если я что-то не понимаю. Должен ли я создать полностью отдельный надстройку для расширения? ЗАТЕМ создать мою панель инструментов / надстройку с нужным мне кодом? Я спрашиваю об этом, потому что я не вижу ссылки на PySimpleApp в приведенном ниже коде или какого-либо импорта из wx в методе переопределения запуска ... который, как я думал, был необходим / суть всего этого. Я очень ценю вашу помощь. Пожалуйста, дайте мне знать, что вы видите в моем коде.