Fórum Ubuntu Linux - PT
Suporte Técnico => Programação e Scripts => Tópico iniciado por: solanoalves em 28 de Janeiro de 2008, 22:39
-
Se eu defino a janela como set_resizable(false), ela abre encolhida e não consigo ver nada.
Segue o código:
#include <gtkmm/window.h>
#include <gtkmm/main.h>
#include <gtkmm/layout.h>
#include <gtkmm/button.h>
#include <gtkmm/box.h>
#include <gtkmm/buttonbox.h>
#include <gtkmm/label.h>
class Janela : public Gtk::Window{
public:
Janela() :
layout(),
adicionar("Adicionar"),
remover("Remover"),
pesquisar("Pesquisar"),
sobre("Sobre"),
cvbotao(Gtk::BUTTONBOX_START, 10),
label("bla bla bla bla"),
caixa(){
Gtk::Window::set_size(500,300);
Gtk::Window::set_resizable(false);
Gtk::Window::set_title("Receitas Vegetarianas");
add(caixa);
caixa.pack_start(layout);
caixa.pack_end(label);
cvbotao.add(pesquisar);
cvbotao.add(adicionar);
cvbotao.add(remover);
cvbotao.add(sobre);
layout.put(cvbotao,30,140);
layout.show();
label.show();
cvbotao.show();
adicionar.show();
remover.show();
pesquisar.show();
sobre.show();
caixa.show();
}
~Janela(){
}
protected:
Gtk::Button adicionar;
Gtk::Button remover;
Gtk::Button pesquisar;
Gtk::Button sobre;
Gtk::Layout layout;
Gtk::VButtonBox cvbotao;
Gtk::Label label;
Gtk::HBox caixa;
};
int main(int argc, char * argv[]){
Gtk::Main kit(argc, argv);
Janela janela;
Gtk::Main::run(janela);
}
compilar com:
g++ main.cc -o main `pkg-config gtkmm-2.4 --cflags --libs`
-
Aqui precisei comentar a função
Gtk::Window::set_size(500,300);
porque set_size não faz parte da classe Gtk::Window.
Com isso compilou normal.
Ao rodar o programa, a janela tinha dimensões suficientes apenas para exibir o label "bla bla bla bla". É como se só o label estivesse "solicitando espaço na janela.
Se eu comentar o label a janela terá dimenões quase que nulas (quase uma linha vertical).
Na impede que você especifique um tamanho desejado para a janela. Acredito que a função que você gostaria de usar é set_size_request.
Por exemplo, usando
Gtk::Window::set_size_request(400,350);
a janela tem espaço para exibir tudo: o label e os botões.
Fazer a interface direto no código é interessante, mas dá uma olhada também no glade que as coisas ficam bem mais fáceis com ele.
-
Valeu cara!!!...deu certo!!
Eu tenho o glade aqui, mas prefiro fazer a mão enquanto eu conseguir hehehe