qt获取当前窗口

如果你想获取当前窗口,可以使用Qt的QApplication类的activeWindow()方法。

activeWindow()方法返回当前处于活动状态(即获取到用户输入的)的窗口,该窗口可能是应用程序的主窗口或子窗口。如果没有任何窗口处于活动状态,则返回NULL。

下面是一个简单的例子,展示如何使用activeWindow()方法获取当前窗口:

#include <QApplication>
#include <QMainWindow>
int main(int argc, char *argv[])
    QApplication app(argc, argv);
    QMainWindow mainWindow;
    mainWindow.show();
    QWidget *currentWindow = qApp->activeWindow();
    if (currentWindow) {
        qDebug() << "当前窗口为:" << currentWindow->objectName();
    } else {
        qDebug() << "没有窗口处于活动状态";
    return app.exec();

在上面的代码中,我们首先创建了一个QMainWindow窗口,然后调用qApp->activeWindow()方法获取当前活动的窗口,如果当前有窗口处于活动状态,输出当前窗口的对象名。如果没有任何窗口处于活动状态,则输出一个提示消息。

需要注意的是,在多窗口应用程序中,activeWindow()方法只会返回活动窗口中的一个。如果需要获取其他窗口,可以使用QWidget的window()方法来枚举所有的窗口,并判断其是否处于活动状态。

  •