QWidget::activateWindow()的Qt文档指出:



但是,Skype似乎无视此规则。如果Skype正在运行,但不是 Activity 的应用程序,则可以从开始菜单启动它,它将现有实例置于前台,将其激活并获取输入焦点。

我该怎么办呢?

最佳答案

(注意:这特定于QtSingleApplication的工作方式)

对于我的问题,解决方案非常简单。只需在应用程序的开头调用AllowSetForegroundWindow(ASF_ANY);,就可以使用SetForegroundWindow()将原始过程带到前台。没有奇怪的黑客,只需添加一行代码,也不需要修改QtSingleApplication。

10-04 23:06