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