Qt:showMaximized()不能在Windows中工作

我正在打开我的应用程序(在Windows )通过双击文件。 我通过parameter passing文件名作为我的开放逻辑。 在那里我打电话showMaximized() ,但它没有得到拾起。 打开的窗口没有最大化,默认位于屏幕的左上angular。

请注意,所有这些逻辑stream程都是通过main() ,因此showMaximized()可能在事件循环开始之前被调用。 这是停止showMaximized()正常工作? 如果是的话,该如何解决?

我也尝试使用QTimer :: singleShot(0,…,…) (以便让事件循环开始),但这甚至已经停止启动非最大化屏幕。

PS:在Mac中 ,屏幕正在通过事件( QEvent :: FileOpen )发生最大化,

最简单的解决方法是在使用showMaximized()之前调整大小(800,600 。 我在Windows 8.1上的Qt 5.7.0中有类似的错误。

在第一次进程调用ShowWindow时,show命令被忽略,并使用STARTUPINFO结构中提供的命令(它应该与WinMain中的nCmdShow参数相对应)。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx

这种令人惊讶的行为倾向于表现为你描述的问题。 如果您不想直接使用任何Win32 API调用,您可以通过简单地发出两次QT的showMaximized调用来解决它。