Tkinter: Maus-ziehen Sie ein Fenster, ohne Grenzen, zB. overridedirect(1)

Irgendwelche Vorschläge, wie könnte man das anlegen von event-Bindungen erlauben würde, dass ein Benutzer durch ziehen mit der Maus ein Fenster ohne Grenzen, zB. ein Fenster erstellt, mit overridedirect(1)?

Anwendungsfall: Wir möchten zum erstellen einer unverankerten Symbolleiste/palette-Fenster (ohne Grenzen), dass unsere Benutzer können ziehen Sie, um auf Ihren desktop.

Hier, wo ich bin in meinem denken (pseudo-code):

  1. window.bind( '<Button-1>', onMouseDown ) zum erfassen der anfänglichen position der Maus.

  2. window.bind( '<Motion-1>', onMouseMove ) zu verfolgen, die position der Maus, wenn es beginnt, sich zu bewegen.

  3. Berechnen, wie viel die Maus bewegt hat, und berechnen Sie newX, newY Positionen.

  4. Verwenden window.geometry( '+%d+%d' % ( newX, newY ) ) zu Fenster bewegen.

Tut Tkinter auszusetzen genug Funktionalität, um mir zu erlauben, Umsetzung der Aufgabe zur hand? Oder gibt es einfachere/höhere Ebene Möglichkeiten, das zu erreichen, was ich will zu tun?

  • Das klingt genau das Gegenteil von dem, was Sie Fragen, in Ihrer vorherigen Frage, d.h. ein Fenster erstellen, das nicht verschoben werden kann oder angepasst wird. Wenn Sie wollen einfach nur ein Fenster, das können Sie nicht Größe, und befestigen Sie anschließend das Fenster " min-und max-Größe und damit der Benutzer das Fenster verschieben über die Titelleiste. Oder bin ich nicht verstehen, was Sie versuchen zu erreichen?
  • Der Einsatz bei der letzten Frage war es, erstellen Sie ein angedocktes Fenster Wirkung, zB. wo ein Fenster angedockt war, um eine bestimmte position auf dem desktop des Benutzers. Tkinter stellt .minsize() und .maxsize() window-Methoden, aber es gibt keine gleichwertige Methoden für die Steuerung von Fenster x -, y-Positionen auf dem desktop. Sie sind richtig - die Frage oben ist fast das Gegenteil meiner früheren Frage. Der Unterschied ist der Anwendungsfall, wie zB. meine neue Frage ist, basierend auf die Notwendigkeit für die Nutzer zu ziehen kleine schwebende Symbolleiste ("palette") windows auf Ihren desktop ...
  • ... Fortsetzung von oben: Diesen schwebenden Symbolleisten müssen nicht sein position eingeschränkt. Aus ästhetischen Gründen wollen wir diese schwebende Symbolleiste windows/Paletten werden windows-ohne-Grenzen " (wir fügen die Grenze Erscheinungen selbst). Danke für Eure Hilfe!
InformationsquelleAutor Malcolm | 2010-10-29
Schreibe einen Kommentar