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

标签 c++ qt

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

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

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

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

最佳答案

你可以试试这样的函数:

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

关于c++ - 根据 Qt 中的硬件调整主窗口的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15360971/

相关文章:

c++ - 添加空间隔 Widget 导致 Qt 中的内存泄漏?

c++ - QUiLoader 从 QWidget* 转换为 QDialog*,可能吗?

c++ - 将观察者模式实现为 MarketData 观察者

c++ - 模板类 : accessing derived normal-class methods

python - FBX SDK - 从角色的 ENodeId 获取 FbxNode

c++ - 指向 boost::geometry 函数的函数指针

qt - 如何在QT中设计一个文本编辑器?

c++ - 如何在 Linux 上安装 OpenXLSX?

c++ - 避免使用 DirectXMath XMStore/load

c++ - 在 QScrollArea 中缩放 QWidget