我的应用程序(仅限 Microsoft Windows)正在使用带有wxTB_HORIZONTAL|wxTB_TEXT|wxTB_HORZ_LAYOUT
标志的 wxToolBar。它的所有按钮/工具都具有相同的宽度,这是基于最长的文本。
我想要不同宽度的按钮,具体取决于工具标签的长度,就像 Windows 原生工具栏按钮(使用BTNS_AUTOSIZE
样式创建)一样。
有没有办法让 wxToolBar 带有动态计算宽度的按钮?
我的应用程序(仅限 Microsoft Windows)正在使用带有wxTB_HORIZONTAL|wxTB_TEXT|wxTB_HORZ_LAYOUT
标志的 wxToolBar。它的所有按钮/工具都具有相同的宽度,这是基于最长的文本。
我想要不同宽度的按钮,具体取决于工具标签的长度,就像 Windows 原生工具栏按钮(使用BTNS_AUTOSIZE
样式创建)一样。
有没有办法让 wxToolBar 带有动态计算宽度的按钮?
我假设你想要这个用于 MS Windows,因为你提到了BTNS_AUTOSIZE风格。
使用wxToolBar样式或AddTool()的参数无法做到这一点。我尝试过使用 wxMSW,实现自动调整按钮大小的唯一方法(我能找到)是通过更改src/msw/tbar95.cpp中的wxToolBar::Realize()方法(src / msw/toolbar.cpp在wxWidgets trunk) 在添加按钮的地方添加BTNS_AUTOSIZE样式。这是一个虚拟方法,因此您始终可以创建自己的降序工具栏类,复制Realize()方法并对其进行更改。