segunda-feira, 25 de abril de 2011

CheckBox com wxWidgets

Introdução
     Um checkbox é um widget que pode ter dois estados: ligado ou desligado (checado ou não). Quanto um checkbox está checado ele apresenta um "tick" na caixa que representa o widget. Esta caixa pode ter um label associado a ela do lado esquerdo ou direito. Um checkbox pode ser usado em diversas situações, como marcar ou desmarcar opções, aceitar ou não termos de uso, mostrar ou esconder outros widgets, entre outras. Em wxWidgets um checkbox é representado pela classe wxCheckBox.

Exemplo
    Em nosso exemplo vamos fazer um programa que mostra ou esconde o título da aplicação dependendo do estado do checkbox. Quanto o checkbox estiver checado o título é mostrado, do contrário o título não aparece.


Código

#include <wx/wx.h>
//checkbox.h

class CheckBox : public wxFrame
{
public:
    CheckBox(const wxString& title);

    void Alternar(wxCommandEvent& event);

    wxCheckBox *m_cb;
};

#include "checkbox.h"
//checkbox.cpp

CheckBox::CheckBox(const wxString& title) : wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(270, 150))
{
  wxPanel *panel = new wxPanel(this, wxID_ANY);

  m_cb = new wxCheckBox(panel, 100, wxT("Mostra o título"), wxPoint(20, 20));
  m_cb->SetValue(true);
  Connect(100, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(CheckBox::Alternar));
  Centre();
}

void CheckBox::Alternar(wxCommandEvent& WXUNUSED(event))
{

  if (m_cb->GetValue()) {
      this->SetTitle(wxT("CheckBox com wxWidgets"));
  } else {
      this->SetTitle(wxT(" "));
  }
}

#include <wx/wx.h>
//main.h
class MyApp : public wxApp
{
  public:
    virtual bool OnInit();
};

#include "main.h"
#include "checkbox.h"
//main.cpp

IMPLEMENT_APP(MyApp)

bool MyApp::OnInit()
{

    CheckBox *cb = new CheckBox(wxT("CheckBox com wxWidgets"));
    cb->Show(true);

    return true;
}

Nenhum comentário:

Postar um comentário