【问题标题】:wxWidgets: scalable custom controlwxWidgets:可扩展的自定义控件
【发布时间】:2013-07-04 10:39:00
【问题描述】:

我正在尝试在 wxWidgets 中创建如下所示的自定义控件:

custom control

它包含 wxTextCtrl 和 wxBitmapButton。创建它相当容易,但我的目标是创建在 XP、Vista、Win 7、Win 8、Mac OS X 中看起来相同的可扩展控件。

通常,当用户在操作系统中更改字体大小(125%、150%、200%)时,本机控件会调整其大小。 在我的情况下,这样的控件应该增加 wxTextCtrl 的大小并增加 wxBitmapButton 的大小和这个按钮中的图像。

这就是为什么我的问题是:

  1. 如何在 wxBitmapButton 中创建可缩放的图像? (也许我应该使用像 .svg 这样的矢量图像?)

  2. 如何识别我应该在 wxBitmapButton 中增加图像大小?

我不会使用原生控件,因为我希望它们在所有操作系统中看起来都一样

【问题讨论】:

    标签: user-interface wxwidgets


    【解决方案1】:

    目前没有可移植的方式来对 wxWidgets 中的系统字体大小变化做出反应,因此您能做的最好的事情就是在程序启动期间遵守有效的字体大小。为此,只需使用wxWindow 或wxDC 的GetTextExtent() 或GetChar{Height,Width}() 方法就足够了,而不是在程序中以像素为单位硬编码值。

    【讨论】:

    • 谢谢!那么可扩展的图像呢?在我看来,唯一的方法是使用矢量图像。小伙伴们是怎么解决这个问题的?我尝试使用大图像并缩放它们,但是当尺寸像 16*16 时看起来很糟糕
    • 矢量图像在这些尺寸下看起来也很糟糕。通常的方法是手动绘制几种尺寸(16、24、32...)的位图,然后选择最接近您需要的位图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 2019-04-11
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多