def dropEvent(self, event): QListWidget.dropEvent(self, event) client_ids_list = [] for i in range(self.count()): item = self.item(i) #widget = self.itemWidget(item) client_id = item.getClientId() client_ids_list.append(client_id) server = GUIServerThread.instance() if server: server.toDaemon('/ray/session/reorder_clients', *client_ids_list)
def dropEvent(self,event): # override drop event so we can repopulate the table view text = self.currentItem().text() ret = QListWidget.dropEvent(self,event) self.writeNames() self.selectTable(text) return ret
def tab2UI(self): layout = QGridLayout() layout.setContentsMargins(10, 10, 10, 10) layout.setSpacing(10) radio_line = QRadioButton('line') radio_scatter = QRadioButton('scatter') layout.addWidget(QLabel(self.translate('Curve Type')), 0, 0, 1, 1) layout.addWidget(radio_line, 0, 1, 1, 1) layout.addWidget(radio_scatter, 0, 2, 1, 1) lineWidth = SpinBox(lower=1) layout.addWidget(QLabel(self.translate('Curve Width')), 1, 0, 1, 1) layout.addWidget(lineWidth, 1, 1, 1, 1) symbolSize = SpinBox(lower=1) layout.addWidget(QLabel(self.translate('Symbol Size')), 2, 0, 1, 1) layout.addWidget(symbolSize, 2, 1, 1, 1) def saveColors(): array = [] for i in range(colorList.count()): item = colorList.item(i) color = item.background().color() array.append(color) self.setSetting('Curve/colors', array) colorList = QListWidget() colorList.setFixedWidth(80) colorList.setDragEnabled(True) colorList.setProperty("showDropIndicator", True) colorList.setDragDropMode(QAbstractItemView.DragDrop) colorList.setDefaultDropAction(Qt.MoveAction) drop = colorList.dropEvent colorList.dropEvent = lambda x: drop(x) or saveColors() layout.addWidget(QLabel(self.translate('Color Sequence')), 3, 0, 1, 1) layout.addWidget(colorList, 3, 1, 7, 1) applyBtn = QPushButton(self.translate('Apply')) layout.addWidget(applyBtn, 10, 0, 1, 4) ctype = self.defaultSetting('Curve/type', 'line') if ctype == 'line': radio_line.setChecked(True) else: radio_scatter.setChecked(True) lineWidth.setValue(int(self.defaultSetting('Curve/width', 3))) symbolSize.setValue(int(self.defaultSetting('Curve/size', 5))) colors = self.defaultSetting( 'Curve/colors', ['#FF0000', '#0000FF', '#00FF00', '#FFFF00', '#FF00FF', '#00FFFF']) for color in colors: item = QListWidgetItem() #item.setText(color) #item.setTextColor(QColor(color)) brush = QBrush(QColor(color)) brush.setStyle(Qt.SolidPattern) item.setBackground(brush) colorList.addItem(item) def changeColor(): items = colorList.selectedItems() if len(items) == 0: return item = items[0] currentcolor = item.background().color() color = QColorDialog.getColor(currentcolor) if not QColor.isValid(color): return brush = QBrush(QColor(color)) brush.setStyle(Qt.SolidPattern) item.setBackground(brush) saveColors() def showMenu(): item = colorList.currentItem() if not item: delColorAction.setDisabled(True) else: delColorAction.setEnabled(True) menu.exec_(QCursor.pos()) def addColor(): color = QColorDialog.getColor(QColor('#000000')) if not QColor.isValid(color): return item = QListWidgetItem() brush = QBrush(QColor(color)) brush.setStyle(Qt.SolidPattern) item.setBackground(brush) citem = colorList.currentItem() if not citem: colorList.addItem(item) else: colorList.insertItem(colorList.currentRow(), item) saveColors() def delColor(): colorList.takeItem(colorList.currentRow()) saveColors() menu = QMenu(colorList) addColorAction = QAction(self.translate('Add Color'), menu) delColorAction = QAction(self.translate('Del Color'), menu) menu.addAction(addColorAction) menu.addAction(delColorAction) addColorAction.triggered.connect(addColor) delColorAction.triggered.connect(delColor) colorList.setContextMenuPolicy(Qt.CustomContextMenu) colorList.customContextMenuRequested.connect(showMenu) radio_line.toggled.connect( lambda: self.setSetting('Curve/type', 'line')) radio_scatter.toggled.connect( lambda: self.setSetting('Curve/type', 'scatter')) lineWidth.valueChanged.connect( lambda x: self.setSetting('Curve/width', x)) symbolSize.valueChanged.connect( lambda x: self.setSetting('Curve/size', x)) colorList.doubleClicked.connect(changeColor) applyBtn.clicked.connect(self.drawCurves) self.stack2.setLayout(layout)
def dropEvent(self, *pargs, **kwargs): QListWidget.dropEvent(self, *pargs, **kwargs) self.item_dropped.emit()