Я работаю над приложением на PySide 6, в котором реализована функция перетаскивания элементов для изменения их порядка. В программе пользователь может создавать элементы (такие как TextElement, HeaderElement, ImageElement), состоящие из заголовка и базовой структуры. Эти элементы можно перетаскивать и переставлять в списке.
В программе используется призрачный индикатор, который визуализирует место, куда элемент будет перемещаться при перетаскивании. Размер индикатора изменяется в соответствии с размером перетаскиваемого элемента, что позволяет пользователю видеть, куда будет вставлен элемент.
Элементы в программе имеют разные размеры, которые зависят от их содержимого. . Например, элемент с изображением может быть больше по высоте, чем элемент с текстом. Проблема возникает при перетаскивании элемента через другие элементы разного размера.
Когда я перетаскиваю элемент и перемещаю мышь мимо элементов большего или меньшего размера, индикатор-призрак начинает «прыгать». ", не понимая, где именно его нужно отобразить. Иногда призрак не держится в правильном положении или смещается в сторону. Более того, при отпускании элемента он не всегда оказывается там, где отображался призрак, что вызывает проблемы с правильным размещением.
![Видно, что при перемещении элемента-призрака курсором мыши призрак колеблется и меняет свое положение , пытаясь определить правильное место для вставки между другими элементами.]
Вот часть кода из моего класса DragWidget, который отвечает за определение местоположения призрака , это работало правильно, пока элементы были одинакового размера:
def _find_drop_location(self, e):
pos = e.position() # Get the cursor position
spacing = self.blayout.spacing() / 2 # Half of the spacing between items
for n in range(self.blayout.count()):
w = self.blayout.itemAt(n).widget() # Get each item
# Check for vertical orientation:
drop_here = (
pos.y() >= w.y() - spacing
and pos.y() = w.y() - spacing
and pos.y()
Подробнее здесь: https://stackoverflow.com/questions/791 ... n-dragging
Проблема с движением и поведением индикатора-призрака при перетаскивании элементов в PySide6. ⇐ Python
Программы на Python
1730998152
Anonymous
Я работаю над приложением на PySide 6, в котором реализована функция перетаскивания элементов для изменения их порядка. В программе пользователь может создавать элементы (такие как TextElement, HeaderElement, ImageElement), состоящие из заголовка и базовой структуры. Эти элементы можно перетаскивать и переставлять в списке.
В программе используется призрачный индикатор, который визуализирует место, куда элемент будет перемещаться при перетаскивании. Размер индикатора изменяется в соответствии с размером перетаскиваемого элемента, что позволяет пользователю видеть, куда будет вставлен элемент.
Элементы в программе имеют разные размеры, которые зависят от их содержимого. . Например, элемент с изображением может быть больше по высоте, чем элемент с текстом. Проблема возникает при перетаскивании элемента через другие элементы разного размера.
Когда я перетаскиваю элемент и перемещаю мышь мимо элементов большего или меньшего размера, индикатор-призрак начинает «прыгать». ", не понимая, где именно его нужно отобразить. Иногда призрак не держится в правильном положении или смещается в сторону. Более того, при отпускании элемента он не всегда оказывается там, где отображался призрак, что вызывает проблемы с правильным размещением.
![Видно, что при перемещении элемента-призрака курсором мыши призрак колеблется и меняет свое положение , пытаясь определить правильное место для вставки между другими элементами.]
Вот часть кода из моего класса DragWidget, который отвечает за определение местоположения призрака , это работало правильно, пока элементы были одинакового размера:
def _find_drop_location(self, e):
pos = e.position() # Get the cursor position
spacing = self.blayout.spacing() / 2 # Half of the spacing between items
for n in range(self.blayout.count()):
w = self.blayout.itemAt(n).widget() # Get each item
# Check for vertical orientation:
drop_here = (
pos.y() >= w.y() - spacing
and pos.y() = w.y() - spacing
and pos.y()
Подробнее здесь: [url]https://stackoverflow.com/questions/79167371/the-problem-with-the-movement-and-behavior-of-the-ghost-indicator-when-dragging[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия