Jump to content
Fórum Script Brasil
  • 0

Ajuda - Interface com wxWidgets


Computero
 Share

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.4k
×
×
  • Create New...