Я использую QTableView, на котором я установил свою собственную пользовательскую модель, наследующую от QAbstractTableModel, используя вызов QTableView :: setModel().Qt: различать перетаскивание из того же или другого окна
Вид таблицы поддерживает перетаскивание: мой класс модели reimplements mimeData() и dropMimeData(). Элементы можно перетаскивать и удалять даже между двумя экземплярами приложения.
То, что я хотел бы получить, это: dropMimeData() должен определить, произошел ли отбрасываемый элемент из того же окна или из другого окна другой запущенной копии приложения. И в каждом случае это должно вести себя по-разному.
Использование аргумента Действия Qt :: DropAction dropMimeData() казались наиболее естественными, но это не работает: это всегда Qt :: CopyAction или Qt :: MoveAction, независимо от исходного окна, и зависит только от на defaultDropAction QTableView.
Возможно ли это?
Что делать, если вы кодируете эту информацию в данные mime и декодируете ее при удалении элемента? – vahancho
Для этого потребуется общесистемный уникальный идентификатор исходного окна. Есть ли такая вещь? – user377486
Я бы подумал проще - просто придумайте свой идентификатор (ы) и запишите их в данные mime как байтовый массив или такой. – vahancho