我目前正在寫的Python爲瑪雅UI腳本。調用UI對象到另一個
所以,我有UI在頂部有不同的選項卡,我不想在MainClass
中放置每一個代碼片段,因爲那太亂了,太長了。對於每一個標籤,我想寫的劇本在不同.py
文件。我想在__init__
函數下創建連接,同時將另一個腳本的函數裝載到此MainClass
中以供使用。
的問題是,我應該如何去在一個新的文件從UI調用對象名?我試圖導入MainClass
代碼,但沒有工作,我不希望在新.py
文件中的初始化UI窗口。有什麼好辦法可以解決這個問題?
EDIT
實施例:
test.ui文件有一個按鈕標記爲 「打印」 和列表窗口小部件。每按一次'打印'按鈕,單詞「Hello World」就會出現在列表小部件上。
在loadUi_test.py文件
def loadUi(uiFile):
#code that loads ui
def getMayaWindow():
#gets main Maya Window
ptr = apiUI.MQtUtil.mainWindow()
if ptr is not None:
return shiboken.wrapInstance(long(ptr), QtGui.QMainWindow)
class mainClass():
def __init__(self, parent = getMayaWindow()):
super(pipeWindow,self).__init__(parent)
self.setupUi(self)
def closeEvent(self,event):
super(mainClass, self).closeEvent(event)
在function_test.py
def printFunc():
listWidget.clear()
listWidget.addItem("Hello World!")
在初始化的.py
from pipeline import loadUi_test
from pipeline import function_test
uiFile = "test.ui"
b = loadUi_test.loadUi(uiFile)
a = loadUi_test.mainClass()
a.pushButton.clicked.connect(function_test.printFunc(b))
這是不行的,我得到一個錯誤「元組對象有沒有屬性listWidget「
如果我這樣做,而不是:a.pushButton.clicked.connect(function_test.printFunc(a))
,我得到的錯誤「無法連接信號點擊()」
可能重複[從另一個文件導入類](https://stackoverflow.com/questions/41276067/importing-class-from-another -file) – Matho