Как в Pyqt включить перетаскивание/перемещение окон по пустому пространству виджета?

Основные приложения Qt и, насколько мне известно, большинство приложений KDE позволяют перетаскивать окна не только за их заголовок, но и за любое пустое место в окне. По какой-то причине базовое приложение Pyqt, подобное этому, не позволяет вам сделать это:

from PyQt4.QtGui import *
import sys

a = QApplication(sys.argv)
w = QWidget()
w.show()
sys.exit(a.exec_())

Я хочу включить перетаскивание окна с помощью виджетов в нем. Я нашел существующий вопрос и ответ StackOverflow, но он не использует оконный менеджер для фактического переместить окно, что (1) не похоже на другие приложения, (2) не так красиво, как когда это делает оконный менеджер.

Итак, мой вопрос: что мне не хватает? Как мне просто передать неиспользуемое событие щелчка/перетаскивания диспетчеру окон для перемещения окна?


person Ken Kinder    schedule 26.02.2013    source источник


Ответы (1)


Получается, что для того, чтобы окно можно было перетаскивать за дополнительное пространство на нем, вам нужно наследовать его от QMainWindow или QDialog, а не только от QWidget. Вот оно.

person Ken Kinder    schedule 28.02.2013