1 - Introdução
O framework wxWidgets auxilia na criação
de aplicações desktop para Win32, Mac OS X, GTK+,
X11, Motif, WinCE e outros. E tudo isso usando a mesma base
de código, ou seja, o mesmo código escrito para
Win32 compilará com pouquíssimas modificações,
no Linux, por exemplo. wxWidgets pode ser usado
em combinação com as linguagens C++, Python, Perl,
C#/.NET entre outras. Diferente de outros toolkits para múltiplas
plataformas, aplicações wxWidgets
possuem a aparência e comportamento nativo do sistema
no qual estão sendo executadas.
wxWidgets é gratuíto e pode ser
usado até mesmo em aplicações comerciais.
Alguns exemplos de aplicações escritas usando
wxWidgets são: AOL Communicator e AVG AntiVirus.
Este artigo mostra a você como instalar e configurar o
wxWidgets no Ubuntu Linux 8.04. Lembre-se de que instalações
em Linux geralmente vêm acompanhadas de uma série
de mensagens de erro e alertas sobre a necessidade de instalar
e configurar dependências. Assim, tenha a certeza de estar
bem tranquilo, longe da namorada ou namorado, telefone e celular
desligados e com sua configuração à internet
devidamente configurada. Serão aproximadamente duas horas
de muita concentração.
2 - Baixando, instalando e configurando o wxWidgets
Para instalar o wxWidgets no Ubuntu Linux, comece apontando
seu navegador para http://www.wxwidgets.org/downloads,
vá na parte Source Archives e baixe wxGTK.
Durante a autoria deste artigo, o nome do arquivo é wxGTK-2.8.7.tar.gz.
Salve este arquivo em um diretório chamado "devel".
Hora de descompactar. Entre no diretório devel e dispare
o comando:
tar -zxvf wxGTK-2.8.7.tar.gz
Dentro de devel, crie um diretório chamado buildStaticGTK
e entre nele com os seguintes comandos:
mkdir buildStaticGTK
cd buildStaticGTK
Vamos configurar o wxWidgets agora. A partir do diretório
buildStaticGTK você deverá disparar:
../wxGTK-2.8.7/configure
--with-gtk -disable-shared
Durante este processo pode ocorrer das rotinas de configuração
não encontrarem o g++. Se isso acontecer
instale-o e dispare o comando novamente.
Outro erro muito comun é a ausência da libgtk.
Se o configure reclamar, instale-a com o seguind comando e dispare
o configure novamente:
sudo apt-get install libgtk2.0-dev
Hora de disparar o make:
make
Depois do make temos que instalar o wxWidgets, ou seja, mover
alguns arquivos para diretórios que só permitem
alterações mediante a senha do root. Portanto:
su root <vai pedir
a senha>
Agora que você tem privilégios de super usuário,
dispare:
make install
e em seguida:
ldconfig
Pronto! Se tudo correu bem, você pode testar o wxWidgets
a partir de qualquer diretório usando os comandos:
wx-config --cxxflags
e
wx-config --libs
Estes comandos mostrarão a forma como o wxWidgets está
disponível para o compilador C++.
3 - Escrevendo sua primeira aplicação
C++ e wxWidgets
Crie um diretório para colocarmos a aplicação.
Uma boa sugestão é "estudos" e pode
ser criado na sua pasta de usuário mesmo. Em seguida
crie um arquivo ola.cpp dentro deste diretório.
Abra o arquivo para edição e cole o seguinte código:
Código para ola.cpp
#include "wx/wx.h"
class Aplicacao: public wxApp
{
virtual bool OnInit();
};
class Janela: public wxFrame
{
public:
Janela(const wxString& title, const wxPoint&
pos,
const wxSize& size);
void OnSair(wxCommandEvent& event);
void OnSobre(wxCommandEvent& event);
DECLARE_EVENT_TABLE()
};
enum
{
ID_Sair = 1,
ID_Sobre,
};
BEGIN_EVENT_TABLE(Janela, wxFrame)
EVT_MENU(ID_Sair, Janela::OnSair)
EVT_MENU(ID_Sobre, Janela::OnSobre)
END_EVENT_TABLE()
IMPLEMENT_APP(Aplicacao)
bool Aplicacao::OnInit()
{
Janela *janela = new Janela(_T("Olá,
Mundão!"), wxPoint(50,50), wxSize(430,300));
janela->Show(TRUE);
SetTopWindow(janela);
return TRUE;
}
Janela::Janela(const wxString& title, const wxPoint&
pos,
const wxSize& size): wxFrame((wxFrame
*)NULL, -1, title,
pos, size)
{
wxMenu *menuArquivo = new wxMenu;
menuArquivo->Append(ID_Sobre, _T("&Sobre..."));
menuArquivo->AppendSeparator();
menuArquivo->Append(ID_Sair, _T("Sa&ir")
);
wxMenuBar *barraMenu = new wxMenuBar;
barraMenu->Append(menuArquivo, _T("&Arquivo"));
SetMenuBar(barraMenu);
CreateStatusBar();
SetStatusText(_T("by Osmar J. Silva"));
}
void Janela::OnSair(wxCommandEvent& WXUNUSED(event))
{
Close(TRUE);
}
void Janela::OnSobre(wxCommandEvent& WXUNUSED(event))
{
wxMessageBox(_T("Este é um exemplo de
aplicação wxWidget"),
_T("Sobre o programa"), wxOK
| wxICON_INFORMATION, this);
}
Vamos compilar? Dentro do diretório no qual você
salvou o arquivo ola.cpp, dispare o comando:
g++ ola.cpp `wx-config
--cxxflags` `wx-config --libs`-o ola
Cuidado! Você tem que usar "`" e não
o apóstrofo "'". Hora de executar:
./ola
Se tudo correu bem você terá o seguinte resultado:
4) Conclusão
O wxWidgets é realmente um framework
para a construção de interfaces gráficas
que nos surpreende pela facilidade de uso e riqueza de suas
classes e métodos. Desta forma, convidamos-o, agora,
a visitar nossa seção
de dicas, truques e anotações sobre wxWidgets.
Temos certeza que você encontrará muita coisa útil. |