def loadScripts(self): scriptMod = reloadMod('scripts') scriptList = [] row = 0 #print self.tblScript.rowCount() for ob in dir(scriptMod): if (not ob.startswith('__') and type(getattr(scriptMod, ob)) == types.FunctionType): self.tblScript.insertRow(row) doc = getattr(scriptMod,ob).__doc__ docStr = "" if(doc != None): #docStr = doc #print dir(QtGui.QApplication) doc = doc.strip() docStr = QtGui.QApplication.translate("mainDialog", doc, None, QtGui.QApplication.UnicodeUTF8) group = (ob, docStr) #print group item = QtGui.QTableWidgetItem() item.setText(group[0]) item.setFlags(item.flags() & ~Qt.ItemFlag(Qt.ItemIsEditable)) self.tblScript.setItem(row, 0, item) item = QtGui.QTableWidgetItem() item.setText(group[1]) item.setFlags(item.flags() & ~Qt.ItemFlag(Qt.ItemIsEditable)) self.tblScript.setItem(row, 1, item) row += 1
def invokeScript(self, funcName): module = reloadMod('scripts') func = getattr(module, funcName) self.flagRun = True module.window = self args, varargs, varkw, defaults = inspect.getargspec(func) if(len(args) < 2): MessageBox(0, "脚本参数个数少于2", "", 0) return hwndList = self.getPlayerHwndList() if(len(hwndList) == 0): MessageBox(0, "请选择要发送命令的窗口", "", 0) return prefunc = None try: prefunc = getattr(module, "__%s_pre" % (funcName)) except AttributeError, e: pass
def __getMod(modFullName): names = modFullName.split('.') #print names if(len(names) == 0): return None mod = reloadMod(names[0]) #print mod for i in range(1, len(names)): #print names[i] #print dir(mod) mod = getattr(mod, names[i]) #print mod return mod