Search the Community
Showing results for tags 'gtk'.
-
Boa noite, esta discussão é bastante comum e encontrei várias do género em outros fóruns. Ainda assim queria interagir com alguém que conhecesse o assunto, possivelmente já o tenha debatido ou tenha testemunhado debates e possa contribuir com os seus comentários no tópico. Queria aprender aprodundadamente uma das bibliotecas Gtk ou Qt. Programo em C (eventualmente, posso migrar para C++ se ter melhores condições para um ambiente gráfico o exige) e em ambiente Linux, mas queria desenvolver aplicações multi-plataforma open-source, que por sua vez não exigissem ao user ter que instalar terceiras bibliotecas para correr um programa. Procuro portanto uma biblioteca gráfica que satisfaça essa condição, mas que por outro lado não me obrigue a escrever código extremamente longo para fazer um ambiente gráfico simples, ou que exiga demasiada atenção a combinações de Boxes ou Containers e não me permita focar o meu tempo na mecânica e lógica. Por outro lado queria que fosse uma biblioteca leve. A documentação disponível sobre a biblioteca é também um grande ponto a favor, e isto inclui a comunidade envolvida e a popularidade entre programadores em geral. Conheço pouco de ambas as bibliotecas e nesta fase procuro fixar-me numa só, a questão principal é em qual me devo focar, porquê e que experiência têm com essa biblioteca. Os critérios são possibilidades multi.plataforma, documentação, performance e aparência. Se estiver a desconsiderar algum critério não se abstenham de o mencionar. Opiniões fundamentadas e baseadas na vossa experiência são muito bem vindas. Obrigado!
-
Boas, Preciso de fazer mover várias formas geométricas numa drawing area no Cairo, mas não faço ideia de como o fazer (e não encontro documentação útil neste tópico). Se por um lado parece que preciso usar cairo_translate(cr, x, y) para movimentar um objeto na drawing area, por outro não sei como fazer a chamada sucessiva à função para apresentar a imagem em novas coordenadas por frame (noutros frameworks chamaria a função no loop e controlaria os fps's por uma função clock( ) ). O código que tenho de momento é este: genRandVector(numOfBalls); /* creates big ball */ cairo_set_line_width(cr, 5); cairo_set_source_rgb(cr, 0, 0, 0); cairo_arc(cr, balls_MAP[0].x, balls_MAP[0].y, CONF.big_rad, 0, 2 * M_PI); cairo_stroke_preserve(cr); cairo_set_source_rgb(cr, 0.9, 0.9, 0.9); cairo_fill(cr); /* creates other balls */ int i; cairo_close_path(cr); cairo_set_source_rgb(cr, 0, 0, 0); for(i = 1; i < numOfBalls; i++) { cairo_arc(cr, balls_MAP[i].x, balls_MAP[i].y, CONF.small_rad, 0, 2 * M_PI); cairo_stroke_preserve(cr); cairo_fill(cr); cairo_close_path(cr); } e tenho os objetos parados no ecrã. Gostava de saber como os fazer mover aleatoriamente no Cairo. Obrigado!
-
EDIT: Após horas á procura, e ter feito o post, cheguei á conclusão que o problema tinha sido apenas documentação mal lida. O argumento self.stack, seria na realidade a child a anexar. Boas, estou a tentar criar uma interface grafica em Pygobject(gtk3), e até agora tenho tido sucesso, no entanto após pesquisar o metodo mais adequado para a criação de um local com conteudo variavel (varias combinações possiveis de botões, textboxes, etc), cheguei á conclusão de que o mais adequado seria utilizar o widget/container Gtk.Stack. No entanto não sou capaz de criar childs do stack devido a erros de runtime(core dumps). O meu codigo é o seguinte: def main_content(self): right_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.stack = Gtk.Stack() self.stack.get_style_context().add_class("main-container") self.stack.props.margin = 20 self.stack.add_named(self.stack,"Start") #O problema ocorre na linha de cima. Este mesmissimo codigo gera um core dump right_box.pack_start(self.stack, True, True, 0) return right_box Na função main_content é onde é suposto serem colocados os stacks. Mas não estou a conseguir ter sucesso em tal tarefa. Qualquer ajuda seria agradecida. Cumprimentos
-
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á
-
Boas, Antes de mais, gostava de felicitar a comunidade portugal-a-programar pelo excelente trabalho e ótima reputação. A razão deste novo tópico é que tenho um trabalho para ser entregue dia 6 de janeiro e já estou bastante atrasado. O objetivo é criar um programa em c (utilizando o gtk) para estudar um "Oscilador de Fermi". Bom eu já programei em c e percebo mais ou menos daquilo, mas as minhas dúvidas são mais relacionadas com a compilação e criar algum tipo de janelas/menus. Venho pedir vos se me conseguiam dar alguns tuturiais sobre os makefiles e gtk em si. ps. o meu objetivo não é que façam o trabalho por mim, mas ajudar me a perceber isto. Convém dizer que estou a usar ubuntu comps.