【发布时间】:2017-09-30 11:32:17
【问题描述】:
我正在使用wxWidget。我有 panel 和 4 个按钮,并使用 wxGridSizer 将它们放入网格中。当我转到该行的最右边的单元格并按Right key 时,焦点仍然在同一个小部件上。我可以设置一些属性,其中Right/Left 角落处的键用作选项卡和 shift-tab。
我想要的是用户应该能够通过 4 个按钮通过按左右键来circle。我想将向上/向下键用于其他目的。
如果有帮助,这里是代码:
#include <wx/wx.h>
#include <wx/grid.h>
#include <wx/sizer.h>
#include <wx/string.h>
#include <iostream>
#include <cassert>
class ReachItFrame : public wxFrame
{
public:
ReachItFrame(const wxString& title) : wxFrame()
{
Create(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(250, 150));
}
};
class MyApp : public wxApp
{
public:
bool OnInit()
{
ReachItFrame *reachIt = new ReachItFrame(wxT("ReachIt"));
reachIt->Show(true);
assert(reachIt->SetTransparent(150));
assert(reachIt->ShowFullScreen(true, wxFULLSCREEN_ALL));
wxPanel *panel = new wxPanel(reachIt);
wxGridSizer *sizer = new wxGridSizer(2, 2, 0, 0);
wxButton *button1 = new wxButton(panel, wxID_ANY, wxString::FromAscii("1"));
sizer->Add(button1, wxSizerFlags().Expand());
wxButton *button2 = new wxButton(panel, wxID_ANY, wxString::FromAscii("2"));
sizer->Add(button2, wxSizerFlags().Expand());
wxButton *button3 = new wxButton(panel, wxID_ANY, wxString::FromAscii("3"));
sizer->Add(button3, wxSizerFlags().Expand());
wxButton *button4 = new wxButton(panel, wxID_ANY, wxString::FromAscii("4"));
button4->MoveBeforeInTabOrder(button3);
sizer->Add(button4, wxSizerFlags().Expand());
panel->SetSizerAndFit(sizer);
return true;
}
};
wxIMPLEMENT_APP(MyApp);
【问题讨论】: