В PyQt есть три различных способа работы с формами, созданными в конструкторе:
- Использование одиночного наследования и превращение формы в переменную-член
- Использование множественного наследования
- Динамически генерировать элементы непосредственно из файла пользовательского интерфейса
Одиночное наследование :
class MyTableWidget(QTableWidget):
def __init__(self, parent, *args):
super(MyTableWidget, self).__init__(parent, args)
self.ui = YourFormName()
self.ui.setupUi(self)
# all gui elements are now accessed through self.ui
def mousePressEvent(self, event):
pass # do something useful
Множественное наследование :
class MyTableWidget(QTableWidget, YourFormName):
def __init__(self, parent, *args):
super(MyTableWidget, self).__init__(parent, args)
self.setupUi(self)
# self now has all members you defined in the form
def mousePressEvent(self, event):
pass # do something useful
Динамически генерируемый :
from PyQt4 import uic
yourFormTypeInstance = uic.loadUi('/path/to/your/file.ui')
Для (3) выше вы получите экземпляр любого базового типа, который вы указали для своей формы.Затем вы можете переопределить ваш mousePressEvent
по своему желанию.
Я бы порекомендовал вам взглянуть на раздел 13.1 в справочном руководстве PyQt4 .В разделе 13.2 рассказывается о модуле uic
.