FramelessWindowHint / Transparentes QWidget versch.

Alles rund um die Programmierung mit Qt
Antworten
'Prest1ge.
Beiträge: 20
Registriert: 24. Mai 2012 14:37

FramelessWindowHint / Transparentes QWidget versch.

Beitrag von 'Prest1ge. »

Hallo liebes qtforum. :)

Ich habe da eine ganz interessante Frage was das Verschieben eines "Qt::FramelessWindowHint bzw. transparenten" QWidgets angeht.

Und zwar habe ich schon unter den Qt-Examples die "Shaped Clock" durchforstet in dem man das durchsichtige Widget "direkt"
per Qt::LeftButton über ein mousePressEvent() und ein mouseMoveEvent() verschiebt / verschieben kann.

Das funktioniert auch soweit ganz gut, jedoch bin ich auf der Suche nach der Option die zB. jedes Nautilus-Fenster oder ein simpler Taschenrechner bietet.

Und zwar gehe ich / bzw. richte ich diese Frage mehr an Ubuntu-User, die mit dem Nautilus-Explorer arbeiten.
Klickt doch bitte einfach mal auf den linken-oberen Optionsknopf eines beliebigen Nautilus-Fensters oder den gnome-calculator.

Dort hat man die Option "Verschieben" (zu englisch wahrscheinlich "move").
Klickt man darauf springt der Maus-Cursor direkt in die Mitte des Nautilus-Fensters oder eben zB. den Taschenrechner
und man kann dieses Fenster direkt verschieben bis zum nächsten klick der dieses dann platziert.

Da ich derzeit an einer "Transparenten"-Analoguhr arbeite hätte ich diese Funktion gerne
in mein Kontextmenü dieser Uhr mit eingebaut, so dass der Benutzer eben diese Option
anwählen kann und die Uhr direkt so wie mit Nautilus beschrieben verschieben kann.
Zuletzt geändert von 'Prest1ge. am 1. Juni 2012 10:36, insgesamt 2-mal geändert.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Qt::FramelessWindowHint / Transparentes QWidget verschie

Beitrag von franzf »

Das hat doch nix mit Nautilus zu tun, das ist die Deko und darum kümmert sich (meist) der WindowManager. KWin bietet diese Option auch an.
QCursor::setPos() um den Cursor zu setzen (Umrechnen in "Mittelpunkt des Fensters " ist dir überlassen), mouseMoveEvent() sollte dann auch problemlos gehen, ebenso mousePress.
'Prest1ge.
Beiträge: 20
Registriert: 24. Mai 2012 14:37

Re: Qt::FramelessWindowHint / Transparentes QWidget verschie

Beitrag von 'Prest1ge. »

Das mit Nautilus war nur als Beispiel gedacht. :wink:

Wie gesagt funktioniert das auch soweit ganz gut,
nur irgendwie "ruckelt" mein Widget beim verschieben über das mouseMoveEvent().

Ausserdem nutze ich den "Wobbly"-Fenster-Effekt der beim verschieben nicht funktioniert.

Woran könnte das liegen :?:

Edit:
Also ich will ja eigendlich nur diese "Verschieben-Option" des Fenster-Managers "emulieren / auslösen.
Mit anderen Worten würde ich gerne genau diese Funktion nutzen um mir nicht selbst erst so ein Event schreiben zu müssen.
Antworten