Mickey hat geschrieben:So funktioniert das nicht - Fenster verschieben ist die Aufgabe des Fenstermanagers.
Bei Qt kommen solche Events nicht an, da eine Titelleiste nicht direkt zum Fenster gehört.
Ich weiss nicht genau, was Du machen willst, aber schau doch mal lieber bei QCanvas rein.
Hi Mickey!!
Erste einmal vielen dank, dass Du mir weiter helfen wolltest. Ich hab zwar deinen Rat verfolgt und mir QCanvas angeschaut, allerdings hat es mir nicht viel geholfen.
Naja, ich hab mein Problem auch so gelöst. Falls du interesse hast:
Code: Alles auswählen
import sys, string
from qt import *
class Glyph(QFrame):
def __init__ (self, *args):
apply (QFrame.__init__, (self, ) + args)
self.setFrameShape(QFrame.StyledPanel)
self.setFrameShadow(QFrame.Raised)
self.PushButton2 = QPushButton(self,"OK 1")
self.PushButton2.setGeometry(QRect(10,10,40,30))
self.PushButton2.setText("OK 1")
self.PushButton2_3 = QPushButton(self,"OK 2")
self.PushButton2_3.setGeometry(QRect(150,120,40,30))
self.PushButton2_3.setText("OK 2")
self.setMouseTracking(0)
def mousePressEvent (self, ev):
if ev.button () != Qt.LeftButton:
return
self.xold = ev.globalX()
self.yold = ev.globalY()
def mouseMoveEvent (self, ev):
if ev.state () != Qt.LeftButton:
return
dx = ev.globalX() - self.xold
dy = ev.globalY() - self.yold
self.move(self.x() + dx, self.y() + dy)
self.xold = ev.globalX()
self.yold = ev.globalY()
class MainWindow (QMainWindow):
def __init__ (self, *args):
apply (QMainWindow.__init__, (self, ) + args)
self.workspace = QWorkspace (self)
self.resize (800, 600)
self.setCentralWidget(self.workspace)
glyph = Glyph(self)
glyph.setGeometry(QRect(90,110,200,160))
glyph.show()
a = QApplication (sys.argv)
mw = MainWindow ()
mw.show ()
a.connect (a, SIGNAL ('lastWindowClosed ()'), a, SLOT ('quit ()'))
a.exec_loop ()
Mein neues Problem ist jetzt, wie binde ich ein QScrollView ein, damit rechts und unten am Rand ein Scrollbalken erscheint, falls das bewegliche Frame aus dem Fenster verschoben wird.
Ích hab schon einiges Versuch, bin aber kein Schritt vorangekommen. Hast du vielleicht eine Idee?
Gruß egge
