quarta-feira, 14 de novembro de 2012

GTKmm


Exemplo de Aplicação Gráfica em C++

A aplicação a seguir cria uma janela com um botão Hello World, que ao ser clicado imprime a mensagem "Hello World". A classe HelloWorld extende a classe Gtk::Window, adquirindo suas características. A função main instancia a janela e executa o programa.
hello.h:
#ifndef HELLO_H
#define HELLO_H
#include <gtkmm/button.h>
#include <gtkmm/window.h>
class HelloWorld : public Gtk::Window
{
public:
HelloWorld();
virtual ~HelloWorld();
protected:
//Signal handlers
virtual void on_button_clicked();
//Member widgets
Gtk::Button m_button;
};
#endif
hello.cpp:
#include <iostream>
#include "hello.h"
HelloWorld::HelloWorld()
 : m_button("Hello World")
{
set_border_width(10);
m_button.signal_clicked().connect(sigc::mem_fun(*this,&HelloWorld::on_button_clicked));
add(m_button);
m_button.show();
}
HelloWorld::~HelloWorld()
{
}
void HelloWorld::on_button_clicked()
{
std::cout << "Hello World" << std::endl;
}
main.cpp:
#include <gtkmm/main.h>
#include "hello.h"
int main (int argc, char *argv[])
{
Gtk::Main kit(argc, argv);
HelloWorld helloworld;
Gtk::Main::run(helloworld);
return 0;
}


Compilação Passo a Passo

O compilador de C++ do GCC é o g++.
$ g++ hello.cpp -c `pkg-config gtkmm-2.4 --cflags`
$ g++ main.cpp -c `pkg-config gtkmm-2.4 --cflags`
$ g++ main.o hello.o -o hello `pkg-config gtkmm-2.4 --libs`
$ ./hello
Caso você não saiba, o efeito da crase em trechos como `pkg-config gtkmm-2.4 --cflags`, é executar um outro programa e "colar" seu resultado na linha de comando, e só então executar o programa chamado no início da linha.
Imagem:hellogtkmm.png
Aperte o botão "Hello World" algumas vezes e veja o resultado.

pkg-config

Retorna informações sobre bibliotecas instaladas no sistema, como parâmetros para linha de comando do gcc, estas informações vêm de arquivos .pc, instalados pelos pacotes lib*-dev. Arquivos .pc costumam ficar em /usr/lib/pkgconfig
Faça Você Mesmo: observe a saída de pkg-config e o conteúdo do arquivo .pc da biblioteca gtkmm.
$ pkg-config gtkmm-2.4 --cflags --libs
$ cat /usr/lib/pkgconfig/gtkmm-2.4.pc

https://www.youtube.com/watch?v=aYwZ1AgPoZY&feature=related

Tutorial C++ - 12 - Introdução a Classe e Objetos (Em Português)https://www.youtube.com/watch?v=-2xSAk5I-dY
Pascal gtkentry
http://fr.wikibooks.org/wiki/Programmation_GTK2_en_Pascal/GtkEntry

exemplo como tratar float em c


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  float a;
  float b = 0.1;
  printf("Digite um numero.: ");
  scanf("%f",&a);
  fflush(stdin);
  printf("A soma e.: %.2f\n",a+b);
  system("PAUSE");
  return 0;
}

Gtk+ e Math.h http://youtu.be/thl2RCWBOZY


#include <stdlib.h>
#include <gtk/gtk.h>
#include <math.h>
#include <stdio.h>

static void clique (GtkWidget *w, GtkWidget *p);
static void sair (GtkWidget *w, GtkWidget *p);

static void sair (GtkWidget *w, GtkWidget *p)
{
  gtk_main_quit();
}

static void clique (GtkWidget *w, GtkWidget *p)
{
  int num1=9;
  g_printf("O botao foi clicado\n o valor.: %.2f",pow(num,2));
}

int main (int argc, char *argv[])
{
  GtkWidget *janela,*botao;

  /* Initialize GTK+ */
  gtk_init (&argc, &argv);
  /* Create the main window */
  janela = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_container_set_border_width (GTK_CONTAINER (Janela), 8);
  gtk_window_set_title (GTK_WINDOW (janela), "Gtk+ e Math.h");
  gtk_window_set_position (GTK_WINDOW (janela), GTK_WIN_POS_CENTER);
  gtk_widget_realize (janela);
  g_signal_connect (janela, "delete-event", G_CALLBACK(sair), NULL);

  botao = gtk_button_new_with_label("Clique aqui");
  gtk_container_add(GTK_CONTAINER(janela),botao);
  g_signal_connect (G_OBJECT (botao), "clicked", G_CALLBACK (clique), NULL);


  /* Enter the main loop */
  gtk_widget_show_all (janela);
  gtk_main ();
  return 0;
}

http://homepages.dcc.ufmg.br/~joaoreis/Site%20de%20tutoriais/

Nenhum comentário:

Postar um comentário