C++ wxWidgets:更改 Sizer 的字体

C++ wxWidgets: Change Font of Sizer

我最近开始学习 C++ 和 wxWidgets,现在我正在构建一个计算器程序。我有一个带按钮的网格大小调整器,我想知道是否可以更改整个大小调整器的字体而不是更改每个按钮的字体?

Sizers 不是 windows,因此没有任何字体,所以,不,您不能只在 sizer 上调用 SetFont()。您可以遍历所有 sizer 项目并在每个 window 项目上调用 SetFont()。或者,效率稍低(因为您 "waste" 一个 window),但更方便的是,您可以使所有按钮成为 wxPanel 的子按钮,并将现有的 sizer 与该面板相关联。然后你就可以在面板上调用 SetFont() 一个 window,因此默认情况下会将字体更改传播到它的所有子项.

另一种解决方案可能是创建一个 wxButton 的子项,它将在构造函数中获取数字并在那里更改字体。