我正在使用wxPython在Python中开发一个跨平台的应用程序。该应用程序已完全开发,图形工具包至少暂时保持不变。
在Windows上,一切看起来都很棒。在Linux上,一切看起来都很不错。在Mac上,即使它在Windows上显示正常,我也无法在工具栏中隐藏组合框/选项。
这是我在Linux上的应用程序的快照,注意到整个“CoeffConv ...”部分是完美显示的组合框的一部分:
我试过wx.ComboBox和wx.Choice具有相同的效果。在添加了工具栏项后,我确保调用了Realize()。我确保调用AddControl来实际将对象添加到工具栏。它肯定是在尝试渲染,因为考虑到选择字段的内容,间距正是我所期望的。
事实上,如果我不调用AddControl,但是我创建了选项字段,工具栏作为父项,则框会被渲染,但由于缺少AddControl调用而导致事情排列不正确:
作为另一个检查,我创建了一个带有选择演示的超级简单工具栏,它工作得很好:
所以,这里是我所知道的事情摘要:
我不能得到虚拟的例子来重现问题,但我会继续努力。我很乐意报告一些对象属性,如果它们有助于诊断。如果有人知道什么可能导致它不显示,我真的很感激!
虽然我找不到根本为什么它在Mac上不起作用,但我确实发现了一个可以帮助其他人的问题。
先来一点背景。在应用程序中,我们有多个工具栏。因此,我们使用普通的wx.ToolBar对象创建工具栏,并使用sizer将它们添加到app框架。这与使用self.CreateToolBar()的更标准方法形成对比,后者仅允许框架具有单个工具栏。
当我对代码进行一次更改以使用更自然的CreateToolBar界面时,组合框立即显示出来。当我这样做时,第二个工具栏搞砸了,但至少初始工具栏工作得很好。我将研究如何在Mac上获得多个工具栏,但这是朝着正确方向迈出的一步。