2016-07-26 29 views
0

Ich versuche, ein Fenster zu setzen (i verwendet QLabel) wie ein Bild aussieht in PyQt4 so schrieb ich diesen Code:Python - PyQt Fenster wurden unmovable nach einigen Codes hinzugefügt

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

dann habe ich versucht, die Fenster Standardaktionsleiste entfernen und zeigt es transparent gut aussehen, so hinzugefügt i

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

alles hat gut funktioniert, aber das Problem ist: das Fenster wurde nun unbewegliches unter Verwendung der Maus (wie ein normales Fenster)

was sollte ich hinzufügen, um das zu beheben? und danke

Antwort

0

Nicht sicher, auf welcher Plattform Sie sind, aber unter Linux können Sie jedes Fenster verschieben, indem Sie Alt drücken und mit der Maus ziehen. Aber wenn das nicht funktioniert, können Sie ganz einfach ähnliche Funktionen in Ihrem eigenen Code implementieren.

Hier ist eine einfache Demo (links klicken und ziehen):

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

i Fenster verwenden, so wird es nicht funktionieren? –

+0

@Malekpython. Wie gesagt: Wenn alt + Maus-Ziehen nicht funktioniert, versuche mein Skript, das funktioniert. Hast du es tatsächlich versucht? Und um klar zu sein: Mein Skript verwendet Linksklick und Ziehen, nicht Alt + Ziehen. – ekhumoro

+0

Ja, ich habe es versucht und es hat perfekt funktioniert –