检索 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 的数量的主要内容,如果未能解决你的问题,请参考以下文章
在 QMainWindows 之间拖动 QDockWidgets