def mouseReleaseEvent(self, ev: QtGui.QMouseEvent) -> None: self.releaseMouse() self.clicked = False index = -1 if self.buttonPressed == Qt.RightButton: listWidget = self.mainWindow.listWidget else: from MyListWidget import MyListWidget listWidget: MyListWidget for listWidget in self.mainWindow.findChildren(MyListWidget): pos = listWidget.mapFromGlobal(ev.globalPos()) if listWidget.rect().contains( pos) and listWidget.count() < listWidget.maximumItems: index = listWidget.indexAt(pos).row() break else: listWidget = None if listWidget is not None: icon = QIcon(self.pixmap()) item = QListWidgetItem(icon, "") item.filename = self.filename if index == -1: listWidget.addItem(item) else: listWidget.insertItem(index, item) self.setParent(None)
def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) listWidget = MyListWidget(self) listWidget.setFixedSize(500, 600) self.listWidget = listWidget subsListWidget = MyListWidget(self) subsListWidget.setFixedSize(650, 100) subsListWidget.verticalScrollBar().setDisabled(True) subsListWidget.maximumItems = 7 self.subsListWidget = subsListWidget layout = QVBoxLayout() layout.addWidget(self.listWidget) layout.addWidget(self.subsListWidget) centralWidget = QWidget() centralWidget.setLayout(layout) self.centralWidget = centralWidget self.setCentralWidget(self.centralWidget) '''json file contains positions of "outfield" players''' players = playersFilenames = subs = [] try: with open('players.txt', 'r') as file: data = json.load(file) players = data['players'] playersFilenames = [player['filename'] for player in players] subs = data['subs'] except TypeError: pass images_directory = 'Players/' subs_list = [None] * 7 index = -1 for filename in os.listdir(images_directory): for group in playersFilenames, subs: try: index = group.index(filename) break except ValueError: pass else: group = None if group is playersFilenames: label = MovableLabel(self, filename) label.move(players[index]['x'], players[index]['y']) else: item = QListWidgetItem(QIcon(images_directory + filename), '') item.filename = filename if group is subs: subs_list.insert(index, item) else: listWidget.addItem(item) for sub in subs_list: if sub is not None: subsListWidget.addItem(sub) # self.setStyleSheet("background-color: black;") self.showMaximized() self.setAcceptDrops(True)