2011-04-22 7 views
0

Est-il possible de redimensionner automatiquement une fenêtre Tk à la largeur et la hauteur du texte à l'intérieur du tracé de texte?Perl TK redimensionner la fenêtre

+0

Dites-nous en plus sur le texte. Est-ce une seule ligne? Voulez-vous le redimensionner de sorte que tout le texte s'insère dans une seule ligne? Encore mieux, téléchargez une image sur [imgur] (http://imgur.com/) avec la fenêtre que votre code dessine et une esquisse de la façon dont vous aimeriez la regarder. –

+0

Fondamentalement, le script affiche la taille du disque de tous les répertoires dans C: \. Je voudrais que la largeur et la hauteur de la fenêtre soient automatiquement redimensionnées à la largeur et à la hauteur correctes du tracé de texte (de sorte que toute la largeur et la hauteur du texte s'ajustent à l'écran sans défilement). –

Répondre

1

Vous pouvez facilement mesurer la largeur du texte est dans une police particulière:

$font = $widget->Font(....);    # Get the font however you want 
$lineWidth = $font->measure($text);  # Do this for each line; take the max 
$lineHeight = $font->metrics(-linespace); # Get the height of a line; x # lines 

Ajouter un peu de pâtée pour les bordures, etc., et l'utiliser pour définir la taille du premier niveau:

Si ce n'est pas un niveau supérieur que vous souhaitez contrôler, il est plus facile de le faire en plaçant le contenu dans un cadre et en contrôlant la taille de ce cadre (même méthode, mêmes options). Sachez également que si vous avez trop de lignes ou trop de lignes, cela ne rentrera pas sur l'écran.

Questions connexes