【发布时间】:2011-06-17 11:45:52
【问题描述】:
我正在使用 PyQt 并尝试在 QtDesigner 中推广一个小部件。如果我在“头文件”字段中指定包含我的小部件子类的文件的完整模块路径,我就能让它工作。
有没有更好的方法将 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
在 MainUi.ui 中,我提升了一个小部件并将 Header 文件字段设置为:“PythonModuleRoot.Ui.CustomWidget”。
【问题讨论】:
-
您已在编辑中回答了自己的问题。为什么不将您的解决方案发布为答案呢? Posting self-answers is encouraged here.
-
对不起,我不明白。如果您可以在上面的简单示例中包含 MainUi.ui 的 XML,这将非常有帮助,可能在将其提升为提升类名称之前和之后:CustomWidgets.py,头文件:Widgets.CustomWidget.py,我猜,.. . 看看我能不能理解整个过程。
-
@keegan3d : 你可以贴出
Promote toUI 的截图!