1

我已经使用大部分WidgetsinQt Creator's Designer模块开发了我的应用程序。我已经硬编码了我的大小,widgets具体取决于它们在我的笔记本电脑上的显示方式。昨天当我在我的桌面上运行应用程序时(屏幕分辨率低于笔记本电脑),其中一些Main Window widgets是不可见的,在启动时有horizontal scrollbar,我不得不滚动才能看到那些widgets;我的笔记本电脑不是这种情况。我有两个问题:

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

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

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

4

2 回答 2

2

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

当可供它们使用的空间量发生变化时,Qt 布局会自动定位和调整小部件的大小,以确保它们的排列一致并且整个用户界面仍然可用。”

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

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

于 2013-03-12T13:23:44.447 回答
1

您可以尝试这样的功能:

resize(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 类型。

于 2013-03-12T18:54:29.210 回答