Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Rafiki

Scroll GTK

Mensagens Recomendadas

Rafiki

olá pessoal ;D, sou novo aqui e no GTK, estou a bate cabeça com o GTK a 2 dias, bem como primeiro projeto resolvi criar um editor de notas simples, e no decorrer do código tive um imensa dificuldade com o scroll ,pois não consigo coloca quebra de linha no text_view e nem scroll vertical , se alguem puder me ajuda ai vai o código:

#include <gtk/gtk.h>

class programa {

private:

GtkWidget *janela;
GtkWidget *caixa_texto;
GtkWidget *tabela;
GtkWidget *vbox;

public:
programa(int argc, char *argv[]) {

    gtk_init(&argc, &argv);

    janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_container_set_border_width(GTK_CONTAINER(janela), 5);
    gtk_window_set_title(GTK_WINDOW(janela), "");
    gtk_window_set_default_size(GTK_WINDOW(janela), 600, 600);
    gtk_window_set_position(GTK_WINDOW(janela), GTK_WIN_POS_CENTER);
    g_signal_connect(janela, "destroy", gtk_main_quit, NULL);
    gtk_widget_realize(janela);

    vbox = gtk_vbox_new(TRUE,1);

    caixa_texto = gtk_text_view_new();
    gtk_box_pack_start(GTK_BOX(vbox),caixa_texto,TRUE,TRUE,1);

    tabela = gtk_table_new(1,2,TRUE);
    gtk_table_attach_defaults(GTK_TABLE(tabela),vbox,0,2,0,1);
    gtk_table_attach_defaults(GTK_TABLE(tabela),caixa_texto,0,2,0,1);
    gtk_container_add(GTK_CONTAINER(janela),tabela);


    gtk_widget_show_all(janela);
}

};
int main (int argc, char *argv[]) {

programa this_programa(argc, argv);

gtk_main();

return 0;
}

tendei organiza-lo da melhor forma possivel, e bem levando em conta que sou iniciante , gostaria de algumas obiservações para melhor o código ;D , agradeço desde já

Editado por thoga31
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rafiki

;S, esta documentação deu erro 404 , HappyHippyHippo já li nas documentações do GTK, porém continuou confuso , alguem poderia me monstra alguma aplicação?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

;S, esta documentação deu erro 404 , HappyHippyHippo já li nas documentações do GTK, porém continuou confuso , alguem poderia me monstra alguma aplicação?

o forúm está a ter espasmos quando uma pessoa mete links ...

http://www.gtk.org/api/2.6/gtk/GtkScrolledwindow.html

o link irá ter a palavra window em minúsculas, deverás trocar o primeiro W para maiúscula


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rafiki

bem demorei um pouco, mas com muita luta eu consegui ;)

olhe ai o codigo :

#include <gtk/gtk.h>

class programa {
private:

GtkWidget *janela;
GtkTextView *caixa_texto;
GtkScrolledWindow *scroll;

public:
programa(int argc, char *argv[]) {

    gtk_init(&argc, &argv);

    janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_container_set_border_width(GTK_CONTAINER(janela), 5);
    gtk_window_set_title(GTK_WINDOW(janela), "");
    gtk_window_set_default_size(GTK_WINDOW(janela), 600, 600);
    gtk_window_set_position(GTK_WINDOW(janela), GTK_WIN_POS_CENTER);
    g_signal_connect(janela, "destroy", gtk_main_quit, NULL);

    caixa_texto = (GtkTextView *)gtk_text_view_new();

    scroll = (GtkScrolledWindow *)gtk_scrolled_window_new(NULL, NULL);
    gtk_scrolled_window_add_with_viewport(scroll,GTK_WIDGET(caixa_texto));
    gtk_container_add(GTK_CONTAINER(scroll), janela);
    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_AUTOMATIC,
                            GTK_POLICY_ALWAYS);


    gtk_container_add(GTK_CONTAINER(janela),GTK_WIDGET(scroll));



    gtk_widget_show_all(janela);
}
};

int main (int argc, char *argv[]) {

programa this_programa(argc, argv);
gtk_main();
return 0;

}

os proximos passos serão implementar a menu bar ;D

Editado por thoga31
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.