Bonjour,
J’essaie d'afficher un sf::text centré dans un bouton mais je constate que l'alignement vertical n'est pas correct lors de l'affichage. Dans l'exemple ci-dessous, j'affiche un sf::text entoutré d'un rectangle qui est sensé représenter sa zone d'affichage mais le sf::text s'affiche en dessous.
void SLabel::draw(sf::RenderTarget &p_target, sf::RenderStates p_states) const
{
// label est un membre de ma classe de type sf::text
p_states.transform *= getTransform();
sf::RectangleShape rect(sf::Vector2f(label.getLocalBounds().width, label.getLocalBounds().height));
rect.setPosition(label.getPosition());
rect.setOutlineColor(sf::Color::Red);
rect.setFillColor(sf::Color::Transparent);
rect.setOutlineThickness(1);
p_target.draw(rect, p_states);
p_target.draw(label, p_states);
}
En cherchant par-ci par-là j'ai lu que la zone d'affichage d'un sf::text dépendaient de la hauteur du plus haut caractère contenu dans la police et non du plus haut caractère affiché.
Du coup je suis un peu paumé. Apparemment getLocalBound me retourne bien la hauteur maximale de mon texte affiché donc il faudrait que je connaisse la hauteur du plus haut caractère de ma police pour créer un décalage et du coup positionner correctement mon sf::text.
Comment connaitre cette taille ?
Merci