Ho verificato che anche nella 4.3 il distruttore della QGLWidget NON è virtuale.
Molto strambo per una classe che è stata creata per essere derivata. Non è formalmente un errore, praticamente obbliga lo sviluppatore ad istanziare direttamente la classe derivata, senza riferivisi attraverso la super classe.
Insomma se la si utilizza come "GDerivata * aDerivata = new GDerivata;" non ci son problemi, ma se si fa "GBase * aBase = new GDerivata" allora sicuramente, il fatto che il distruttore di GBase non sia virtuale, implica che il suo distruttore non venga chiamato, con tutte le inevitabili conseguenze catastrofiche del caso. Ma ripeto non conosco le qgl.
In ogni modo per il tuo problema, usa il debugger, ed al momento del crash, osservando lo stack delle chiamate, dovresti capire, dove sta il problema.