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

时间:2013-03-12 12:16:49

标签: c++ qt

我已经使用Widgets模块中的大多数Qt Creator's Designer开发了我的应用程序。 我有硬编码我的widgets的大小,具体取决于它们在我的笔记本电脑上的显示方式。昨天当我在桌面上运行应用程序(屏幕分辨率低于笔记本电脑)时,Main Window widgets的某些内容并不可见。在启动时有horizontal scrollbar&我不得不滚动查看那些widgets;在我的笔记本电脑上并非如此。 我有两个问题:

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

  2. 如何获取运行我的应用程序的屏幕的分辨率?

  3. PS:我想知道解决这个问题的事实方法...... 谢谢。

2 个答案:

答案 0 :(得分:2)

您应该使用Layouts来管理小部件的大小政策。

  

Qt布局在空间量时自动定位和调整小部件的大小   可用于他们的变化,确保他们始终如一   安排并且用户界面作为一个整体仍然可用。“

您还可以查看this question以获取有关Qt中布局机制的更多信息。

Qt网站上有关于这个主题的优秀文档。您可以启动here以获取有关在Qt Designer中使用布局的更多信息。

答案 1 :(得分:1)

您可以尝试这样的功能:

调整大小(theDesktop-> screenGeometry()。width()* PERCENTAGE_OF_MONITOR_WIDTH_FOR_SCREEN,theDesktop-> screenGeometry()。height()* PERCENTAGE_OF_MONITOR_HEIGHT_FOR_SCREEN);

Resize是QWidget类的成员函数,PERCENTAGE_OF_MONITOR变量将是您希望应用程序占用的监视器的百分比。

theDesktop属于QDesktopWidget类型。