def __init__(self, base_data=None, link_data=None, base_key=None, link_key='id', parent=None): QtGui.QDialog.__init__(self, parent) self.ui = Ui_Compare() self.ui.setupUi(self) self.parent = parent self.connect(self.ui.saveButton, QtCore.SIGNAL("clicked()"),QtCore.SLOT("saveData()")) self.connect(self.ui.addProductButton, QtCore.SIGNAL("clicked()"),QtCore.SLOT("on_click_addProductButton()")) self.get_data(base_data, link_data, base_key, link_key) self.compliteLinkBox() self.compliteForm()
class Compare_Class(QtGui.QDialog): """Сравнивает 2 набора данных, привязывает к первому набору второй""" def __init__(self, base_data=None, link_data=None, base_key=None, link_key='id', parent=None): QtGui.QDialog.__init__(self, parent) self.ui = Ui_Compare() self.ui.setupUi(self) self.parent = parent self.connect(self.ui.saveButton, QtCore.SIGNAL("clicked()"),QtCore.SLOT("saveData()")) self.connect(self.ui.addProductButton, QtCore.SIGNAL("clicked()"),QtCore.SLOT("on_click_addProductButton()")) self.get_data(base_data, link_data, base_key, link_key) self.compliteLinkBox() self.compliteForm() def renew(self): self.compliteLinkBox() def get_data(self, base_data, link_data, base_key, link_key): self.base_data, self.link_data, self.base_key, self.link_key = base_data, link_data, base_key, link_key self.data_rows = {} self.link_rows = {} def saveData(self): None def on_click_addProductButton(self): """Открывает приход""" form = Product_Class(self) form.show() def compliteForm(self): #Заполняет таблицу для привязки #второй столбик это линки, в комбобоксах for data_row in self.base_data: itemNumber = self.ui.compareTableWidget.rowCount() self.ui.compareTableWidget.setRowCount(itemNumber +1) self.data_rows[itemNumber] = { 'base':data_row, 'base_name':data_row['name'], } item = QtGui.QTableWidgetItem() item.setText("%s" % self.data_rows[itemNumber]['base_name']) item_link = QtGui.QComboBox() item_link.setEditable(True) item_link.setModel(self.listLink) item_link.setModelColumn(1) self.link_rows[itemNumber] = item_link self.connect(self.link_rows[itemNumber], QtCore.SIGNAL("currentIndexChanged(int)"),QtCore.SLOT("takeCell(int)")) self.ui.compareTableWidget.setItem(itemNumber, 0, item) self.ui.compareTableWidget.setCellWidget(itemNumber, 1, self.link_rows[itemNumber]) def compliteLinkBox(self): #Заполняет комбобоксы self.listLink = QtGui.QStandardItemModel(0,2) for link in self.link_data: link_id = QtGui.QStandardItem("%s" % link[self.link_key]) link_name = QtGui.QStandardItem(link['name']) self.listLink.appendRow([link_id, link_name])