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 - Firexcaliburn

Pages: [1]
1
Général / Re : Plantage au lancement du programme + QSFMLCanvas
« le: Avril 25, 2013, 01:29:03 pm »
Le problème venait d'une mise à jour récursive de la surface, comme si la fonction paintEvent(QPaintEvent*) appelait repaint() tout le temps, alors que ce n'était pas le cas. J'ai donc essayé de multiples façons de déclarer/dessiner le sf::Text. J'ai fini par trouver la solution :
void WidgetCanvas::OnUpdate()
{
    static sf::Text texte(sf::String("texte"), font);
    clear(sf::Color(0, 255, 0));
    sf::Event event;
    while(pollEvent(event))
    {

    }

    draw(texte);
}
 
Il fallait déclarer le sf::Text en statique dans la fonction OnUpdate().

EDIT : J'ai recompilé la sfml pour faire ces tests

2
Général / Plantage au lancement du programme + QSFMLCanvas
« le: Avril 24, 2013, 08:15:38 pm »
Salut,
J'ai utilisé Qt 5.0.2, SFML-2.0-rc-windows-32-gcc4-sjlj, et QtCreator. Mais, lorsque j'ai voulu lancer l'exécutable, j'ai eu une fenêtre blanche suivie d'un plantage disant que le programme avait cessé de fonctionner.  Voici le code du programme :
main.cpp
#include "mainwindow.h"
#include <QApplication>
#include <QFrame>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QFrame* MainFrame = new QFrame;
    MainFrame->setWindowTitle("Qt SFML");
    MainFrame->resize(360, 360);
    MainFrame->show();

    MainWindow w(MainFrame, QPoint(20, 20), QSize(360, 360));
    w.show();
   
    return a.exec();
}

 

mainwindow.cpp :
#include "mainwindow.h"

MainWindow::MainWindow(QWidget* Parent, const QPoint& Position, const QSize& Size) :
    QSFMLCanvas(Parent, Position, Size)
{
}

MainWindow::~MainWindow()
{
}

void MainWindow::OnInit()
{
    //texte = sf::Text("Bonjour");
}

void MainWindow::OnUpdate()
{
    /*sf::Event event;
    while(pollEvent(event))
    {

    }
    clear(sf::Color(255, 0, 0));*/


    //draw(texte);
}

 

mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QSFMLCanvas.h>

class MainWindow : public QSFMLCanvas
{
    Q_OBJECT
   
public:
    MainWindow(QWidget* Parent, const QPoint& Position, const QSize& Size);
    ~MainWindow();

private:
    //sf::Text texte;
    void OnInit();
    void OnUpdate();
};

#endif // MAINWINDOW_H

 

Le programme utilise une bibliothèque externe contenant la classe QSFMLCanvas entièrement copiée collée du tutoriel sauf une ligne à cause de laquelle la compilation de la bibliothèque ne fonctionnait pas :
sf::Window::create(winId()); // compilation impossible (erreur de conversion)
sf::Window::create((sf::WindowHandle)winId()); // compilation possible
 

J'aimerais savoir d'où vient l'erreur et comment la corriger.
Merci d'avance !

Pages: [1]
anything