2011-01-28 86 views
7

我正在使用PyQt並試圖在QtDesigner中推廣一個小工具。如果我在「頭文件」字段中指定包含我的窗口小部件子類的文件的完整模塊路徑,我可以使其工作。推廣PyQt小工具

有沒有更好的方式來推廣QtDesigner中的一個小部件到一個PyQt小部件,而無需指定完整的模塊路徑?

下面是希望說明什麼我談論的例子:

/PythonModuleRoot/Ui/MainUi.py

from PyQt4 import QtCore, QtGui, uic 
class MainUi(QtGui.QWidget): 
    def __init__(self): 
     QtGui.QWidget.__init__(self) 
     self.ui = uic.loadUi(os.path.join(os.path.dirname(__file__), 'MainUi.ui'), self) 

/PythonModuleRoot/Ui/CustomWidget.py

from PyQt4 import QtCore, QtGui, uic 
class CustomWidget(QtGui.QWidget): 
    def __init__(self, parent): 
     QtGui.QWidget.__init__(self, parent) 

/PythonModuleRoot/Ui/MainUi.ui

In MainUi.ui我推廣一個小部件和s將頭文件字段設置爲:「PythonModuleRoot.Ui.CustomWidget」。

+1

您已經在編輯中回答了您自己的問題。爲什麼不把解決方案作爲答案發布? [在這裏鼓勵自我回答。](http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/) – mizo 2012-02-14 11:20:57

回答

7

我弄明白了,我的實際代碼與我給出的簡化示例略有不同。我實際的代碼更是這樣的:

/PythonModuleRoot/Ui/MainUi.py 

/PythonModuleRoot/Ui/MainUi.ui 

/PythonModuleRoot/Ui/Widgets/CustomWidget.py 

所以我只需要改變頭文件的內容是MainUi如何導入CustomWidget,所以:「Widgets.CustomWidget」。本文指出了我的正確方向:http://www.mail-archive.com/[email protected]/msg17893.html