【发布时间】:2018-09-14 23:00:01
【问题描述】:
我正在尝试部署一个用 c++ 编写的跨平台 Qt 应用程序。它在我的 Ubuntu Linux 上运行良好,但是当我在 Windows 上运行它时,应用程序的主窗口的位置设置在屏幕的左上角,上框(包含最小化、最大化、关闭按钮)缺少。
直到我调整主窗口的大小(在这种情况下,使宽度从右侧变小)。当这种情况发生时,上部框架和控制按钮会出现在我提供的可视化中。
注意:我已经删除了应用程序上的所有小部件,因此它们不会让人分心。
注意 2:似乎最大化按钮被禁用,这在 Ubuntu 中并非如此。我没有设置任何窗口标志。
如何在应用程序一开始就可视化上部框架而无需调整窗口大小。我理解它是操作系统特定的行为。将主窗口的几何图形设置为具有较高 y 值的起点并没有帮助。它仍然出现在屏幕的最左上角。
【问题讨论】:
-
你使用
QWidget::showMaximized()函数吗?如何设置窗口的几何形状? -
@vahancho 不,我不使用 showMaximized()。在 MainWindow 构造函数末尾
this->setGeometry(0, 0, 1336, 600);。我知道 x:0 和 y:0 是左上角,没关系。它只是没有出现在 Windows 中的框架。在 ubuntu 中,框架就在那里。 -
我怀疑,
setGeometry()函数没有考虑标题栏和集合在主窗口的 client 部分的位置。这就是为什么您的主窗口的标题栏离开屏幕的原因。如果它满足您的需求,我会尝试使用QWidget::showMaximized()。 -
@vahancho showMaximized() 可以做到这一点,但我不能以最大化模式启动应用程序。这是一个小问题的巨大解决方法
标签: c++ windows qt user-interface cross-platform