Recuperar el número de QMainWindows abiertos en Qt
-
21-12-2019 - |
Pregunta
Llamo varias veces para abrir QMainWindow.¿Cómo puedo obtener la cantidad de ventanas que se abren en mi Aplicación?
void mywindow :: keyPressEvent (QKeyEvent *event)
{
switch(event->key())
{
case Qt::Key_Enter:
popUpWindow();
}
}
void mywindow :: popUpWindow()
{
win = new QMainWindow();
win->show();
}
Estoy cerrando estas ventanas en deleteWindow()
.Pero quiero saber la cantidad de ventanas que ya están abiertas.
Solución
Puede usar Método estático QWidgetList QApplication::topLevelWidgets () [static]
para obtener todos los abridosWindows.
Otros consejos
Dentro de mywindow
clase que agregas:
unsigned count;
como un objeto miembro inicializado a 0
(o 1
dependiendo de cuántas ventanas muestres al principio).Luego en el popUpWindow
función miembro que haces count++;
y en tu deleteWindow
función miembro que haces count--;
.
Aquí está el esqueleto de tu clase:
class mywindow {
private:
unsigned windowCount;
public:
mywindow() : windowCount(0) {}
void popUpWindow() {
// ...
windowCount++;
}
void deleteWindow() {
// ...
windowCount--;
}
};
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow