繁体   English   中英

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

[英]How to get active window title in Ubuntu Qt?

我正在使用下面的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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM