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.

¿Fue útil?

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
scroll top