Bonjour,
J'ai donc dans le main l'initialisation d'un QWidget contenant intégralement la SDL et d'un QWidget basique comme ceci, mais lors de la fermeture du QWidget SDL, l'autre QWidget se ferme aussi.
Voici le code du main pour l'appel des 2 QWidget et le .cpp du QWidget SDL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 int main(int argc, char *argv[]) { QApplication app(argc, argv); FenQtSDL *fenetre = new FenQtSDL(); fenetre->show(); QWidget *fenetre2 = new QWidget(); fenetre2->show(); return app.exec(); }A l'inverse, si je ferme le QWidget basique, la fenêtre SDL ne se ferme pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #include "FenQtSDL.h" FenQtSDL::FenQtSDL(QWidget *parent) : QWidget(parent) { setupUi(this); char windowid[64]; #ifdef Q_WS_WIN sprintf(windowid, "SDL_WINDOWID=0x%lx", reinterpret_cast<qlonglong>(winId())); #elif defined Q_WS_X11 sprintf(windowid, "SDL_WINDOWID=0x%lx", winId()); #else qFatal("Fatal: cast du winId() inconnu pour votre plate-forme; toute information est la bienvenue!"); #endif SDL_putenv(windowid); SDL_Init(SDL_INIT_VIDEO); screen = SDL_SetVideoMode(512, 512, 32, SDL_SWSURFACE); } FenQtSDL::~FenQtSDL() { qDebug( "Console Thread Exited Normally" ); SDL_FreeSurface( screen ); SDL_Quit(); }
Merci d'avance.
Partager