如何在 Ubuntu Qt 中获取活动窗口标题

How to get active window title in Ubuntu Qt?

本文关键字:获取 活动 窗口标题 Qt Ubuntu      更新时间:2023-10-16

我正在使用下面的win API代码来捕获Windows桌面中的活动工作窗口标题。Qt for Ubuntu平台是否有任何替代方案来实现此实现?

QString getActiveWndTitle()
{
    char buff[256];
    HWND hwnd = GetForegroundWindow();
    GetWindowText(hwnd, (LPWSTR) buff, 254);
    QString title = QString::fromWCharArray((const wchar_t *)buff);
    return title;
}

如果你想获取Qt应用程序的活动窗口标题,你可以使用

QApplication::activeWindow()->windowTitle();

如果没有,你可以使用 QProcess 运行 Ubuntu 命令。这是xdotool或(如果您不想安装任何东西(以下命令:

xprop -id $(xprop -root _NET_ACTIVE_WINDOW | cut -d ' ' -f 5) WM_NAME | awk -F '"' '{print $2}' 

我让它使用以下代码。我们需要在 ubuntu 中安装 xdotool

QProcess process(this);
process.setProgram(“xdotool”);
process.setArguments(QStringList() << “getwindowfocus” << “getwindowname”);
process.start();
while(process.state() != QProcess::NotRunning)
qApp->processEvents();
QString title = process.readAll();