37 lines
842 B
Python
37 lines
842 B
Python
from PyQt5.QtWidgets import QListWidget, QListWidgetItem
|
|
|
|
|
|
class DictList(QListWidget):
|
|
|
|
def __init__(self, data, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
self.data = {}
|
|
self.update(data)
|
|
|
|
def update(self, data):
|
|
for k, v in data.items():
|
|
self.add(k, v)
|
|
|
|
def add(self, key, value):
|
|
if key not in self.data:
|
|
itm = QListWidgetItem(key)
|
|
self.addItem(itm)
|
|
self.data[key] = value
|
|
|
|
def get(self, index):
|
|
key = self.get_key(index)
|
|
value = self.data[key]
|
|
return key, value
|
|
|
|
def get_value(self, index):
|
|
_key, value = self.get(index)
|
|
return value
|
|
|
|
def get_key(self, index): # this relies on dict being ordered
|
|
lst = list(self.data)
|
|
row = index.row()
|
|
return lst[row]
|
|
|
|
|
|
|