Я внедряю API Qt для перетаскивания в Windows и X. Когда я забираю объект в приложении, работающем на X, и перетаскиваю его, он оставляет на нем нижний белый призрак, как если бы под ним было медленно перерисовываться, где перетаскиваемый объект ранее заслоняла часть себя.
Я считаю, что это является симптомом той же проблемы, что Qt только что решил с помощью изменение размеров окон, вызывающих мерцание в дочерних виджетах в X-окнах - т.е. перетаскиваемый объект рассматривается как отдельное собственное окно, и поэтому X обрабатывает обрезку с перетаскиваемого объекта в окно под ним. Так как X делает это по-другому с Qt, мы получаем эффект ореола.
Кто-нибудь испытывал те же проблемы? Одним из решений, которое приходит на ум, является использование той же методики, что и в статье в блоге, приведенной выше, и остановке перетаскиваемого объекта, который рассматривается как родное окно, предположительно за счет перетаскивания, ограниченного только моим приложением (у меня нет проблема с этим). Кто-нибудь знает, как заставить операции перетаскивания быть только внутренними?
РЕДАКТИРОВАТЬ: Я использую QDrag::setPixmap
для установки графического представления перетаскиваемого объекта - важно сохранить это в пользу стандартного курсора перетаскивания, поскольку этот интерфейс используется на сенсорного устройства и, следовательно, не будет иметь видимого курсора.