Ich habe ein Pop-up, das ist eine Leinwand, für die ich dem Benutzer erlauben möchte, es in jede gewünschte Größe zu ziehen, aber es kann zu etwas sehr klein und unbrauchbar kollabieren. Gibt es eine Möglichkeit, eine Leinwandgröße zu setzen? (z. B. wie "wm minsize") Hoffentlich besteht die Antwort nicht darin, die Leinwand "in ein Fenster" einzubetten.Gibt es eine Möglichkeit, tcl/tk canvas minsize zu setzen?
Antwort
Die natürliche Mindestgröße für eine Leinwand ist 1 × 1.
Typischerweise wird die tatsächliche Mindestgröße für eine Leinwand durch den Geometrie-Manager eingerichtet; da die meiste Zeit wollen Sie für die Aufnahme einer Leinwand eine grid
verwenden Einstellung der Mindestgrößen für die entsprechende Zeile und Spalte sind der Schlüssel Sache (so können Sie Bildlaufleisten rechts anordnen):
set master .
set canvas .canv
# Go for a minimum size of 400x200
grid columnconfigure $master $canvas -minsize 400
grid rowconfigure $master $canvas -minsize 200
Die pack
GM doesn‘ t erlauben Sie, die minimale Größe überhaupt zu spezifizieren; Es verwendet ein Layout-Modell, das dieses Konzept nicht hat. Die place
lässt Sie alles direkt sagen, hilft aber in den meisten Situationen nicht wirklich. Wenn Sie die Zeichenfläche in ein anderes Widget einbetten (z. B. in ein Text-Widget), gibt es möglicherweise andere Optionen.
Beachten Sie, dass Sie nicht tatsächlich zwingen Sie das System, die Mindestgröße Direktiven zu befolgen, die Sie geben. Sie sind nur (wirklich starke) Hinweise. (Möglicherweise möchten Sie auch in den Befehl wm minsize
schauen, um die angeforderte Dimensionierung des gesamten Toplevel-Fensters zu steuern, aber das ist unabhängig; die minimale Größe des Widgets ist nicht die minimale Größe des gesamten Containers, obwohl sie interagieren können.)