C++ 根据Qt中的硬件调整主窗口的大小?

C++ 根据Qt中的硬件调整主窗口的大小?,c++,qt,C++,Qt,我已经使用Qt Creator'sdesigner模块中的大多数Widgets开发了我的应用程序。 我已经硬编码了我的小部件的大小,这取决于它们在我的笔记本电脑上的显示方式。昨天,当我在我的桌面上运行应用程序时(屏幕分辨率低于笔记本电脑),一些主窗口小部件不可见&启动时有水平滚动条&我必须滚动查看那些小部件;我的笔记本电脑不是这样的。 我有两个问题: 是否可以使用一些调整大小因子来调整我的所有小部件的大小(即使是那些在运行时按代码添加的小部件)?也许在启动时,我会得到运行应用程序的硬件的屏幕分辨

我已经使用
Qt Creator'sdesigner
模块中的大多数
Widgets
开发了我的应用程序。 我已经硬编码了我的
小部件的大小,这取决于它们在我的笔记本电脑上的显示方式。昨天,当我在我的桌面上运行应用程序时(屏幕分辨率低于笔记本电脑),一些
主窗口
小部件
不可见&启动时有
水平滚动条
&我必须滚动查看那些
小部件
;我的笔记本电脑不是这样的。 我有两个问题:

  • 是否可以使用一些调整大小因子来调整我的所有小部件的大小(即使是那些在运行时按代码添加的小部件)?也许在启动时,我会得到运行应用程序的硬件的屏幕分辨率&然后创建一个与笔记本电脑分辨率的比率。是否可以将该因子乘以所有小部件,而不为每个小部件添加代码

  • 如何获得运行应用程序的屏幕的分辨率

  • 我想知道解决这个问题的实际方法。。。 谢谢。

    您应该使用来管理小部件的大小策略

    Qt布局会在空间量增加时自动定位和调整小部件的大小 为他们提供更改,确保他们始终 并且用户界面作为一个整体仍然可用。”

    您还可以查看有关Qt中布局机制的更多信息


    Qt网站拥有关于该主题的优秀文档。您可以在Qt Designer中开始了解有关使用布局的更多信息。

    您可以尝试以下功能:

    调整大小(桌面->屏幕几何()

    Resize是QWidget类的一个成员函数,监视器变量的百分比是您希望应用程序占用的监视器的任何百分比


    桌面是QDesktopWidget类型。

    这个问题看起来很有趣!但你没有明白我的意思。我想根据用户硬件的屏幕分辨率调整主窗口的大小!&我想能够调整其他小部件的大小,如按钮、线编辑、标签等,但布局类不就是这样做的吗?当屏幕发生变化时,小部件的大小将自动设置,以便它们的排列一致。那么我应该使用什么大小的策略?目前我使用“固定”以及“最小值”“价值观符合我的愿望。如果这不是正确的方法,那么我应该怎么做才能使应用程序在运行的任何地方都显示相同,而不管硬件是什么?目前我正在为大多数小部件使用QFrame&为框架提供布局。我没有在designer左侧的列表中明确添加可用的布局项。我手头没有Qt designer,但是如果我没有记错的话,小部件的大小应该设置为“扩展”。添加一个新的布局管理类:QHBoxLayout、QVBoxLayout、QGridLayout,并将小部件移动到这些布局中。另一种方法是选择一些小部件,右键单击并选择适合您需要的布局选项。很抱歉,无法提供更多帮助,但正如我所说,我现在无法访问Qt Designer。当Qt可以自动调整所有内容时,为什么要硬编码某些位置。小部件的硬编码大小是一个坏习惯,在太迟之前修复它。窗口大小调整也可以采用这种方式,因为它不是基于DPI或硬件,而是基于windows大小和字体DPI设置。只需按照建议使用布局即可。