Jump to content
Rafiki

Scroll GTK

Recommended Posts

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á

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.