#!/usr/bin/env python

import sys
from PyQt4 import QtGui, QtCore

class MainExample(QtGui.QWidget):
    def __init__(self, pParent=None):
        super(MainExample, self).__init__(pParent)

	scrX = 2048
	scrY = 1152
	winX = 550
	winY = 400
	pX   = (scrX - winX) / 2
	pY   = (scrY - winY) / 2

	self.setGeometry(pX, pY, winX, winY)
        self.setLayout(QtGui.QVBoxLayout())
	self.LargeTable = QtGui.QTreeWidget()
	self.LargeTable.setColumnCount(3)

        self.layout().addWidget(self.LargeTable)

        self.SmallTable = QtGui.QTableWidget(self)
        self.SmallTable.setColumnCount(4)
	self.SmallTable.setRowCount(2)
        self.SmallTable.setHorizontalHeaderLabels( ("Column0", "Column1", "Column2", "Column3") )

	for i in range(0, 2):
		parent = QtGui.QTreeWidgetItem(self.LargeTable, ['Parent %s' % i] )

		for j in range(0, 2):
			child = QtGui.QTreeWidgetItem(parent, ['Child %s' % j])

	for i in range(0, 2):

		item = QtGui.QTableWidgetItem( QtCore.QString("Text2")) 
		self.SmallTable.setItem(i, 0, item)

		item = QtGui.QTableWidgetItem( QtCore.QString("Text2")) 
		self.SmallTable.setItem(i, 1, item)

		item = QtGui.QTableWidgetItem( QtCore.QString("Text2")) 
		self.SmallTable.setItem(i, 2, item)

	self.LargeTable.setItemWidget(self.LargeTable.topLevelItem(0).child(1), 0, self.SmallTable)
	self.LargeTable.expandAll()

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    form = MainExample()
    form.show()
    form.raise_()
    sys.exit(app.exec_())

