Jump to content
×
×
  • Create New...

Recommended Posts

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

Edited by apocarai
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.


    Administrador |  Diretor |  Coordenador |  Moderador |  Suporter |  Estagiário |  Herói
  • Similar Content

    • By Vittu
      http://i.imgur.com/QRgvi.png  
      mama eu frenv
    • By zDeadly
      Cliente NTO hell dust pro ADM q paga de macho descobrir q e só mais um otario 
       
      Scan:
      https://www.virustotal.com/gui/file/539cf891fe269509f58fdf7714ad6ede416c89ee99fdebd7b0f3b4b967d94755/detection
       
      Cliente: https://www.sendspace.com/file/mgdwfx
       
       

    • By krzysiex
      COMECE HOJE 17:00 PL TIME
      (ESTA HORA: https://time.is/Rybnik)
      * IP:ProstoriaOTS.PL
      * Port:7171
      * Version:8.60
      * Android Client
      * Discord
      * Global Save: YES - 22:00
      EXP STAGE:
      *1-100 x300
      *101-300 x150
      *301-400 x70
      *401-500 x35
      *501-600 x20
      *601-700 x10
      *701-800 x5
      *801-900 x2
      *901-1000 x1
      Magic Level: x8
      Skills: x8
      Loot: x4
      Spawn: x2
      Guilds: 1 level (Create website)
      Protection level 150
       Level to buy house 300
      PZ Lock: 0.10 min
      White Skull Time: 4 min
      Red skull length: 3 days
      10 minutos após o início, cada jogador logado receberá 20 pontos premium grátis na loja de SMS!
      Duas horas após o início do servidor, cada jogador conectado com um nível acima de 400 receberá 10 pontos premium Um concurso aparecerá em breve em nossa FanPage do Facebook, então agora nós o encorajamos a curtir No servidor, há buscas por itens melhores do que os da loja de itens!
      Pontos premium por nível:
      - 600 = 10 pontos
      - 800 = 15 pontos
      - 900 = 20 pontos
      - 1100 = 30 p
      - 1400 = 50 p
      * Sistema de loteria
      * Sistema de chefe diário
      * Sistema de missões diárias
      * Sistema de tarefas
      * Sistema Addon
      * Sistema Autoloot
      * Atualize o sistema, bem como o Super upgrade!
      * O sistema de energia extra aumenta nosso dano de feitiços e runas
      * Desvie do sistema, uma chance de se esquivar de ataques inimigos
      * Chance crítica do sistema de causar mais danos "
      * Sistema anti mc, 1 principal + 2 mc
      * Sistema de pontos online (para cada hora de atividade, ganhamos um ponto online que pode ser trocado por itens valiosos)
      * Sistema de baú Se você tiver sorte e conseguir a chave, vá para o Templo (nível +1)
      * Sistema de castelos lutando por um castelo com outras guildas, graças ao qual ganhamos + 10% a mais de experiência!
      * Castle 24!
      * TASK
      * DAILY TASK
      * 100 + QUEST
      * Evento Serek
      * Evento de batalha em equipe
      * Evento de dados automáticos
      * Evento de tempestade
      * Evento de zumbi
      * Arena dourada
      * Zona segura
      * Item de chuva
      * Hora feliz
      * Evento Boss
      * Invasões











    • By Black Tall
      Sobre o servidor: contamos com todas as quests e hunts novas inclusive a nova ilha dos piratas saiu no update novo. temos todos os outfits, e mounts novas tbm contamos com sistemas atuais como venda de char e muito sistemas e eventos custom proprios do servidor. iremos inaugurar no final desse mês. estamos apenas acabando os bosses Soul com todas as macanicas e os bosses da livraria. acabando isso servidor estara 100% pra lançar oficial. precisamos de tutores/design pra fazer umas logo, banner e fundo do cliente.    Olá a todos, estou montando um servidor de tibia global 12.62 esta quase pronto só falta os bosses da area Soul. estou precisando de ajuda pra equipe. preciso de um Tutor/Design de imagems e logo e banner pro servidor interessados entrem em contato aqui ou discord.   discord: ADM Olympus#5236
    • By Black Tall
      Sejam Bem Vindos Ao Olympus Global
      Site: olympus-global.sytes.net    
      Versao: 12.62 Rate: 800x 
      Venha Ser Top Level e se Divertir os Primeiros Ganham 10k de Coins so Falar com Npc Templo Thais npc Server Asssite fala Hi-Coins   Hi-trade    Hi-experience
       
       
       
      Maioria das quests sem precisar de missão;
      Client Novo 12.60, login com Account e Senha Igual globa no Site Login com E-mail ta desativado;
      Novas Deep Desert;
      Bestiary 90%
      Charms 100% Venda de Chares 100% In game por comandos. Hunts dos Lions 100% Indo por Edron no Camp Lions. Boss Drume Funcionando 100% so matar 3 Commander urchers e o Drume aparece. Boss King Zelos 100% pega missão no npc Jack em Thais mate o Zelos e Ganha o Outfits Ao reportar o Npc que matou o Zelos. Sistema de Points Online 100% Eventos Roleta 100% Cults Bosses nas cidades de Carlin,Edron,Thais,Darashia etc Todos 100% so ir matar. Bosses Dukes 100% Custodian 100% Mini Bosses pelo mapa 100% os Were, Cobras, Lions, Falcons etc todos 100%.
      Novos Bosses 90% faltando apenas da Hunts Soul. Boss Scarlet, Oberon, Drume todos 100% com mecanicas. Boss FacelessBane 100% com mecanica. Sistema Proprio do servidor de Npc de Taks 100% Issavi 100%
      Hirelings;
      Magias Novas 100%
      Hunt Hyenas 100%
      Novas Mounts e Outfits 100%
      Items Soul 100%
      Golden Outfit 100% 
      Novas Falcons 100%
      Novas MOTA extension;
      Novas Deathlings 95%
      Daily Reward 100%
      Prey system 100%
      Novas Asuras 100%
      Quickloot 100%
      Exercise Training 95% estão funcionando as de 500 cargas e de 14k cargas faltando apenas as de 1800 cargas
      Raids 100%;
      Monstros 95% faltando somente as hunts Soul que em fevereiro tudo estara pronto pra abertura oficial.
      Trainer Offline 100%;
      Trainer Online 100%;
      Database Completa;
      War System 100%;
      Acessos Liberados;
      Muitas correções;
      Balanceamento de vocações;
      Divirtam-se