gpt4 book ai didi

c++ - wxWidgets 2.9.1 - 使用多个 wxStaticBoxes 时键盘导航出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 12:21:30 25 4
gpt4 key购买 nike

wxWidgets 2.9.1 documentation推荐创建静态框的新方法 - 我们应该在静态框内创建所有控件作为其子项。

但是,当您的对话框/面板中有多个静态框时,键盘导航就会出现问题。无法在放置在不同静态框中的控件之间移动光标。方法 wxWindow::MoveAfterInTabOrder() 和 wxWindow::MoveBeforeInTabOrder 在这里没有用,因为它们只适用于同一父窗口的兄弟。

此示例代码创建了带有两个静态框的对话框,每个静态框都是两个编辑控件的父级。我应该怎么做才能使用 Tab 键从编辑控件 #2 导航到编辑控件 #3?

void CreateTestDialog(wxWindow* parent)
{
wxWindowID id = 10010;
long style = wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX|wxTAB_TRAVERSAL;
wxDialog dlg;
dlg.SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
if (dlg.Create(parent, id, wxT("Tab Order Test"), wxDefaultPosition, wxDefaultSize, style))
{
wxBoxSizer* sizer1 = new wxBoxSizer(wxVERTICAL);
dlg.SetSizer(sizer1);

wxStaticBox* staticbox1 = new wxStaticBox(&dlg, wxID_ANY, _("Static1"), wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
wxStaticBoxSizer* sizer2 = new wxStaticBoxSizer(staticbox1, wxVERTICAL);
sizer1->Add(sizer2, 0, wxGROW|wxALL, 5);

wxTextCtrl* m_ctl_text1 = new wxTextCtrl( staticbox1, 10011 );
sizer2->Add(m_ctl_text1, 0, wxGROW|wxALL, 5);

wxTextCtrl* m_ctl_text2 = new wxTextCtrl( staticbox1, 10012);
sizer2->Add(m_ctl_text2, 0, wxGROW|wxALL, 5);

wxStaticBox* staticbox2 = new wxStaticBox(&dlg, wxID_ANY, _("Static2"), wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
wxStaticBoxSizer* sizer3 = new wxStaticBoxSizer(staticbox2, wxVERTICAL);
sizer1->Add(sizer3, 0, wxGROW|wxALL, 5);

wxTextCtrl* m_ctl_text3 = new wxTextCtrl( staticbox2, 10013);
sizer3->Add(m_ctl_text3, 0, wxGROW|wxALL, 5);

wxTextCtrl* m_ctl_text4 = new wxTextCtrl( staticbox2, 10014);
sizer3->Add(m_ctl_text4, 0, wxGROW|wxALL, 5);

dlg.ShowModal();
}
}

请不要建议我使用创建控件的旧方法(作为静态框的兄弟)。创建静态框的新方法解决了讨厌的问题 display glitch - 这才是我要解决的真正问题。

谢谢

瓦克

最佳答案

问题最终在wxWidgets 2.9.5 的预发布版本中得到解决。

更多信息可以在相应的ticket page上找到

我确实回答了我自己的问题,因为没有其他答案。也许这对将来的其他人有用。

关于c++ - wxWidgets 2.9.1 - 使用多个 wxStaticBoxes 时键盘导航出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4809541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com