J'ai un TextCtrl
dans mon programme wxPython et je souhaite définir sa largeur à exactement 3 caractères. Cependant, la seule façon de définir manuellement sa taille accepte uniquement les nombres de pixels. Est-il possible de spécifier des caractères au lieu de pixels?Définition de la largeur d'un TextCtrl wxPython en nombre de caractères
Répondre
Réalisez que la plupart des polices sont proportionnelles, ce qui signifie que chaque caractère peut prendre une largeur différente. WWW et lll sont les trois caractères, mais ils nécessitent des tailles de boîte de texte très différentes. Certaines polices, telles que Courier, sont conçues pour être de largeur fixe et n'auront pas ce problème. Malheureusement, vous n'avez aucun contrôle sur la police sélectionnée dans la zone de texte.
Si vous voulez toujours essayer ceci, la clé est d'obtenir la largeur d'un caractère en pixels, multipliez-le par le nombre de caractères, puis ajoutez un peu de remplissage pour les bordures autour des caractères. Vous trouverez peut-être ce pour être un bon point de départ:
http://docs.wxwidgets.org/stable/wx_wxdc.html#wxdcgetpartialtextextents
ou, comme litb suggère:
http://docs.wxwidgets.org/2.4/wx_wxwindow.html#wxwindowgettextextent
Il ne semble pas être un moyen. Vous pouvez cependant utiliser wxWindow::GetTextExtent
. Ceci est du code C++, mais peut être facilement adapté à wxPython:
int x, y;
textCtrl->GetTextExtent(wxT("T"), &x, &y);
textCtrl->SetMinSize(wxSize(x * N + 10, -1));
textCtrl->SetMaxSize(wxSize(x * N + 10, -1));
/* re-layout the children*/
this->Layout();
/* alternative to Layout, will resize the parent to fit around the new
* size of the text control. */
this->GetSizer()->SetSizeHints(this);
this->Fit();
Ceci est, vous prenez la taille d'un caractère de largeur raisonnable (polices de caractères peuvent avoir des caractères de largeur variable) et multiplier correctement, en ajoutant une petite valeur compte pour le remplissage natif (disons, 10px).
- 1. wxPython TextCtrl transformer en MAJUSCULES
- 2. wxPython: comment rechercher du texte dans un TextCtrl?
- 3. Modification de la hauteur d'un objet dans wxPython
- 4. Redimensionner automatiquement les colonnes en fonction du nombre de caractères
- 5. Comment déterminer le nombre maximal de caractères pour une police à largeur fixe et une largeur maximale en pixels
- 6. Est-il possible de limiter TextCtrl pour n'accepter des nombres que dans wxPython?
- 7. Définir la largeur maximale du cadre avec défilement dans wxPython
- 8. Définition de la largeur d'un menu dans l'API Windows
- 9. Trouver la largeur de caractères pour faire wordwrap
- 10. Définition dynamique de la taille de wx.GridBagSizer
- 11. Définition de bits spécifiques dans un nombre
- 12. Définition de l'image PPP en fonction de la hauteur/largeur C#
- 13. Définition par programme de la hauteur/largeur de l'image à partir de la base de données
- 14. Définition de la largeur d'une zone de liste déroulante Silverlight pour accueillir l'élément le plus large
- 15. Définition dynamique de la largeur et de la hauteur de l'info-bulle
- 16. Nombre de caractères dans NSString ou NSMutableString?
- 17. Limite Nombre de caractères dans C# Chaîne
- 18. Comment puis-je mesurer combien de caractères correspondront à la largeur du document?
- 19. wxPython: Utilisation de EVT_IDLE
- 20. Définition d'un symbole de jeu de caractères dans dylib
- 21. wxPython: Création d'un panneau à hauteur fixe
- 22. Définition du codage de caractères avec le paramètre de demande
- 23. Modifier dynamiquement la largeur de la colonne Datagrid dans FLEX
- 24. Comment calculer la largeur d'une chaîne de caractères d'une police et d'une taille de police spécifiques?
- 25. Définition de caractères Unicode dans les images Java
- 26. wxPython, Définir la valeur de StaticText()
- 27. Aide de la barre d'outils wxPython
- 28. Obtention de la police de caractères Eclipse
- 29. Limiter la largeur de la table
- 30. Définition dynamique de la hauteur d'un DIV