我正在將一些腳本從PyQt移到PySide,並且有一個關於插槽名稱的問題。對於上下文,我們的UI是使用Qt Designer創建的。保存爲.ui
文件。使用pyside-uic
轉換爲.py
文件。這些腳本然後在Autodesk Maya中使用。使用命名插槽從PyQt移動到PySide
生成的.py
腳本使用以下命令將信號連接到插槽: QtCore.QMetaObject.connectSlotsByName(Dialog)
。
這會查找名爲on_<objectname>_<signalname>()
的插槽,如on_pushButton_clicked()
。
此前與PyQt4的,我們命名我們的插槽如下:
@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"
這曾與PyQt的,但不能與PySide。 PySide不再識別插槽中的「名稱」參數。解決方法是將testButton_pressed()
函數重命名爲on_pushButton_clicked()
,但我寧願不必爲我的所有腳本執行此操作。有沒有更好的方式讓PySide識別插槽「名稱」的參數?
這不適合我。我需要函數名稱與「name」屬性不同。 ex。 def buttonClicked(self,name =「on_pushButton_clicked」): – Psykojello