Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda - Interface com wxWidgets


Computero

Pergunta

Fala galera,

faço computação ( óbvio ) e to precisando de ajuda num trabalho de Linguagens de Programação

Preciso fazer um programa com interface gráfica usando C++ com wxWidgets , e preciso de apresentar recursos de linguagem no trabalho..

O Problema é o seguinte , preciso de um botão pra comecar a ação , ir imprimindo na propria interface, e quando solicitado o botão parar, ele pausa o processamento, e deixa uma lista de todos os numeros impressos até a pausa..

Nada mais é, que cálculo de números primos, só que tá fudendo é a interface.. alguém dá uma ajuda?

O máximo que conseguir foi o botão iniciar, mas quando inicio ele imprimi no terminal ¬¬'' ..

valeu galera !!!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Oi!

Especificamente sobre o wxWidgets não posso ajudar mas o problema de estar mandando os textos para o terminal deve ser porque você está usando cout ou printf. Você tem que usar um objeto como um textview para exibir o texto.

Coloque o código que vendo a lógica pode ser que consigo te ajudar!

Abraços,

Marcelo Utikawa da Fonseca

Oi!

Especificamente sobre o wxWidgets não posso ajudar mas o problema de estar mandando os textos para o terminal deve ser porque você está usando cout ou printf. Você tem que usar um objeto como um textview para exibir o texto.

Coloque o código que vendo a lógica pode ser que consigo te ajudar!

Abraços,

Marcelo Utikawa da Fonseca

Link para o comentário
Compartilhar em outros sites

  • 0

#include "janela.h"

#include <iostream>

using namespace std;

// Classe Janela, para demonstrar uma janela que responde eventos.

enum

{

ID_BOTAO = 1,

};

Janela::Janela(const wxString& titulo, const wxSize& tamanho, const wxPoint& posicao) :

wxFrame(NULL, wxID_ANY, titulo, posicao, tamanho),

ptPainel(new wxPanel(this, wxID_ANY)),

ptBotao(new wxButton(ptPainel, ID_BOTAO, wxT("Iniciar")))

{

}

void Janela::QuandoMudarTamanho(wxSizeEvent& e)

{

int x, y;

GetClientSize(&x, &y);

ptPainel->SetSize(x,y);

int xBt, yBt;

ptBotao->GetSize(&xBt, &yBt);

ptBotao->Move((x-xBt)/2, static_cast<int>((y-yBt)*0.8));

}

void Janela::QuandoFechar(wxCloseEvent& evento)

{

wxMessageDialog* ptDialogoFechar =

new wxMessageDialog(NULL,

wxT("Tem certeza que quer sair?"),

wxT("Confirmação"),

wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION);

int resposta = ptDialogoFechar->ShowModal();

ptDialogoFechar->Destroy();

if (resposta == wxID_YES)

Destroy();

else

evento.Veto();

// Cancelar o evento usando "Veto()" conforme recomendado em

// http://zetcode.com/tutorials/wxwidgetstutorial/events/

}

void Janela::QuandoClicarBotao(wxCommandEvent& e)

{

int inicioIntervalo = 0, fimIntervalo = 99999999;

int i, j;

for(i = inicioIntervalo + 1; i < fimIntervalo; i++){

int ePrimo = 1;

for(j = 2; j <= i / 2; j++){

if(i % j == 0){

ePrimo = 0;

break;

}

}

if(ePrimo == 1) {

cout<<"\n"<<i;

}

}

}

BEGIN_EVENT_TABLE(Janela, wxFrame)

EVT_SIZE ( Janela::QuandoMudarTamanho)

EVT_BUTTON (ID_BOTAO, Janela::QuandoClicarBotao)

EVT_CLOSE ( Janela::QuandoFechar)

END_EVENT_TABLE()

Preciso que o Evento QuandoClicarBotao ative um evento pra imprimir na Interface ..

Link para o comentário
Compartilhar em outros sites

  • 0

O que você precisa fazer não é gerar um evento mas sim carregar o texto em um objeto como um textview. É dentro do evento do botão que você faz isso. Ao invés de usar o cout você carrega o texto nesse objeto...

Além disso, como é um for longo e que pode ser interrompido pela interface, você precisa chamar alguma função que leia os eventos da interface ou seu programa vai parar de responder.

Abraços,

Marcelo Utikawa da Fonseca

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...