Qt QGraphicsProxyWidget никогда не получает dragEnterEvent - PullRequest
0 голосов
/ 23 января 2012

Я пытаюсь сделать перетаскивание между виджетами, добавленными в QGraphicScene с помощью addWidget.

Я реализовал перетаскивание, как показано в документации Qt:

  • Включение отбрасывания с помощью setAcceptDrops (true) для целевого виджета
  • В моем mousePressEvent я создаю объект QDrag и запускаю QDrag :: exec () для этого объекта.

но dragEnterEvent никогда не вызывается ни для моего пользовательского виджета, ни для proxywidget, возвращаемого addWidget.

Другие события перенаправляются на мой виджет ок.

Есть предложения?

1 Ответ

0 голосов
/ 16 сентября 2012

Насколько я знаю, вам нужно переопределить dragEnterEvent в вашем дочернем виджете, это означает, что недостаточно просто вызвать setAcceptDrops(true) для виджета. Затем происходит то, что дочерний виджет вызывает его dragEventEnter -функцию, но по умолчанию он ничего не делает. Как ребенок должен узнать о вашей dragEventEnter -функции в главном окне? Он должен быть в самом дочернем виджете, поэтому вы должны создать его подкласс, как описано в документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...