在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)效果也没有窗口管理器处理的好看。
所以我的问题是,我漏掉了什么?我该怎么做才能把未使用的点击/拖动事件传递给窗口管理器,以便移动窗口呢?
2 个回答
0
请注意,这是KDE的一个功能,主要在Oxygen和Breeze这两种小部件样式中实现。
1
原来,要让一个窗口可以通过它的额外空间来拖动,你需要让这个窗口继承自QMainWindow或QDialog,而不仅仅是QWidget。就是这么简单。