class LogWidget(QWidget): def __init__(self, parent=None, thread=None, iconsize=32): QWidget.__init__(self, parent=parent) self.log = QListWidget() self.log.setSortingEnabled(True) layout = QVBoxLayout(self) layout.addWidget(self.log) self.iconsize = iconsize self.thread = thread assert (thread is not None) self.thread.update.connect(self.update_progress) self.thread.start() def update_progress(self, progress): if not progress: return title, description, date, icon = progress entry = EntryWidget() entry.setTitle(title) entry.setDescription(description) entry.setDate(date) entry.setIcon(QIcon.fromTheme(icon)) item = QListWidgetItem(self.log) item.setSizeHint(entry.sizeHint()) self.log.insertItem(0, item) self.log.setItemWidget(item, entry)
class SidebarWidget(QWidget): def __init__(self, parent=None, thread=None, iconsize=32): QWidget.__init__(self, parent=parent) self.list = QListWidget() self.list.setAttribute(Qt.WA_TranslucentBackground) self.list.setSortingEnabled(True) layout = QVBoxLayout(self) layout.addWidget(self.list) self.iconsize = iconsize def addEntry(self, title, description, icon): entry = EntryWidget() entry.setTitle(title) entry.setDescription(description) entry.setDate("") entry.setIcon(QIcon.fromTheme(icon)) item = QListWidgetItem(self.list) item.setSizeHint(entry.sizeHint()) self.list.insertItem(0, item) self.list.setItemWidget(item, entry) return self.list.count()