2014-01-10 32 views
2

我打幾次打開QMainWindow。我如何獲得在我的應用程序中打開的窗口數量?檢索Qt中打開的QMainWindows的數量

void mywindow :: keyPressEvent (QKeyEvent *event) 
{ 

    switch(event->key()) 
    { 
     case Qt::Key_Enter: 
      popUpWindow(); 
    } 
} 

void mywindow :: popUpWindow() 
{ 

    win = new QMainWindow(); 
    win->show(); 
} 

我正在關閉這些窗口在deleteWindow()。但是我想知道已經打開的窗口的數量。

+1

難道你不能自己更新一個計數器變量嗎?這真的很微不足道。 – Shoe

+0

感謝兄弟。雅我可以使用計數器變量。 – Rupesh

回答

4

您可以使用static methodQWidgetList QApplication::topLevelWidgets() [static]讓所有打開的窗口。

3

裏面的mywindow類添加:

unsigned count; 

爲(取決於您展示一開始有多少個窗口或1)初始化爲0一個成員對象。然後在popUpWindow成員函數中做count++;,並在deleteWindow成員函數中做count--;

這裏是你的類的骨架:

class mywindow { 
private: 
    unsigned windowCount; 
public: 
    mywindow() : windowCount(0) {} 

    void popUpWindow() { 
     // ... 
     windowCount++; 
    } 

    void deleteWindow() { 
     // ... 
     windowCount--; 
    } 
};