我正在尝试使用wx.Listbook来实现具有多个页面的设置窗口。我使Listbook很好,但当我开始向页面添加项目时,我遇到了一个问题。这些项目彼此重叠显示,因此无法看到我想要展示的所有内容。
bool
当我注释掉第二个元素时,未注释的部分工作正常:
#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);
}
但我认为BoxSizer无法正常工作,因为当我注释掉前一行(将CheckBox添加到BoxSizer中)时,显示是一样的。
我尝试为每个元素使用单独的面板,然后将这些面板放在BoxSizer中,但这也没有用(如果有必要,我可以告诉你看起来像什么)。所以看起来我没有正确使用BoxSizer,但我不明白在这种情况下我应该如何使用它。我想要的是一个ListBook的页面,其中包含一个CheckBox和一个TextCtrl(用于单行文本输入)。你能帮忙吗?
答案 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;