[英]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.