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