wxwidgets:如何在新框架中访问元素

时间:2019-03-02 20:43:38

标签: c++ wxwidgets

我正在使用wxFormBuilder创建GUI。所以我有我的应用程序:

HelloApp::HelloApp() {
}

HelloApp::~HelloApp() {
}

bool HelloApp::OnInit() {

    guifrmMain* frame = new guifrmMain((wxWindow*)NULL);

    frame->Show(); 
    SetTopWindow(frame);
    return true;
}

我有两个用于两个“框架”的类:

frmMain::frmMain(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style, const wxString& name) : wxFrame(parent, id, title, pos, size, style, name)
{
//skipped
m_Button->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(frmMain::onPressBTN), NULL, this);
}

frmMatrix::frmMatrix(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) : wxFrame(parent, id, title, pos, size, style)
{
    m_bpButton28 = new wxBitmapButton(this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW | 0);

m_text_tst = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);

    m_bpButton28->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(frmMatrix::onBtn1_click), NULL, this);

}

...

class guifrmMain : public frmMain
    {
        public:
            /** Constructor */
            guifrmMain( wxWindow* parent );
            void onPressBTN(wxCommandEvent& event);
    }

class guifrmMatrix : public frmMatrix
    {
    public:
        /** Constructor */
        guifrmMatrix(wxWindow* parent);

        void onBtn1_click(wxCommandEvent& event);
};


guifrmMain::guifrmMain( wxWindow* parent )
:
frmMain( parent )
{
} 

guifrmMatrix::guifrmMatrix(wxWindow* parent)
:
frmMatrix(parent)
{
        m_parent = parent;

        //this is not working:
        m_text_tst->SetValue(_("test"));
}

当我按下按钮时,我开始一个新的框架:

void guifrmMain::onPressBTN(wxCommandEvent& event) {
    frmMatrix* frm = new frmMatrix(this);
    frm->Show(TRUE);
}

它已打开,但是事件在新框架中不起作用:

void guifrmMatrix::onBtn1_click(wxCommandEvent& event) {
    m_text_tst->SetValue(_("onBtn1_click")); // this is not working
}

哪里有错误?谢谢! 附言我无法提交我的问题。所以我需要写更多的东西。我不是经验丰富的C ++程序员。 C是我的语言。 C ++有点。请回复。对此表示赞赏。

P.P.S。我发现错误。使用此代码,它可以工作:

guifrmMatrix * frm =新的guifrmMatrix(this);

0 个答案:

没有答案