#c #gtk #codeblocks #glade
#c #gtk #codeblocks #glade
Вопрос:
Я очень новичок в программировании с графическим интерфейсом в Linux и натыкаюсь на первое препятствие, я использую glade для разработки формы (я пришел из Windows background), в Glade это выглядит совершенно иначе, чем при запуске скомпилированной программы. вот их скриншот
смотрите ссылку, поскольку они не позволят мне публиковать изображения
вот c
#include <gtk/gtk.h>
void close_app(GtkWidget* widget,gpointer user_data) {
gtk_main_quit();
}
int main (int argc, char **argv) {
GtkBuilder *gtkBuilder;
GtkWidget *mainwin;
gtk_set_locale();
gtk_init (amp;argc, amp;argv);
gtkBuilder= gtk_builder_new();
gtk_builder_add_from_file(gtkBuilder,"test2.glade",NULL);
gtk_builder_connect_signals ( gtkBuilder, NULL );
mainwin= GTK_WIDGET(gtk_builder_get_object(gtkBuilder,"window1"));
g_object_unref ( G_OBJECT(gtkBuilder) );
gtk_widget_show_all ( mainwin );
gtk_main ();
return 0;
}
я на debian squeeze и использую libgtk2.0-dev версии 2.20 libgnome2.24 <- Я даже не знаю, может ли это быть проблемой?
есть идеи?
Спасибо
Ответ №1:
У вас ничего нет в пустых пространствах в ваших HBox и VBox. Если другие виджеты не занимают места, то ваша кнопка расширится, чтобы заполнить все доступное пространство. Поместите несколько других виджетов в свое окно, если вы не хотите, чтобы кнопка заполняла его. Определение размера и размещение работают в GTK иначе, чем в других наборах инструментов, идея состоит в том, чтобы создать пользовательский интерфейс, который по-прежнему хорошо выглядит, когда пользователь изменяет размер окна или когда строки пользовательского интерфейса меняют длину, потому что пользователь использует ваше приложение на другом языке.
Смотрите соответствующий раздел руководства по GTK или этот другой учебник.