2011-08-19 49 views

回答

2

使用QSizeGrip

的QSizeGrip類提供了調整頂級窗口大小調整手柄。

3

我剛剛遇到了這個問題,我通過爲我的QMainWindow添加自定義mouseEvent處理程序來解決它。我使用PyQt的,但它應該在C非常相似++。

我在執行,任何地方拖動無邊框的窗口小部件(稱爲MyClass)鼠標右鍵調整它的大小。

當按下鼠標右鍵,保存座標:

def mousePressEvent(self, event): 
    super(MyClass, self).mousePressEvent(event) 

    if event.button() == QtCore.Qt.RightButton: 
     self.rdragx = event.x() 
     self.rdragy = event.y()   
     self.currentx = self.width() 
     self.currenty = self.height() 
     self.rightClick = True 

如果鼠標移動,同時按鈕被按下仍然(即,當它拖),調整QMainWindow的。不要讓它變得比預定的最小尺寸。

def mouseMoveEvent(self, event): 
    super(Myclass, self).mouseMoveEvent(event) 
    if self.rightClick == True: 
     x = max(frame.minimumWidth(), 
       self.currentx + event.x() - self.rdragx) 
     y = max(frame.minimumHeight(), 
       self.currenty + event.y() - self.rdragy) 
     self.resize(x, y) 

當釋放鼠標按鈕時,將按鈕變量重置爲False以停止移動時調整大小。

def mouseReleaseEvent(self, event): 
    super(MyClass, self).mouseReleaseEvent(event) 
    self.rightClick = False