По-моему в документации достаточно ясно описано.
http://qt-project.org/doc/qt-5.0/qtabwidget.html#detailsВ вашем коде комбобокс создается с родителем комбобоксом. Это странно.
Сомневаюсь, что у вас будет один комбобокс в табе, поэтому нужно создать виджет, и с помощью Layout'ов накидать туда контролы. Причем если виджет сложный, и требует особой обработки данных, лучше сделать наследника QWidget.
Вот пример двух способов добавления: через наследника и простым добавлением в layout.
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
# Сложная страница со своей логикой и обработкой сигналов
class ComplexPage(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.button = QtGui.QPushButton("Ok")
self.combo = QtGui.QComboBox()
layout = QtGui.QVBoxLayout()
layout.addWidget(self.button)
layout.addWidget(self.combo)
self.setLayout(layout)
#...
class MainWidget(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.tab_widget = QtGui.QTabWidget(self)
# добавим сложуню страницу
self.tab_widget.addTab(ComplexPage(), 'page1')
# контейнер с виджетами
container = QtGui.QWidget()
layout = QtGui.QHBoxLayout()
# для простоты виджеты добавляются прм в контенер
layout.addWidget(QtGui.QLabel('Some Label'))
layout.addWidget(QtGui.QSpinBox())
# но можно добавить и свои, например, чтобы получать от них сигналы или данные
self.some_edit = QtGui.QLineEdit()
layout.addWidget(self.some_edit)
container.setLayout(layout)
self.tab_widget.addTab(container, 'page2')
self.setLayout(QtGui.QVBoxLayout())
self.layout().addWidget(self.tab_widget)
#...
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
widget = MainWidget()
widget.resize(640, 480)
widget.show()
sys.exit(app.exec_())