segunda-feira, outubro 30, 2006

Curso de wxWidgets, post 7: Interagindo com o usuário

Já sabemos criar janelas no wxWidgets, podemos interagir com o usuário através delas, mas existem outras formas de fazer isso, sem precisarmos criar janelas cheias de widgets.

Nesse post vamos conhecer wxMessageBox(), wxGetTextFromUser(), wxGetPasswordFromUser(), wxGetColourFromUser(), wxGetFontFromUser() e wxFileSelector().

wxMessageBox()

Jà vimos o wxMessageBox() em posts anteriores, com ele podemos mostrar janelas pop-up para o usuário, emitindo avisos e até mesmo fazendo perguntas:

int wxMessageBox(const wxString& message, const wxString& caption = "Message",
int style = wxOK, wxWindow *parent = NULL, int x = -1, int y = -1)

message: A mensagem a ser exibida.

caption: O título da janela.

style: Estilo. Pode ser wxYES_NO, wxCANCEL, wxOK, wxICON_EXCLAMATION, wxICON_HAND,
wxICON_ERROR, wxICON_QUESTION e wxICON_INFORMATION.

parent: A janela mãe do pop-up.

x, y: Coordenadas da janela pop-up.


Apenas o parâmetro message é obrigatório. Os mais importantes são message, caption e style. Os estilos indicam qual a configuração da janela pop-up, como os botões que ela vai ter e o ícone. Tente combinar os estilos e criar algumas janelas.

wxMessageBox(wxT("Está gostando do curso?"), wxT("A casa de Just"),
wxICON_QUESTION | wxYES_NO);




wxGetTextFromUser() e wxGetPasswordFromUser()

Uma boa ajuda para obter textos do usuário, como um scanf() no C, mas em janela :)

wxString wxGetTextFromUser(const wxString& message, const wxString&
caption = "Input text", const wxString& default_value = "",
wxWindow *parent = NULL, int x = wxDefaultCoord, int y = wxDefaultCoord,
bool centre = true)

wxString wxGetPasswordFromUser(const wxString& message,
const wxString& caption = "Input text", const wxString& default_value = "",
wxWindow *parent = NULL, int x = wxDefaultCoord, int y = wxDefaultCoord,
bool centre = true)

message: Mensagem a ser exibida.

caption: Título da janela.

default_value: Valor padrão.

parent: A janela mãe do pop-up.

x, y: Coordenadas da janela.

centre: Centraliza a mensagem.


Como no wxMessageBox(), apenas message é obrigatório. Essa função retorna um objeto do tipo wxString com o texto que o usuário digitou. Em wxGetPasswordFromUser(), o texto que o usuário digita fica mascarado com asteriscos, é utilizado para obter senhas.

wxString nome = wxGetTextFromUser(wxT("Qual seu nome?"));




wxString senha = wxGetPasswordFromUser(wxT("Digite sua senha:"));




wxGetColourFromUser()

Quer solicitar alguma cor ao usuário? O wxWidgets pode ajudar com uma janela pronta para escolha de cores.

wxColour wxGetColourFromUser(wxWindow *parent, const wxColour& colInit)

parent: A janela mãe do pop-up.

colInit: Uma cor pré-selecionada para o pop-up.


Todos os parâmetros são opcionais. A função retorna um objeto do tipo wxColour com a cor que o usuário escolheu.

wxColour cor = wxGetColourFromUser();




wxGetFontFromUser()

Também é possível solicitar uma fonte ao usuário. Da mesma forma que com wxGetColourFromUser(), uma simples função pode fazer isso.

wxFont wxGetFontFromUser(wxWindow *parent, const wxFont& fontInit)

parent: A janela mãe do pop-up.

fontInit: Uma fonte pré-selecionada para o pop-up.


Novamente, todos os parâmetros são opcionais. A função retorna um objeto do tipo wxFont.

wxFont fonte = wxGetFontFromUser();




wxFileSelector()

Vamos agora selecionar arquivos.

wxString wxFileSelector(const wxString& message, const wxString& default_path = "",
const wxString& default_filename = "", const wxString& default_extension = "",
const wxString& wildcard = "*.*", int flags = 0, wxWindow *parent = NULL,
int x = -1, int y = -1)

message: Mensagem a ser exibida.

default_path: Diretório inicial.

default_filename: Nome de arquivo inicial.

default_extension: Extensão para o arquivo que será selecionado.

wildcard: Curinga para exibição dos arquivos. Exemplo: "Bitmaps|*.bmp|Todos os arquivos|*.*".
Este exemplo faz um menu dropdown com as duas opções.

flags: Estilo da janela. Pode ser wxOPEN, wxSAVE, wxOVERWRITE_PROMPT, wxFILE_MUST_EXIST,
wxMULTIPLE ou 0. A janela pode abrir, salvar, perguntar caso sobrescreva, etc.

parent: A janela mãe do pop-up.

x, y: Coordenadas do pop-up.


Apenas message é obrigatório. A função retorna um objeto do tipo wxString com o caminho completo do arquivo.

wxString arquivo = wxFileSelector(wxT("Selecione o arquivo"));




Finalizando

Existem também outras funções para interação com o usuário, você pode vê-las na página "Dialog functions".

Como foi mostrado, não é necessário ficar fazendo janelas para coisas comuns como solicitar um arquivo ou uma cor. Explore as outras funções para descobrir coisas novas. :)

4 comentários:

Anônimo disse...

Muito com o curso.
Parabéns pela iniciativa e continue, por favor.
Já aprendi bastante com você

Anônimo disse...

Muito bom o curso, estou fazendo um programa que vou utilizar em um trabalho na faculdade, continue assim.

Apenas um pequeno erro:
"Novamente, todos os parâmetros são opcionais. A função retorna um objeto do tipo wxColour.

wxFont fonte = wxGetFontFromUser();"

o certo seria - objeto do tipo wxFont.

Unknown disse...

Obrigado, Diego. Fiz a correção.

Se algum de vocês quiser sugerir algo, como por exemplo, algum tópico específico do wxWidgets, fiquem a vontade. :)

Anônimo disse...

Parabens ae muito legal seu curso