QWidget::activateWindow()
州的Qt文档:
在Windows上,如果您正在调用它 当申请目前不在时 那个活跃的那个就没有了 它是活动窗口。它会改变 任务栏条目的颜色 表示窗口已更改 某种程度上来说。这是因为微软 不允许申请 中断用户当前的状态 在另一个应用程序中做。
然而,Skype似乎无视这一规则。如果Skype正在运行但不是活动应用程序,我可以从开始菜单启动它,它将现有实例带到前台,激活它并获取输入焦点。
我怎么能这样做?
答案 0 :(得分:6)
答案 1 :(得分:1)
我不认为你可以单独用Qt API可靠地做到这一点。
Windows有多种解决方案。例如。 here,here和here。
我之前使用的方法是声明shared memory section,然后在那里编写应用程序的窗口句柄。稍后,当程序的第二个实例启动时,您可以找到第一个程序的窗口句柄并将其激活。
我不认为你在这种情况下会出现阻止你这样做的问题,因为你的第二个实例是活动应用程序,所以允许它将“焦点”传递给其他窗口。
答案 2 :(得分:0)
在Qt解决方案中使用Single Application
对于某些应用程序,它很有用或 甚至批评它们已经开始了 任何用户只能使用一次。未来的尝试 应该启动应用程序 激活任何已经运行的实例, 并可能执行请求 行动,例如加载文件,在那里 实例
答案 3 :(得分:-1)
你可以将setWindowOpacity从0设置为1.你唯一可以随时打开它