self.ui.verticalLayout.addWidget(MainWindow(self))は機能していますが、ウィジェットを削除しようとするとエラーが発生します。
TypeError:QLayout.removeWidget(QWidget):引数1のタイプは予期しないものです'PyQt4.QtCore.pyqtWrapperType'
サンプルコードは次のとおりです。
qtableviewでウィジェットを作成するためのこの個別の.pyファイルがあります
class MyWindow(QWidget):
pcobject =[]
def __init__(self, *args):
QWidget.__init__(self, *args)
layout = QVBoxLayout(self)
self.tableview = QTableView()
layout.addWidget(self.tableview)
........
そして、.pyを垂直レイアウトで分離してMyWindowクラスを追加します。
-編集
from tableview import MyWindow
class QTEST(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.table = MyWindow
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.verticalLayout.addWidget(self.table))
self.ui.gridLayout.addLayout(self.ui.verticalLayout, 1, 0, 1, 1)
self.connect(self.ui.pushButton_15, QtCore.SIGNAL("clicked()"), self.table_view )
def table_view(self):
#import sip
self.ui.verticalLayout.removeItem(self.table)
#self.table.setParent(None)
#sip.delete(self.table)
#self.table = None
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = QTEST()
myapp.show()
sys.exit(app.exec_())