저는 PyQt에서 PySide로 스크립트를 이동하고 슬롯 이름과 관련하여 질문을했습니다. 컨텍스트의 경우 UI가 Qt Designer로 생성됩니다. 파일은 .ui
개로 저장됩니다. .py
개의 파일로 변환하여 pyside-uic
을 사용합니다. 이 스크립트는 Autodesk Maya에서 사용됩니다.명명 된 슬롯을 사용하여 PyQt에서 PySide로 이동
생성 된 .py
스크립트는 QtCore.QMetaObject.connectSlotsByName(Dialog)
명령을 사용하여 신호를 슬롯에 연결합니다.
on_<objectname>_<signalname>()
슬롯 (예 : on_pushButton_clicked()
)을 찾습니다.
@QtCore.pyqtSlot(name = "on_pushButton_clicked")
def testButton_pressed(self):
print "pressed button"
PySide에서이된다 :
@QtCore.Slot(name = "on_pushButton_clicked")
def testButton_pressed(self):
print "pressed button"
이것은 PySide와 PyQt는 함께 일 수 있지만 다음과 같이
은 이전 PyQt4과 함께, 우리는 우리의 슬롯을 지명했다. PySide는 더 이상 슬롯의 "name"매개 변수를 인식하지 못합니다. 해결 방법은testButton_pressed()
의 기능을
on_pushButton_clicked()
으로 바꾸는 것이지만 모든 스크립트에서이 작업을 수행하지 않아도됩니다. PySide가 슬롯 "name"인수를 인식하도록하는 더 좋은 방법이 있습니까?
나를 위해 작동하지 않았다. 함수 이름이 "name"속성과 다를 것을 요구합니다. 예. def buttonClicked (self, name = "on_pushButton_clicked") : – Psykojello