GTK + 3.0 library.and를 사용하여 C GUI를 사용하고 있습니다. Glade 도구를 사용하고 있는데 Glade에서 GUI를 만든 후 실제로 "c"파일이 GUI에 생성 된 것을 알고 싶습니다.Glade에서 GUI를 만든 후 실제로 "c"파일이 생성되는 것을 알고 싶습니까?
0
A
답변
2
Glade-3은 컴파일 할 수있는 .c 파일을 생성하지 않습니다. 위젯의 레이아웃과 연결할 신호를 설명하는 XML 파일 인 .glade (.ui)를 생성합니다. 이 파일을 런타임에 프로그램에로드하여 위젯을 작성하십시오. 아주 아주 오래된 버전은 .c 파일을 생성했지만 오래 전이었습니다.
응용 프로그램에서 Glade 파일을 사용하는 데 필요한 대부분의 기능은 GtkBuilder와 gtk_builder _ *()로 시작하는 함수를 기반으로합니다. API 설명서는 https://developer.gnome.org/gtk3/stable/GtkBuilder.html입니다.
의 예 TEST.C 프로그램 : -
#include <gtk/gtk.h>
#define UI_FILE "test.ui"
#define WIDGET_WINDOW "a_window"
/* Callback for the buttons */
void on_button_clicked (GtkButton* button,
gpointer user_data)
{
gtk_main_quit();
}
int main(int argc, char *argv[])
{
GtkWidget *window;
GtkBuilder *builder;
/* Initialize gtk+*/
gtk_init (&argc, &argv);
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, UI_FILE, NULL);
window = GTK_WIDGET (gtk_builder_get_object (builder, WIDGET_WINDOW));
gtk_builder_connect_signals (builder, NULL);
gtk_widget_show (window);
gtk_main();
return 0;
}
해당 습지 파일 test.ui
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkWindow" id="a_window">
<property name="can_focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="vexpand">True</property>
<property name="label" translatable="yes">label</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">Close</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_button_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
그것은 프로젝트 디렉토리에 소스 코드를 저장합니다. 여기에 언급 된 바와 같이 "http://www.togaware.com/linux/survivor/Build_Source.html" –
프로젝트 디렉토리의 .c 파일 저장 또는 .glade 파일에서? –
.glad 파일은 항상 프로젝트 파일이므로 .c 파일이어야합니다. 도구 메뉴와 일반으로 이동하여 생성 된 코드에 대한 디렉토리 참조를 찾을 수 있는지 확인하십시오. –