def __init__(self, parent = None): super(ListTagWidget, self).__init__(parent) #Creazione componenti addButton = QPushButton("&Aggiungi Tag...") self.editButton = QPushButton("&Modifica Tag...") self.removeButton = QPushButton("&Rimuovi Tag") self.editButton.setEnabled(False) self.removeButton.setEnabled(False) self.listWidget = CustomList(self) #Creazione Layout layout = QGridLayout(self) layout.addWidget(self.listWidget, 1, 1, 1, 1) layout.addWidget(addButton, 2, 1) layout.addWidget(self.editButton, 3, 1) layout.addWidget(self.removeButton, 4, 1) self.setLayout(layout) self.setMaximumWidth(200) self.adjustSize() #Connessioni self.connect(addButton, SIGNAL("clicked()"), self.addTag) self.connect(self.editButton, SIGNAL("clicked()"), self.editTag) self.connect(self.removeButton, SIGNAL("clicked()"), self.delTag) self.connect(self.listWidget, SIGNAL("currentRowChanged(int)"), self.enableEditDel)
class ListTagWidget(QWidget): def __init__(self, parent = None): super(ListTagWidget, self).__init__(parent) #Creazione componenti addButton = QPushButton("&Aggiungi Tag...") self.editButton = QPushButton("&Modifica Tag...") self.removeButton = QPushButton("&Rimuovi Tag") self.editButton.setEnabled(False) self.removeButton.setEnabled(False) self.listWidget = CustomList(self) #Creazione Layout layout = QGridLayout(self) layout.addWidget(self.listWidget, 1, 1, 1, 1) layout.addWidget(addButton, 2, 1) layout.addWidget(self.editButton, 3, 1) layout.addWidget(self.removeButton, 4, 1) self.setLayout(layout) self.setMaximumWidth(200) self.adjustSize() #Connessioni self.connect(addButton, SIGNAL("clicked()"), self.addTag) self.connect(self.editButton, SIGNAL("clicked()"), self.editTag) self.connect(self.removeButton, SIGNAL("clicked()"), self.delTag) self.connect(self.listWidget, SIGNAL("currentRowChanged(int)"), self.enableEditDel) def addTag(self): dialog = AddTagDlg(self.listWidget, self) dialog.show() if dialog.exec_(): self.refreshSizeItems() def editTag(self): dialog = EditTagDlg(self.listWidget, self) dialog.show() if dialog.exec_(): pass def delTag(self): item = self.listWidget.itemWidget(self.listWidget.currentItem()).text() if item: msgBox = QMessageBox(self) msgBox.setText("Sei sicuro di voler eliminare il tag ""%s""?" % item) msgBox.setIcon(QMessageBox.Warning) msgBox.setWindowTitle("Rimuovi Tag") msgBox.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel) result = msgBox.exec_() if result == QMessageBox.Ok: self.listWidget.takeItem(self.listWidget.currentRow()) self.refreshSizeItems() elif result == QMessageBox.Cancel: return def enableEditDel(self, index): if index != -1: self.editButton.setEnabled(True) self.removeButton.setEnabled(True) else: self.editButton.setEnabled(False) self.removeButton.setEnabled(False) def refreshSizeItems(self): size = self.listWidget.size() for item in [self.listWidget.item(x) for x in range(self.listWidget.count())]: item.setSizeHint(QSize(item.sizeHint().width(), size.height()/(self.listWidget.count()) ))