def updateMacList(self, record): try: device = next(d for d in self.devices if d.mac == record.mac) except Exception: # no record found, so create one as well as a widget device = Device() device.mac = record.mac self.devices.append(device) w = MacListWidget(device) w.activeStateChanged.connect(self.deviceActiveStateChanged) wi = QtGui.QListWidgetItem(self.listWidget) wi.setSizeHint(w.sizeHint()) self.listWidget.addItem(wi) self.listWidget.setItemWidget(wi, w) device.rssi = record.rssi_dec device.batt = record.batt device.count = device.count + 1 device.update()