Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Djesteur le Novembre 19, 2014, 04:43:42 pm

Titre: Redimensionnement Qt + SFML
Posté par: Djesteur le Novembre 19, 2014, 04:43:42 pm
Bonjour,

je n'arrive pas a redimensionner correctement mon rendu SFML, qui hérite de QSFMLCanvas, et qui est inclut dans un autre widget (ma fenêtre). J'ai essayé plusieurs choses (dont ce qui est proposé sur le tuto, à la différence que je redimensionne dans une de mes fonction et non lorsque la fenêtre est redimmensionné manuellement) mais j'arrive a chaque fois sur cela:

(http://www.qtfr.org/img/members/147259/mini_probleme4-1.png)

J'utilise ce code:


    resize(parent->size().width(), parent->size().height()); //parent est le widget parent

    setView(View(FloatRect(0, 0, size().width(), size().height())));

 

Une idée ?
Titre: Re : Redimensionnement Qt + SFML
Posté par: Glân de Brylan le Novembre 22, 2014, 09:42:58 pm
Le peu de code a l'air correct et l'image que tu as donné est ridiculement petite, on ne voit pour ainsi dire rien...
Avec des conditions pareilles, c'est difficile de donner un avis.
Titre: Re : Redimensionnement Qt + SFML
Posté par: Djesteur le Novembre 23, 2014, 12:03:42 pm
(http://www.qtfr.org/img/members/147259/probleme4-1.png)
Voila la même, en plus grande. La partie en noire est voulu, le reste est en cyan car je fais un clear(Color::Cyan); avant d'afficher le reste.

Et là l’intégralité de ma fonction redimensionner, qui est découpé en 2 partie. Tout d'abord le redimensionnement du widget parent (car les options sont des widget qui font parties de la fenêtre principale) :


if(resolution->currentText() == "800x600") { setFixedSize(800, 600); } // Je n'en met qu'un mais il y en a normalement plusieurs, pour plusieurs résolutions d'écran.

game->redimensionner();

 

et là l'intégralité de ma fonction redimensionner de mon objet game :

void Game::redimensionner(){

    resize(parent->size().width(), parent->size().height());

    setView(View(FloatRect(0, 0, size().width(), size().height())));

   // interface->resize(size().width(), size().height()); n'affecte en rien la taille du rendu/de la fenêtre

}