在Qt中检索打开的QMainWindows的数量

Retrieve the number of opened QMainWindows in Qt

本文关键字:QMainWindows Qt 检索      更新时间:2023-10-16

我多次调用以打开QMainWindow。如何获取应用程序中打开的窗口数量?

void mywindow :: keyPressEvent (QKeyEvent *event)
{ 
    switch(event->key())
    {
       case Qt::Key_Enter:
           popUpWindow();
    }
}
void mywindow :: popUpWindow()
{
    win = new QMainWindow();
    win->show();
}

我正在关闭这些窗户 deleteWindow().但我想知道已经打开的窗户数量。

您可以使用静态方法QWidgetList QApplication::topLevelWidgets () [static]来获取所有打开的窗口。

mywindow类中添加:

unsigned count;

作为初始化为 0 的成员对象(或1,具体取决于开始时显示的窗口数)。然后在popUpWindow成员函数中执行count++;,在deleteWindow成员函数中执行count--;

这是您班级的骨架:

class mywindow {
private:
    unsigned windowCount;
public:
    mywindow() : windowCount(0) {}
    void popUpWindow() {
        // ...
        windowCount++;
    }
    void deleteWindow() {
        // ...
        windowCount--;
    }
};