Newer
Older
from PyQt5.QtCore import Qt, pyqtSignal, pyqtSlot
from PyQt5.QtWidgets import QLabel, QAbstractItemView, QHBoxLayout, QPushButton
from utils.qtmodels.members_drag_drop_table_model import MembersDragDropTableModel
from utils.table import ElemTable
class MembersDragDropTable(ElemTable):
deleteClicked = pyqtSignal(int)
def __init__(self, id_, data, label_text, parent=None):
super(MembersDragDropTable, self).__init__(MembersDragDropTableModel(id_, data, num_columns=1), 0, [], parent)
self.id_ = id_
layout = QHBoxLayout()
self.lblName = QLabel(label_text)
layout.addWidget(self.lblName)
btn = QPushButton("-")
btn.clicked.connect(self.onDeleteClicked)
layout.addStretch()
layout.addWidget(btn)
self.layout.insertLayout(0, layout)
self.table.setDragDropMode(QAbstractItemView.DragDrop)
self.table.setDefaultDropAction(Qt.MoveAction)
self.table.setAcceptDrops(True)
self.table.setDragEnabled(True)
self.table.setDropIndicatorShown(False)
def removeMember(self, member_id):
self.source_model.removeMemberById(member_id)
def isEmpty(self):
return self.source_model.rowCount() <= 0
return self.source_model._data
@property
def name(self):
return self.lblName.text()
@property
def id_(self):
@id_.setter
def id_(self, id_):
self.source_model.id_ = id_
@pyqtSlot()
def onDeleteClicked(self):
self.deleteClicked.emit(self.id_)