我的Qt应用程序(将在Windows,OS X和Ubuntu上运行)需要:
我知道如何使用Win32为Windows执行此操作。我可以单独研究Mac和Ubuntu,但我想知道是否有一个抽象/统一的Qt方法来帮助我?
答案 0 :(得分:5)
不,那些是特定于操作系统的:
http://www.qtcentre.org/threads/41730-How-to-enumerate-all-top-level-windows
至于通过已发布的API开始寻求可行的方法...这里有一些X11提示:
How to identify top-level X11 windows using xlib?
在Mac上,构建Qt的“前瞻性”方式是反对“Cocoa”而不是“Carbon”:
http://doc.qt.nokia.com/latest/developing-on-mac.html#carbon-or-cocoa
根据其他SOers,它是可访问性API(必须由用户启用,似乎)可以执行此枚举:
Get a list of opened windows cocoa
Mac / Cocoa - Getting a list of windows using Accessibility API
然后问题就变成了C ++应用程序内部如何“调用”Cocoa API本身就是Objective-C:
How to mix Qt, C++ and Obj-C/Cocoa
......或者你可能不会这样做。 : - )
答案 1 :(得分:0)
我建议您自己跟踪这些信息。它不是完美的(只需要一个单例类并重载根窗口类型中的setWindowTitle()
调用)但将与平台无关。 。