2016-07-26 84 views
0

我試圖設置窗口(我用QLabel)看起來像PyQt4中 的圖像,所以我寫了這個代碼:的Python - PyQt的窗口中添加一些代碼後成爲不可移動

self.background_update = QPixmap(":/work/window.png") 
    update.setPixmap(self.background_update) 
    update.resize(self.background.width(), self.background.height()) 
    update.show() 

然後我試着刪除窗口的默認操作欄,並顯示它透明好看,所以我加入

update.setWindowFlags(Qt.FramelessWindowHint) 
    update.setAttribute(Qt.WA_TranslucentBackground) 

一切工作正常,但問題是:現在的窗口用鼠標(就像任何普通窗口)

成爲不可移動

我應該添加什麼來解決這個問題?並感謝

回答

0

不知道你在哪個平臺上,但在Linux上,你可以通過按Alt並用鼠標拖動來移動任何窗口。但是,如果這不起作用,你可以很容易地在你自己的代碼中實現類似的功能。

這裏有一個簡單的演示(左鍵單擊並拖動):

from PyQt4 import QtCore, QtGui 

class Window(QtGui.QWidget): 
    def __init__(self): 
     super(Window, self).__init__() 
     self.setWindowFlags(QtCore.Qt.FramelessWindowHint) 
     self.setMouseTracking(True) 
     self.setGeometry(600, 400, 200, 200) 

    def mouseMoveEvent(self, event): 
     if event.buttons() == QtCore.Qt.LeftButton: 
      self.move(event.globalPos() - self._startpos) 

    def mousePressEvent(self, event): 
     self._startpos = event.pos() 

if __name__ == '__main__': 

    import sys 
    app = QtGui.QApplication(sys.argv) 
    window = Window() 
    window.show() 
    sys.exit(app.exec_()) 
+0

我使用Windows,所以它不會工作? –

+0

@Malekpython。正如我所說:如果Alt +鼠標拖動不起作用,請嘗試我的腳本,這將工作。你真的嘗試過嗎?只是要清楚:我的腳本使用左鍵單擊並拖動,而不是Alt +拖動。 – ekhumoro

+0

是的,我試過了,它工作完美 –