PyQt5, как визуализировать только выделенные ячейки

Я программист-любитель, поэтому, пожалуйста, извините за плохое кодирование.
Я пытаюсь создать перетаскивание для содержимого QTableWidget. Я попытался создать изображение для представления перетаскиваемого содержимого, когда происходит событие перетаскивания. В конце концов мне удалось выяснить, как заполнить изображение всей таблицы, отрисовав всю таблицу вместо только выделенных ячеек.

Вместо этого это то, что я хочу, когда происходит перетаскивание

import sys

from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QTableWidget, QTableWidgetItem,QFrame,QHBoxLayout,QTableWidgetSelectionRange)
from PyQt5.QtCore import Qt, QMimeData, QByteArray
from PyQt5.QtGui import QDrag, QPixmap

import pickle

# from PyQt5.QtCore import QSty

class SpreadSheet(QTableWidget):
def __init__(self,r,c, parent = None):
super().__init__(r,c, parent)
self.cellPressed.connect(self.on_press)
self.show()

def on_press(self):
# Disable drag ability being set previously
self.setDragEnabled(False)

# If selected cells greater than 1, allow dragging
if len(self.selectedIndexes()) > 1:
self.setDragEnabled(True)
test = [1,2,3]
data = QByteArray(pickle.dumps(test))
mime_data = QMimeData()
#mimetype, actual data
mime_data.setData('DataFrame', data)
pixmap = QPixmap(self.size())
self.render(pixmap)
hotSpot = self.pos()
drag = QDrag(self)
drag.setMimeData(mime_data)
drag.setPixmap(pixmap)
drag.setHotSpot(hotSpot)
dropAction = drag.exec_(Qt.MoveAction)

Интересно, знает ли кто-нибудь какой-либо способ заполнения (рендеринга) изображения только для выбранных ячеек в таблице.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]