Найти - Пользователи
Полная версия: Проблема на стороне самого QT или проблема кривых рук?
Начало » GUI » Проблема на стороне самого QT или проблема кривых рук?
1
Nap
Есть потомок QMainWindow, в нём есть таб виджет пытаюсь сделать такое:
tm=ServicesTreeModel(treedata)
self.ui.contractview=ContractWidget(self.ui.WMainTab.currentWidget())
self.ui.contractview.ui.COServices.setModel(tm)
self.ui.WMainTab.currentWidget().layout().addWidget(self.ui.contractview)
В ответ получаю такое:
Traceback (most recent call last):                                                                     
File "billing.py", line 173, in openContractFromSearch
self.ui.contractview.ui.COExtServices.setModel(tm)
RuntimeError: underlying C/C++ object has been deleted
Класс ContractWidget описан как:
class ContractWidget(QtGui.QWidget):
def __init__(self,parent=None):
QtGui.QWidget.__init__(self,parent)
self.ui=Ui_Contract()
self.ui.setupUi(self)
в Ui_Contract() напиханы всякие лэйблы и пара вьюшек с помощью дизайнера, как вы поняли.
МэйнВиндов описан так:
class BillForm(QtGui.QMainWindow):
def __init__(self,logindata):
QtGui.QMainWindow.__init__(self)
<...>
BillForm тоже создан в дизайнере.
При выводе:
for widget in self.ui.WMainTab.currentWidget().findChildren(QtGui.QWidget,QtCore.QRegExp('.*')):
widget.objectName()
Все виджеты, которые есть в self.ui.contractview.ui выводятся нормально, но по таким ссылкам до них не достучишься, как я понял.
Может кто подскажет, как быть, если хочешь запихать виджет из нескольких составляющих куда-нибудь, как быть с доступом к этим составляющим?
Nap
Поделись проблемой и реши её, как говорится: “Сам дурак”. Проблему решил. Всем спасибо. Не было инициализации супер-класса в модели.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB