joaohd 200 Postado Junho 17, 2011 Share Postado Junho 17, 2011 (editado) Introdução à biblioteca wxlua Antes de iniciarmos nosso aprendizado em wxlua, devemos ter em mente qual a finalidade dessa biblioteca. Bem, a biblioteca wxlua, juntamente com sua API C, implementa as funções essenciais para criarmos uma aplicação com interface gráfica. É uma biblioteca muito rica e, utilizando-se de outras bibliotecas lua, podemos criar aplicativos incríveis. Entendida a função, podemos começar a estudar a estrutura dos programas escritos com a biblioteca wxlua, que segue uma estrutura bem rígida quanto à organização. Para que possamos utilizar as funções disponíveis através da biblioteca wx, nosso programa deverá invocar esta, através da função require, da seguinte maneira: require("wx") Desta maneira, nosso programa terá conhecimento das funções e poderá utilizá-la. Obrigatoriamente, nosso aplicativo deve ter um frame, que seria como um "palco", onde nossos componentes serão inseridos. Este palco deve também ser repassado a uma variável, para que possa ser acessado quando formos "pendurar" nossos componentes. - "pendurar" seria a tradução de "append", termo que passaremos a utilizar mais adiante. Agora veremos nossa primeira função wx, a função wx.wxFrame: MeuPalco = wx.wxFrame(wx.NULL, wx.wxID_ANY, "Tutorial xtibia", wx.wxDefaultPosition, wx.wxSize(200,200), wx.wxDEFAULT_FRAME_STYLE) Onde : O primeiro argumento é o id do frame "pai". Quando quisermos criar um frame principal, deveremos utilizar no lugar desta variável, a constante wx.NULL O segundo argumento é o id do frame que está sendo criado. Comumente utiliza-se o wx.wxID_ANY, que irá criar um id para nosso frame. O terceiro argumento é o nome que será exibido no topo do nosso palco. O quarto argumento é a posição onde o palco será criado. Para tamanho padrão, utiliza-se a constante wx.wxDefaultPosition. O quinto argumento é o tamanho do palco O último argumento é o estilo do palco. Para criarmos um frame com estilo padrão, utilizamos a constante wx.wxDEFAULT_FRAME_STYLE. Então já sabemos criar um palco para que possamos colocar nossos componentes. Vamos criar um menu? Para criarmos um menu, devemos associá-lo também a uma variável, com o valor da função wx.wxMenu(). Veja: MeuMenu = wx.wxMenu() Vamos agora colocar uma opção neste menu. Esta opção nos mostrará uma mensagem informando que você conseguiu criar a opção. Criarei primeiro um id para associar à minha opção e em seguida, a criarei: MenuXtibia = 1 MeuMenu:Append(MenuXtibia, "&xtibia", "Clique para saber mais.") Os parâmetros do Append, são: Id, que é o id associado ao seu menu Texto, que é o texto que ficará escrito em sua opção no menu Mensagem, que é a mensagem que aparecerá no rodapé do nosso programa quando posicionarmos o cursor do mouse sobre a opção Você deve ter percebido que eu coloquei um "&" no meu texto. Bem, este é o modo de criar um atalho. Neste caso, meu atalho será "x". Quando eu estiver no menu e pressionar "x", esta opção será selecionada. Continuando, nós já criamos nosso menu. Entretanto, ele não está no palco ainda. Ou seja, não será exibido. Vamos colocá-lo lá? Primeiro criamos a barra de menus: MinhaBarra = wx.wxMenuBar() Depois, "penduro" meu menu na barra que criei: MinhaBarra:Append(MeuMenu, "&Menu") Por fim, coloco minha barra no meu palco: MeuPalco:SetMenuBar(MinhaBarra) Menu no lugar, que tal criarmos a barra inferior que exiba alguma mensagem para o usuário? MeuPalco:CreateStatusBar(1) Pronto. Vou colocar um texto nela que, quando o programa for aberto, estará escrito: MeuPalco:SetStatusText("Olá! Você está indo bem!") Feito. Lembra que eu disse que a nossa opção no menu exibiria uma mensagem? Então, agora é a hora: MeuPalco:Connect(MenuXtibia, wx.wxEVT_COMMAND_MENU_SELECTED, function(event) wx.wxMessageBox("Boa campeão. Você está seguindo corretamente o tutorial.", "Parabéns!", wx.wxOK + wx.wxICON_INFORMATION, MeuPalco) end) Ufa, está acabando. Tudo o que criamos até agora, não está visível. Então, devemos corrigir isto: MeuPalco:Show(true) E por fim, para que nosso programa seja exibido corretamente, utilizamos a função MainLoop: wx.wxGetApp():MainLoop() Pronto. Se conseguiu obter resultados positivos, parabéns. Caso contrário, procure entender onde estão seus erros e procure corrigí-los. Nosso código no fim deve estar parecido com este: require("wx") MeuPalco = wx.wxFrame(wx.NULL, wx.wxID_ANY, "Tutorial xtibia", wx.wxDefaultPosition, wx.wxSize(200,200), wx.wxDEFAULT_FRAME_STYLE) MeuMenu = wx.wxMenu() MenuXtibia = 1 MeuMenu:Append(MenuXtibia, "&xtibia", "Clique para saber mais.") MinhaBarra = wx.wxMenuBar() MinhaBarra:Append(MeuMenu, "&Menu") MeuPalco:SetMenuBar(MinhaBarra) MeuPalco:CreateStatusBar(1) MeuPalco:SetStatusText("Olá! Você está indo bem!") MeuPalco:Connect(MenuXtibia, wx.wxEVT_COMMAND_MENU_SELECTED, function(event) wx.wxMessageBox("Boa campeão. Você está seguindo corretamente o tutorial.", "Parabéns!", wx.wxOK + wx.wxICON_INFORMATION, MeuPalco) end) MeuPalco:Show(true) wx.wxGetApp():MainLoop() Lembrando: Para se executar este código, é necessária a biblioteca wxlua ou o scite instalados. flw Editado Junho 17, 2011 por apocarai Link para o comentário https://xtibia.com/forum/topic/158946-biblioteca-wxlua/ Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Junho 17, 2011 Share Postado Junho 17, 2011 Ai sim, valeu por fazer o tutorial que eu tanto te pedi haha. Em breve vou ler, abraços. Link para o comentário https://xtibia.com/forum/topic/158946-biblioteca-wxlua/#findComment-1048110 Compartilhar em outros sites More sharing options...
dwhfms 168 Postado Junho 18, 2011 Share Postado Junho 18, 2011 Parabéns apocarai, ficou ótimo o tutorial. REP+ Link para o comentário https://xtibia.com/forum/topic/158946-biblioteca-wxlua/#findComment-1048370 Compartilhar em outros sites More sharing options...
Posts Recomendados