Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - daijin12

Pages: [1]
1
Bonjour,

J'ai finalement réussi à résoudre ça en mettant SFML à jour depuis le dépôt git.

Cependant il faut toujours réimpléménter la fonction resizeEvent() :
void QSFMLCanvas::resizeEvent(QResizeEvent *event)
{
    setSize(sf::Vector2u(event->size().width(),event->size().height()));
 
}
 

Maintenant tout fonctionne bien pour Fedora et Windows

2
Je dis ça parce qu'en l'occurrence, c'est la fonction setSize() de la SFML qui ne répond pas.
La fonction resize() de Qt fonction bien, le QWIdget est bien redimensionné.

3
Ok.
Je peux essayer ça.
Comment en déduis tu que c'est la version Windows de Qt  qui bug et pas la version Windows de SFML?

4
Bonjour,

Je me permets de vous relancer.
Personne n'a déjà vu ce problème et saurait comment le régler?

Ce n'est pas vraiment urgent, vu que je travaille essentiellement sous linux, mais je pense ensuite diffuser un peu mon projet.
Donc j'aimerais savoir si c'est solvable ou si je dois complètement abandonner l'intégration de SFML à Qt.

5
Bonjour à tous,

J'ai un problème dans un programme qui utilise SFML 2.1 intégré dans une interface Qt5.
J'ai placé le QSFMLCanvas dans le layout d'un QStackedWidget, lui-même inséré dans le centralwidget d'un QMainWindow :
    Sfml = new QSFMLCanvas(this);
   
    widget_container = new QStackedWidget(this);
    widget_container->addWidget(Sfml);
    widget_container->setCurrentWidget(Sfml);
    widget_container->layout()->setAlignment(widget_container,Qt::AlignCenter);
    setCentralWidget(widget_container);
 

Sous linux (Fedora 18) cela fonctionne bien, le canvas est redimensionné en même temps que le QMainWindow.

Par contre, sous Windows 7, le canvas garde ça taille initiale et se positionne en bas à gauche du QMainWindow quand on le redimensionne.

J'ai tenté de voir ce qu'il se passait en mettant des prints de la taille du QWidget et de la Renderwindow dont hérite QSFMLCanvas dans la fonction resizeEvent() du QSFMLCanvas:
void QSFMLCanvas::resizeEvent(QResizeEvent *event)
{
    std::cout << size().width() <<" " << size().height()
              <<  " " << getSize().x << " " << getSize().y <<  std::endl;
}
 

et voilà un exemple de ce que ça me donne en sortie :
815 639 700 579
815 639 700 579
825 641 700 579
825 641 700 579
835 644 700 579
835 644 700 579
842 646 700 579

La taille du RenderWindow ne varie pas alors que le QWidget et bien redimensionné.

J'ai tenté de rajouter un setSize() dans la fontion resizeEvent() mais cela ne change absolument rien.
void QSFMLCanvas::resizeEvent(QResizeEvent *event)
{
    setSize(sf::Vector2u(event->size().width(),event->size().height()));
    std::cout << size().width() <<" " << size().height()
              <<  " " << getSize().x << " " << getSize().y <<  std::endl;
}
 

Si quelqu'un a une idée pour arranger cela, cela m'aiderait beaucoup

Merci d'avance,

daijin12

6
Ok en fait c'est bon j'ai résolu le problème.

C'était en effet un problème de dll. J'avais oublié que j'avais placé des dll de SFML 2.0 dans le dossier du .exe et il y eu un problème d'incompatibilité avec les linkage des lib de SFML 2.1 que j'ai faits dans le .pro

La solution a juste été de supprimer les dll dans le dossier de mon projet.

Merci pour le coup de pouce

7
Bonjour,

voici la façon dont je fais le linkage dans le .pro

LIBS += -LC:\Users\lpnhe\Documents\SFML-2.1\lib
CONFIG(release, debug|release): LIBS += -lsfml-audio -lsfml-graphics -lsfml-main -lsfml-network -lsfml-window -lsfml-system
CONFIG(debug, debug|release): LIBS += -lsfml-audio-d -lsfml-graphics-d -lsfml-main-d -lsfml-network-d -lsfml-window-d -lsfml-system-d

LIBS += -LC:\Users\lpnhe\Documents\SFML-2.1\extlibs\bin\x86 -lopenal32
LIBS += -LC:\Users\lpnhe\Documents\SFML-2.1\extlibs\bin\x86 -lsndfile-1

INCLUDEPATH += C:\Users\lpnhe\Documents\SFML-2.1\include
DEPENDPATH += C:\Users\lpnhe\Documents\SFML-2.1\include
 

J'ai rajouté openal et sndfile que je n'avais pas linkés en effet, mais cela ne change rien.

Je ne suis pas sûr d'avoir à linker libgcc...dll et libstdc++.dll car Qt Creator le fait automatiquement normalement et mon problème vient de l'exécution du programme avec Qt-Creator et pas quand je clique sur le .exe (je verrai ça plus tard, car c'est encore toute une autre histoire)

Dis moi si il y a quelque chose que j'ai mal compris.

8
Bonjour à tous,

J'ai un petit problème pour exécuter un programme mi-Qt mi-SFML avec Qt-Creator sous Windows 7 en 64 bits.

Ce programme est un prototype de tactical-rpg avec de nombreuses classes donc je ne peux pas vraiment le poster ici.

Il fonctionne très bien sous Fedora 18 ansi qu'en mode debug sous Windows et n'a aucun problème de compilation en mode release sous Window
Seulement quand j'éxecute le programme en mode release avec Qt-Creator sous Windows, je me retrouve avec la sortie d'appilcation "CHEMIN/VERS/LE/.EXE/MonProgramme.exe a quitté avec le code -1073741511"

Je travaille avec SFML 2.1 que j'ai compilé en suivant scrupuleusement le tuto suivant : https://github.com/SFML/SFML/wiki/Tutorial%3A-Compile-and-Link-SFML-with-Qt-Creator en debug et en release ainsi qu'avec Qt SDK 1.2.1-1 avec le compilateur MinGW 4.4.0-2.

J'ai aussi essayé de compiler SFML avec cmake-gui comme décrit ici : http://www.sfml-dev.org/tutorials/2.1/compile-with-cmake-fr.php mais cela ne change absolument rien (le programme fonctionne en debug mais pas en release). Je précise que j'ai bien changé la variable CMAKE_BUILD_TYPE à chaque compilation

Ce n'est pas la première fois que j'ai des problèmes à utiliser SFML et Qt ensemble sous Windows 7, dont je ne suis pas vraiment un habitué (ni un grand fan d'ailleurs...) mais comme j'aimerai diffuser mon programme, je n'ai pas vraiment le choix.

J'hésite maintenant à carrément recompiler Qt et Qt-Creator pour voir si le problème ne viendrait pas d'une incompatibilité étrange, mais j'avoue que si je peux éviter cela m'arrangerait énormément (très long et très chiant, d'autant plus sous Windows)

Si quelqu'un a une idée, je lui offre toute ma gratitude. Je peux donner plus de détails si besoin.

daijin12

Pages: [1]
anything