首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有SetDefault()的SetDefault不再响应进入帧

带有SetDefault()的SetDefault不再响应进入帧
EN

Stack Overflow用户
提问于 2014-02-21 19:01:35
回答 2查看 344关注 0票数 0

我有一个最初使用wx2.8并已移植到wx3.0的应用程序。该应用程序的框架有一个"Connect“按钮,在创建按钮时,SetDefault()将在该按钮上被调用。在wx2.8下,当识别enter键时,此按钮将生成一个单击事件。在wx3.0下,这似乎不再起作用了。我一直试图使用热键来解决这个问题,但是当enter键被定义为热键时,它们就会出现自己的模态对话问题集。热键事件显然不会交付关键事件,即使它被跳过。有人有什么建议或工作吗?

上周五,我认为这可能与用wxWANTS_CHARS风格初始化框架有关,事实上,情况就是这样。我还发现,如果没有使用wxID_OK ID初始化按钮,就会出现问题。

代码语言:javascript
复制
#include "wx/wx.h"


class MyFrame: public wxFrame
{
private:
   wxTextCtrl *text_status;
   int click_count;

public:
   MyFrame():
      wxFrame(
         0,
         wxID_ANY,
         "SetDefault",
         wxDefaultPosition,
         wxDefaultSize,
         wxDEFAULT_FRAME_STYLE | wxCLIP_CHILDREN),
      click_count(0)
   {
      wxPanel *panel(new wxPanel(this));
      wxSizer *sizer(new wxBoxSizer(wxVERTICAL));
      wxButton *button;


      text_status = new wxTextCtrl(panel, wxID_ANY);
      sizer->Add(text_status, 0, wxALL, 10);
      button = new wxButton(panel, wxID_HIGHEST + 1, "Increment");
      sizer->Add(button, 0, wxALL, 10);
      button->SetDefault();
      panel->SetSizerAndFit(sizer);
   }

   void on_increment(wxCommandEvent &event)
   {
      wxString content;
      ++click_count;
      content.Printf("%d", click_count);
      text_status->SetValue(content);
   }

   DECLARE_EVENT_TABLE()
};


BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_BUTTON(wxID_OK, MyFrame::on_increment)
END_EVENT_TABLE()


class MyApp: public wxApp
{
   virtual bool OnInit()
   {
      MyFrame *frame(new MyFrame);
      frame->Show(true);
      SetExitOnFrameDelete(true);
      return true;
   }
};


IMPLEMENT_APP(MyApp)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-27 18:47:50

我找到了将wxID_OK的ID指定到默认按钮的工作。

票数 0
EN

Stack Overflow用户

发布于 2014-02-21 20:37:26

如果默认按钮对按下键没有反应,那么它看起来就像wxWidgets中的一个bug,您应该使用按照通常的方式报告。如果这样做的话,请尝试提供一个简单的示例来再现问题,最好是作为一个示例的补丁,因为这在正常/大多数情况下确实有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21943010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档