def Establish_Connections(self):
# loop button and menu action to link to functions
for ui_name in self.uiList.keys():
if ui_name.endswith('_btn'):
QtCore.QObject.connect(self.uiList[ui_name], QtCore.SIGNAL("clicked()"), getattr(self, ui_name[:-4]+"_action", partial(self.default_action,ui_name)))
if ui_name.endswith('_atn'):
QtCore.QObject.connect(self.uiList[ui_name], QtCore.SIGNAL("triggered()"), getattr(self, ui_name[:-4]+"_action", partial(self.default_action,ui_name)))
if ui_name.endswith('_atnMsg') or ui_name.endswith('_btnMsg'):
QtCore.QObject.connect(self.uiList[ui_name], QtCore.SIGNAL("triggered()"), getattr(self, ui_name[:-7]+"_message", partial(self.default_message,ui_name)))
QtCore.QObject.connect(self.uiList["dict_table"].horizontalHeader(), QtCore.SIGNAL("sectionDoubleClicked(int)"), self.changeTableHeader)
#############################################
# UI Response functions
##############################################
#-- ui actions
python类QObject()的实例源码
UITranslator_v1.0.py 文件源码
项目:universal_tool_template.py
作者: shiningdesign
项目源码
文件源码
阅读 28
收藏 0
点赞 0
评论 0
UITranslator_v1.0.py 文件源码
项目:universal_tool_template.py
作者: shiningdesign
项目源码
文件源码
阅读 30
收藏 0
点赞 0
评论 0
def loadLang(self):
self.quickMenu(['language_menu;&Language'])
cur_menu = self.uiList['language_menu']
self.quickMenuAction('langDefault_atnLang', 'Default','','langDefault.png', cur_menu)
cur_menu.addSeparator()
QtCore.QObject.connect( self.uiList['langDefault_atnLang'], QtCore.SIGNAL("triggered()"), partial(self.setLang, 'default') )
# store default language
self.memoData['lang']={}
self.memoData['lang']['default']={}
for ui_name in self.uiList:
ui_element = self.uiList[ui_name]
if type(ui_element) in [ QtGui.QLabel, QtGui.QPushButton, QtGui.QAction, QtGui.QCheckBox ]:
# uiType: QLabel, QPushButton, QAction(menuItem), QCheckBox
self.memoData['lang']['default'][ui_name] = str(ui_element.text())
elif type(ui_element) in [ QtGui.QGroupBox, QtGui.QMenu ]:
# uiType: QMenu, QGroupBox
self.memoData['lang']['default'][ui_name] = str(ui_element.title())
elif type(ui_element) in [ QtGui.QTabWidget]:
# uiType: QTabWidget
tabCnt = ui_element.count()
tabNameList = []
for i in range(tabCnt):
tabNameList.append(str(ui_element.tabText(i)))
self.memoData['lang']['default'][ui_name]=';'.join(tabNameList)
elif type(ui_element) == str:
# uiType: string for msg
self.memoData['lang']['default'][ui_name] = self.uiList[ui_name]
# try load other language
lang_path = os.path.dirname(self.location) # better in packed than(os.path.abspath(__file__))
baseName = os.path.splitext( os.path.basename(self.location) )[0]
for fileName in os.listdir(lang_path):
if fileName.startswith(baseName+"_lang_"):
langName = fileName.replace(baseName+"_lang_","").split('.')[0].replace(" ","")
self.memoData['lang'][ langName ] = self.readRawFile( os.path.join(lang_path,fileName) )
self.quickMenuAction(langName+'_atnLang', langName.upper(),'',langName + '.png', cur_menu)
QtCore.QObject.connect( self.uiList[langName+'_atnLang'], QtCore.SIGNAL("triggered()"), partial(self.setLang, langName) )
# if no language file detected, add export default language option
if len(self.memoData['lang']) == 1:
self.quickMenuAction('langExport_atnLang', 'Export Default Language','','langExport.png', cur_menu)
QtCore.QObject.connect( self.uiList['langExport_atnLang'], QtCore.SIGNAL("triggered()"), self.exportLang )
UITranslator_v1.0.py 文件源码
项目:universal_tool_template.py
作者: shiningdesign
项目源码
文件源码
阅读 25
收藏 0
点赞 0
评论 0
def main():
parentWin = None
app = None
if deskMode == 0:
if qtMode == 0:
# ==== for pyside ====
parentWin = shiboken.wrapInstance(long(mui.MQtUtil.mainWindow()), QtGui.QWidget)
elif qtMode == 1:
# ==== for PyQt====
parentWin = sip.wrapinstance(long(mui.MQtUtil.mainWindow()), QtCore.QObject)
if deskMode == 1:
app = QtGui.QApplication(sys.argv)
# single UI window code, so no more duplicate window instance when run this function
global single_UITranslator
if single_UITranslator is None:
single_UITranslator = UITranslator(parentWin) # extra note: in Maya () for no parent; (parentWin,0) for extra mode input
single_UITranslator.show()
if deskMode == 1:
sys.exit(app.exec_())
# example: show ui stored
print(single_UITranslator.uiList.keys())
return single_UITranslator
# If you want to be able to load multiple windows of the same ui, use code below
universal_tool_template_1000.py 文件源码
项目:universal_tool_template.py
作者: shiningdesign
项目源码
文件源码
阅读 19
收藏 0
点赞 0
评论 0
def mui_to_qt(self, mui_name):
if hostMode != "maya":
return
ptr = mui.MQtUtil.findControl(mui_name)
if ptr is None:
ptr = mui.MQtUtil.findLayout(mui_name)
if ptr is None:
ptr = mui.MQtUtil.findMenuItem(mui_name)
if ptr is not None:
if qtMode in (0,2):
# ==== for pyside ====
return shiboken.wrapInstance(long(ptr), QtWidgets.QWidget)
elif qtMode in (1,3):
# ==== for PyQt====
return sip.wrapinstance(long(ptr), QtCore.QObject)
universal_tool_template_0803.py 文件源码
项目:universal_tool_template.py
作者: shiningdesign
项目源码
文件源码
阅读 23
收藏 0
点赞 0
评论 0
def mui_to_qt(self, mui_name):
if hostMode != "maya":
return
ptr = mui.MQtUtil.findControl(mui_name)
if ptr is None:
ptr = mui.MQtUtil.findLayout(mui_name)
if ptr is None:
ptr = mui.MQtUtil.findMenuItem(mui_name)
if ptr is not None:
if qtMode in (0,2):
# ==== for pyside ====
return shiboken.wrapInstance(long(ptr), QtWidgets.QWidget)
elif qtMode in (1,3):
# ==== for PyQt====
return sip.wrapinstance(long(ptr), QtCore.QObject)
universal_tool_template_0903.py 文件源码
项目:universal_tool_template.py
作者: shiningdesign
项目源码
文件源码
阅读 30
收藏 0
点赞 0
评论 0
def mui_to_qt(self, mui_name):
if hostMode != "maya":
return
ptr = mui.MQtUtil.findControl(mui_name)
if ptr is None:
ptr = mui.MQtUtil.findLayout(mui_name)
if ptr is None:
ptr = mui.MQtUtil.findMenuItem(mui_name)
if ptr is not None:
if qtMode in (0,2):
# ==== for pyside ====
return shiboken.wrapInstance(long(ptr), QtWidgets.QWidget)
elif qtMode in (1,3):
# ==== for PyQt====
return sip.wrapinstance(long(ptr), QtCore.QObject)
universal_tool_template_1010.py 文件源码
项目:universal_tool_template.py
作者: shiningdesign
项目源码
文件源码
阅读 25
收藏 0
点赞 0
评论 0
def mui_to_qt(self, mui_name):
if hostMode != "maya":
return
ptr = mui.MQtUtil.findControl(mui_name)
if ptr is None:
ptr = mui.MQtUtil.findLayout(mui_name)
if ptr is None:
ptr = mui.MQtUtil.findMenuItem(mui_name)
if ptr is not None:
if qtMode in (0,2):
# ==== for pyside ====
return shiboken.wrapInstance(long(ptr), QtWidgets.QWidget)
elif qtMode in (1,3):
# ==== for PyQt====
return sip.wrapinstance(long(ptr), QtCore.QObject)
def __init__(self, model, source, index):
QtCore.QObject.__init__(self)
self.source = source
self.model = model
self.index = index
self.rois = []
self.editing_dialog = None
if model.selection_model is not None:
self.setSelectionModel()
self.model.selectionModelChanged.connect(self.setSelectionModel)
def __init__(self, scene_proxy):
QtCore.QObject.__init__(self, scene_proxy)
self.scene_proxy = scene_proxy
def __init__(self):
QtCore.QObject.__init__(self)
self.mouseWheel=0
self.enterleave=False
self.enterleave=True
self.keyPressed2=False
self.editmode=False
self.key='x'
self.posx=-1
self.posy=-1
self.lasttime=time.time()
self.lastkey='#'
def __setattr__(self, key, value):
if key not in ("changed", "__editing", "__changed"):
if hasattr(self, key):
old_value = getattr(self, key)
if hasattr(old_value, "changed"):
old_value.changed.disconnect(self.change)
if hasattr(value, "changed"):
value.changed.connect(self.change)
QtCore.QObject.__setattr__(self, key, value)
def __init__(self, x, y):
ViewPort.__init__(self, x, y)
QtCore.QObject.__init__(self)
self.__current_layer = None
self.currentLayerChanged.connect(self.changed)
self.__show_images = True
self.__draw_other_layers = True
self.layer_permute = 0
def readFile():
#Should be swapped with a read of a template
class JavaScriptObjectToSend(QtCore.QObject):
"""Simple class with one slot and one read-only property."""
@QtCore.Slot(str)
def showMessage(self, msg):
"""Open a message box and display the specified message."""
QtGui.QMessageBox.information(None, "Info", msg)
def _pyVersion(self):
"""Return the Python version."""
return sys.version
"""Python interpreter version property."""
pyVersion = Property(str, fget=_pyVersion)
class jsonObject(QObject):
def __init__(self,startval=42):
QObject.__init__(self)
self.ppval="source"
self.pp = Property(str,self.readPP,self.setPP)
@QtCore.Slot(str)
def readPP(self,msg):
return msg,self.ppval
@QtCore.Slot(str)
def setPP(self,val):
self.ppval = val
obj = jsonObject()
basepath = os.path.dirname(os.path.abspath(__file__))
basepath = str(basepath)+'/'
win = QtWebKit.QWebView()
win.setWindowTitle('D3d visualization')
layout = QtGui.QVBoxLayout()
win.setLayout(layout)
myObj = JavaScriptObjectToSend()
view = QtWebKit.QWebView()
view.settings().setAttribute(QtWebKit.QWebSettings.LocalContentCanAccessRemoteUrls, True)
view.page().mainFrame().addToJavaScriptWindowObject("pyObj", myObj)
view.page().mainFrame().addToJavaScriptWindowObject("jsonObj", obj)
view.settings().setAttribute(QtWebKit.QWebSettings.PluginsEnabled, True)
view.settings().setAttribute(QtWebKit.QWebSettings.WebAttribute.DeveloperExtrasEnabled, True)
view.settings().setAttribute(QtWebKit.QWebSettings.PrivateBrowsingEnabled, True)
view.setHtml(html, baseUrl=QtCore.QUrl().fromLocalFile(basepath))
return view
def main(mode=0):
# get parent window in Maya
parentWin = None
if hostMode == "maya":
if qtMode in (0,2): # pyside
parentWin = shiboken.wrapInstance(long(mui.MQtUtil.mainWindow()), QtWidgets.QWidget)
elif qtMode in (1,3): # PyQt
parentWin = sip.wrapinstance(long(mui.MQtUtil.mainWindow()), QtCore.QObject)
# create app object for certain host
app = None
if hostMode in ("desktop", "blender"):
app = QtWidgets.QApplication(sys.argv)
#--------------------------
# ui instance
#--------------------------
# template 1 - Keep only one copy of windows ui in Maya
global single_UITranslator
if single_UITranslator is None:
if hostMode == "maya":
single_UITranslator = UITranslator(parentWin, mode)
else:
single_UITranslator = UITranslator()
# extra note: in Maya () for no parent; (parentWin,0) for extra mode input
single_UITranslator.show()
ui = single_UITranslator
# template 2 - allow loading multiple windows of same UI in Maya
'''
if hostMode == "maya":
ui = UITranslator(parentWin)
ui.show()
else:
# extra note: in Maya () for no parent; (parentWin,0) for extra mode input
'''
# loop app object for certain host
if hostMode in ("desktop"):
sys.exit(app.exec_())
return ui
universal_tool_template_0803.py 文件源码
项目:universal_tool_template.py
作者: shiningdesign
项目源码
文件源码
阅读 26
收藏 0
点赞 0
评论 0
def main(mode=0):
# get parent window in Maya
parentWin = None
if hostMode == "maya":
if qtMode in (0,2): # pyside
parentWin = shiboken.wrapInstance(long(mui.MQtUtil.mainWindow()), QtWidgets.QWidget)
elif qtMode in (1,3): # PyQt
parentWin = sip.wrapinstance(long(mui.MQtUtil.mainWindow()), QtCore.QObject)
# create app object for certain host
app = None
if hostMode in ("desktop", "blender"):
app = QtWidgets.QApplication(sys.argv)
#--------------------------
# ui instance
#--------------------------
# template 1 - Keep only one copy of windows ui in Maya
global single_UniversalToolUI
if single_UniversalToolUI is None:
if hostMode == "maya":
single_UniversalToolUI = UniversalToolUI(parentWin, mode)
else:
single_UniversalToolUI = UniversalToolUI()
# extra note: in Maya () for no parent; (parentWin,0) for extra mode input
single_UniversalToolUI.show()
ui = single_UniversalToolUI
# template 2 - allow loading multiple windows of same UI in Maya
'''
if hostMode == "maya":
ui = UniversalToolUI(parentWin)
ui.show()
else:
# extra note: in Maya () for no parent; (parentWin,0) for extra mode input
'''
# loop app object for certain host
if hostMode in ("desktop"):
sys.exit(app.exec_())
return ui
universal_tool_template_0903.py 文件源码
项目:universal_tool_template.py
作者: shiningdesign
项目源码
文件源码
阅读 32
收藏 0
点赞 0
评论 0
def main(mode=0):
# get parent window in Maya
parentWin = None
if hostMode == "maya":
if qtMode in (0,2): # pyside
parentWin = shiboken.wrapInstance(long(mui.MQtUtil.mainWindow()), QtWidgets.QWidget)
elif qtMode in (1,3): # PyQt
parentWin = sip.wrapinstance(long(mui.MQtUtil.mainWindow()), QtCore.QObject)
# create app object for certain host
app = None
if hostMode in ("desktop", "blender"):
app = QtWidgets.QApplication(sys.argv)
#--------------------------
# ui instance
#--------------------------
# template 1 - Keep only one copy of windows ui in Maya
global single_UserClassUI
if single_UserClassUI is None:
if hostMode == "maya":
single_UserClassUI = UserClassUI(parentWin, mode)
else:
single_UserClassUI = UserClassUI()
# extra note: in Maya () for no parent; (parentWin,0) for extra mode input
single_UserClassUI.show()
ui = single_UserClassUI
# template 2 - allow loading multiple windows of same UI in Maya
'''
if hostMode == "maya":
ui = UserClassUI(parentWin)
ui.show()
else:
# extra note: in Maya () for no parent; (parentWin,0) for extra mode input
'''
# loop app object for certain host
if hostMode in ("desktop"):
sys.exit(app.exec_())
return ui
universal_tool_template_v8.1.py 文件源码
项目:universal_tool_template.py
作者: shiningdesign
项目源码
文件源码
阅读 29
收藏 0
点赞 0
评论 0
def main(mode=0):
# get parent window in Maya
parentWin = None
if hostMode == "maya":
if qtMode in (0,2): # pyside
parentWin = shiboken.wrapInstance(long(mui.MQtUtil.mainWindow()), QtWidgets.QWidget)
elif qtMode in (1,3): # PyQt
parentWin = sip.wrapinstance(long(mui.MQtUtil.mainWindow()), QtCore.QObject)
# create app object for certain host
app = None
if hostMode in ("desktop", "blender"):
app = QtWidgets.QApplication(sys.argv)
#--------------------------
# ui instance
#--------------------------
# template 1 - Keep only one copy of windows ui in Maya
global single_UniversalToolUI
if single_UniversalToolUI is None:
if hostMode == "maya":
single_UniversalToolUI = UniversalToolUI(parentWin, mode)
else:
single_UniversalToolUI = UniversalToolUI()
# extra note: in Maya () for no parent; (parentWin,0) for extra mode input
single_UniversalToolUI.show()
ui = single_UniversalToolUI
# template 2 - allow loading multiple windows of same UI in Maya
'''
if hostMode == "maya":
ui = UniversalToolUI(parentWin)
ui.show()
else:
# extra note: in Maya () for no parent; (parentWin,0) for extra mode input
'''
# loop app object for certain host
if hostMode in ("desktop"):
sys.exit(app.exec_())
return ui