QWidget::activateWindow()
的Qt文档指出:
但是,Skype似乎无视此规则。如果Skype正在运行,但不是 Activity 的应用程序,则可以从开始菜单启动它,它将现有实例置于前台,将其激活并获取输入焦点。
我该怎么办呢?
最佳答案
(注意:这特定于QtSingleApplication的工作方式)
对于我的问题,解决方案非常简单。只需在应用程序的开头调用AllowSetForegroundWindow(ASF_ANY);
,就可以使用SetForegroundWindow()
将原始过程带到前台。没有奇怪的黑客,只需添加一行代码,也不需要修改QtSingleApplication。