Listbook中的WxPython BoxSizer

时间:2018-04-21 04:38:54

标签: python layout wxpython wxwidgets boxsizer

我正在尝试使用wx.Listbook来实现具有多个页面的设置窗口。我使Listbook很好,但当我开始向页面添加项目时,我遇到了一个问题。这些项目彼此重叠显示,因此无法看到我想要展示的所有内容。

bool

implicit conversion

当我注释掉第二个元素时,未注释的部分工作正常:

#include <QFlags>

class Test
{
public:
    enum class SimpleFlag
    {
        FOO = 1 << 0,
        BAR = 1 << 1,
        BAZ = 1 << 2,

        FOOBAZ = (FOO | BAZ)
    };
    Q_DECLARE_FLAGS(MyFlags, SimpleFlag)

    static constexpr SimpleFlag FOOBAZ = SimpleFlag::FOOBAZ;
    Test(){}

    void func(bool) { }
    void func(Test::MyFlags) { }
};

Q_DECLARE_OPERATORS_FOR_FLAGS(Test::MyFlags)

int main(int argc, char *argv[])
{
    Q_UNUSED(argc); Q_UNUSED(argv);

    Test flagTest;
    flagTest.func(Test::FOOBAZ);    
}

enter image description here

但我认为BoxSizer无法正常工作,因为当我注释掉前一行(将CheckBox添加到BoxSizer中)时,显示是一样的。

我尝试为每个元素使用单独的面板,然后将这些面板放在BoxSizer中,但这也没有用(如果有必要,我可以告诉你看起来像什么)。所以看起来我没有正确使用BoxSizer,但我不明白在这种情况下我应该如何使用它。我想要的是一个ListBook的页面,其中包含一个CheckBox和一个TextCtrl(用于单行文本输入)。你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

正如我所看到的,您永远不会将任何分级器分配给您的页面。

你应该这样做:

......
self.global_settings_file_box.Add(self.global_default_extension, proportion=1)

self.global_settings_file_window.SetSizer(self.global_settings_file_box)

self.global_settings_token_window = wx.Panel(parent=self.global_settings_listbook)
......

此致 XAV&#39;