Продвигать PyQt Widget - PullRequest
       3

Продвигать PyQt Widget

9 голосов
/ 28 января 2011

Я использую 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 я продвигаю виджет и задаю для поля файла заголовка значение «PythonModuleRoot.Ui.CustomWidget».

1 Ответ

9 голосов
/ 15 февраля 2012

Я понял, мой реальный код немного отличается от упрощенного примера, который я привел. Мой настоящий код больше похож на это:

/PythonModuleRoot/Ui/MainUi.py

/PythonModuleRoot/Ui/MainUi.ui

/PythonModuleRoot/Ui/Widgets/CustomWidget.py

Так что мне просто нужно было изменить содержимое файла заголовка таким образом, чтобы MainUi импортировал CustomWidget, поэтому: «Widgets.CustomWidget». Эта статья указала мне правильное направление: http://www.mail-archive.com/pyqt@riverbankcomputing.com/msg17893.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...