qt 获取当前活动窗口

在Qt中,可以使用QApplication类中的activeWindow()方法获取当前活动窗口。此方法返回指向当前活动窗口的指针,如果没有活动窗口,则返回空指针。

以下是一个简单的示例代码,演示如何使用activeWindow()方法获取当前活动窗口:

#include <QApplication>
#include <QMainWindow>
int main(int argc, char *argv[])
    QApplication app(argc, argv);
    QMainWindow window;
    window.show();
    // 获取当前活动窗口
    QMainWindow* activeWindow = qobject_cast<QMainWindow*>(QApplication::activeWindow());
    if (activeWindow != nullptr) {
        // 在控制台输出当前活动窗口的标题
        qDebug() << "Active Window Title: " << activeWindow->windowTitle();
    return app.exec();

在这个示例中,我们创建了一个简单的QMainWindow窗口,并使用activeWindow()方法获取了当前活动窗口的指针。如果当前有活动窗口,我们就在控制台输出它的标题。

需要注意的是,activeWindow()方法只会返回应用程序中当前活动的顶级窗口,而不是任意子窗口。如果你想获取任意子窗口的指针,可以使用QWidget类的focusWidget()方法,它将返回当前拥有输入焦点的窗口或控件的指针。

  •