检索 Qt 中打开的 QMainWindows 的数量

Posted

技术标签:

【中文标题】检索 Qt 中打开的 QMainWindows 的数量【英文标题】:Retrieve the number of opened QMainWindows in Qt 【发布时间】:2014-01-10 05:48:19 【问题描述】:

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

void mywindow :: keyPressEvent (QKeyEvent *event)
 

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


void mywindow :: popUpWindow()


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

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

【问题讨论】:

你不能自己更新一个计数器变量吗?真的很简单。 谢谢兄弟。是的,我可以使用计数器变量。 【参考方案1】:

你可以使用static methodQWidgetList QApplication::topLevelWidgets () [static]获取所有打开的窗口。

【讨论】:

【参考方案2】:

在您添加的 mywindow 类中:

unsigned count;

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

这是你的类的骨架:

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

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

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

【讨论】:

以上是关于检索 Qt 中打开的 QMainWindows 的数量的主要内容,如果未能解决你的问题,请参考以下文章

QT 主窗口 添加滚动条

在 QMainWindows 之间拖动 QDockWidgets

子类化QMainWindows

子类化QMainWindows,添加菜单栏及工具栏,并添加图标

[QT] 记录一些使用技巧

[QT] 记录一些使用技巧