【问题标题】:Prevent wxWidgets app from scaling sizes on higher dpi防止 wxWidgets 应用程序在更高 dpi 上缩放大小
【发布时间】:2016-06-26 21:08:23
【问题描述】:

我正在编写一个应该可以在 windows 和 mac 上运行的 wxWidgets (3.1.0) 应用程序。 在 Windows 上,当我将文本的缩放比例设置为 100% 以上时,我的控件大小会变得一团糟。我有一个 dpi 清单,上面写着我的应用程序是 dpi 感知的。我还在我的对话框上设置了字体像素大小,这在某种程度上有效。当我从代码中设置某些元素的大小时,它会调整为我需要的像素大小,但是在 xrc 文件中设置的任何大小都会按比例放大。此外,当我尝试减小任何 wxSpinCtrl 的大小时,它通常可以减小到某个点,但随后只有文本框变小并且按钮保持不成比例的大。那么有没有办法告诉我的应用不要缩放任何尺寸,而只是让所有的像素大小与正常 dpi 上的像素大小完全相同(尽管我的应用在更高的分辨率下看起来会很小)?

【问题讨论】:

  • 您是否尝试从清单文件中删除 dpi 感知?
  • @Igor 如果我删除清单,则 windows 使用其默认缩放,这会使一切看起来模糊
  • 这是一个非常奇怪的问题,为什么您会有意地希望您的程序在高 DPI 屏幕上看起来糟糕?真正的解决方案是解决问题,不管它是什么。不幸的是,“一切都搞砸了”不够精确,无法准确理解它的含义。
  • @VZ。搞砸了,我的意思是,如果我将某些东西设置为 300 像素宽,那么在 125% 缩放时它将是 375 像素宽,在 150% 缩放时将是 450 像素宽,但我希望它始终是 300 像素宽,无论缩放
  • 这不是“搞砸”,这是“正确缩放”,如果这就是发生的一切,我仍然不明白为什么这是个问题。

标签: wxwidgets dpi


【解决方案1】:

没有办法阻止使用 wxWidgets API 应用适当的缩放,我认为这不会改变,因为它似乎没有任何意义。

但是,使用定义的wxHAVE_DPI_INDEPENDENT_PIXELS 重建 wxWidgets 应该会欺骗库,使其认为底层图形工具包已经缩放了像素值,因此阻止它自己进行。我从未对此进行过测试,但是,AFAICS,这应该会产生您想要的结果。

尽管如此,让我重申一下,你想要的完全错误,解决这个问题的真正方法是向决定这样做的人解释。

【讨论】:

    猜你喜欢
    • 2019-03-02
    • 2013-12-26
    • 2014-08-13
    • 2021-02-14
    • 2013-04-10
    • 2021-05-31
    • 2021-12-15
    • 1970-01-01
    相关资源
    最近更新 更多