Frage

Ich möchte in meinem Fenster einen Canvas mit einem Bild setzen, und dann will ich Pack Widgets oben drauf, so dass die Leinwand dient als Hintergrund.

Ist es möglich, zwei Zustände für die pack Manager haben: eine für eine Reihe von Widgets und eine andere für einen anderen Satz

War es hilfreich?

Lösung

Die Antwort auf Ihre Frage ist nein. Sie können nicht zwei Zustände haben oder sonst Pack zwei verschiedene Arten in den gleichen Eltern verwenden.

Aber was ich glaube, Sie wollen zu tun ist einfach. Verwenden Sie die integrierten Funktionen der Leinwand ein Bild Element zu erstellen, die Teil der Leinwand ist, dann wird es in die Leinwand packen, als ob es ein Rahmen waren.

Sie können eine ähnliche Sache erreichen, indem ein Label-Widget mit einem Bild erstellen, dann andere Widgets in das Etikett packen.

Ein Vorteil einer Leinwand zu verwenden ist, dass Sie ein Bild leicht Kachel kann die ganze Leinwand mit einem sich wiederholenden Hintergrundbild zu füllen, um das Fenster das Bild wächst weiterhin um das Fenster füllen (natürlich können Sie nur eine ausreichend große Original verwenden Bild ...)

Andere Tipps

Ich glaube, dass Bryan Antwort ist wahrscheinlich die beste allgemeine Lösung. an der Sie können jedoch auch Ort Geometry-Manager zu suchen. Der Ort Geometrie-Manager können Sie die genaue Größe und Position des Widgets festlegen ... die schnell langweilig bekommen, aber wird der Job zu erledigen.

  

... wandte sich als undurchführbar sein, weil ich wollte, Etiketten und mehr Leinwänden, um es hinzuzufügen, aber ich kann keinen Weg finden, um ihre Hintergründe transparent zu machen

Wenn es akzeptabel ist, eine zusätzliche Erweiterung zu laden, werfen Sie einen Blick auf Tkzinc . Von der Website,

  

Tkzinc (genannt historisch Zink) Widget ist sehr ähnlich die Tk-Leinwand, dass sie beide Unterstützung strukturierte Grafiken. Wie die Leinwand, implementiert Tkzinc Elemente verwendet grafische Einheiten angezeigt werden soll. können diese Elemente manipuliert und Bindungen werden können, die mit ihnen verbunden sein Interaktion Verhalten zu implementieren. Aber anders als die Leinwand, Tkzinc die Elemente in einer Hierarchie strukturieren kann, Träger für die Skalierung und Rotation kann Clipping für Teilbäume von der Artikelhierarchie festgelegt werden, unterstützt muti-Konturkurven. Es bietet auch erweiterte Rendering mit Hilfe von OpenGL, wie Farbverlauf, Anti-Aliasing, Folien und einem Dreiecke Artikel.

Ich verwende es derzeit an einem tcl Projekt und bin ganz zufrieden mit den Ergebnissen. Erweiterungen für tcl, Perl und Python zur Verfügung.

Nicht ohne Widget Bäume in Swapping und aus, was ich denke, nicht sauber mit Tk getan werden kann. Andere Toolkits können dies tun, ein wenig mehr elegant.

  • COM / VB / MFC können dies mit einem ActiveX-Steuerelement - Sie können / show verbergen mehrere ActiveX-Steuerelemente in der gleichen Region. Jeder der Behälter lassen Sie dies tun, indem das Kind um zu ändern. Wenn Sie ein Windows-spezifischen Programm tun können Sie in der Lage sein, es auf diese Weise zu erreichen.
  • QT wird auch Sie tun dies in ähnlicher Weise.
  • GTK ist etwas härter.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top