2015-03-28 1 views
0

J'ai un projet Qt avec deux classes/formulaires d'interface utilisateur. La classe principale crée un objet second_window et ouvre une deuxième fenêtre comme ceci:Qt multiples UIs

second_window* sec_win = new second_window(this); 
Qt::WindowFlags flags = sec_win->windowFlags(); 
sec_win->setWindowFlags((flags | Qt::WindowMinMaxButtonsHint) & ~Qt::WindowContextHelpButtonHint); 
sec_win->show(); 

La deuxième fenêtre ouvre et affiche très bien. Je suis toujours en mesure d'interagir avec la fenêtre principale, mais en cliquant sur la fenêtre principale ne l'amène pas à l'avant de la deuxième fenêtre. La deuxième fenêtre est toujours au-dessus de la première. Une idée comment changer cela? J'ai recherché tous les Qt :: WindowFlags et aucun d'eux ne semble être ce dont j'ai besoin. J'ai également recherché des alternatives à la méthode show() sans aucune chance pour le moment.

+0

'QWidget :: raise()' dans le cas, si vos widgets sont non-modaux. Ou passer un 'nullptr' au lieu de' this'/ –

+0

en changeant "this" en "NULL" fonctionnait parfaitement. Merci –

+0

Ok, dupliqué mon commentaire comme réponse. Vous pouvez l'accepter. –

Répondre

1

QWidget::raise() dans le cas, si vos widgets sont non modaux. Ou passez un nullptr au lieu de this. Et n'oubliez pas de libérer la mémoire des widgets.