私は最近、gnomeのWebサイト(下の最初のリンク)のチュートリアルに従って、GTK +(3)でGUIアプリケーションを作成する方法を学び始めました。GTKアプリケーションを書くための好ましい方法は何ですか?
私は最初の数組のチュートリアルを開始し、すべてがうまくいっていました。私はそれが望んでいたよう
#include <gtk/gtk.h>
static void activate (GtkApplication* app, gpointer user_data){
GtkWidget *window;
GtkWidget *button_box;
GtkWidget *button;
window = gtk_application_window_new (app);
gtk_window_set_title (GTK_WINDOW (window), "First application");
gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);
button_box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
gtk_container_add(GTK_CONTAINER(window), button_box);
button = gtk_button_new_with_label("Click this!");
g_signal_connect_swapped(button, "clicked", G_CALLBACK(g_print), "Hello, world!\n");
g_signal_connect_swapped(button, "clicked", G_CALLBACK(gtk_widget_destroy), window);
gtk_container_add(GTK_CONTAINER(button_box), button);
gtk_widget_show_all (window);
}
int main(int argc, char *argv[]){
GtkApplication *app;
int status;
app = gtk_application_new ("com.example.application", G_APPLICATION_FLAGS_NONE);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
return status;
}
すべてが正確に働いていた:ここで私が書いた初期のコードの一部です。その後、彼らはGtk Builderを導入しました。私はそれが本当にきれいだと思ったので、それを使ってアプリケーションを作成しました。
しかし突然、彼らはこれまでに書いたことのないようなものではないようなコードを書き始めました(下の2番目のリンク)。だから、私はかなり混乱して、他のソースからGTKアプリケーションをどのように書いているかを調べるために、いくつかのコードを調べることに決めました。 gtk_init()
、gtk_main()
、gtk_window_new(GTK_WINDOW_TOPLEVEL)
のようなものを使って見ました。以前に投稿したコードのようには見えませんでした。
私が現在理解しているように、GtkApplication
またはgtk_init()
のいずれかを使用して、GTKアプリケーションを作成する方法は複数あります。それらの1つは時代遅れで、もはや好まれていないのですか?もしそうなら、どちらが優先されるべきか、または優先されるべきですか?
私は公式のGtkチュートリアルで見つかった二つの方法にいくつかのリンク:
GtkApplicationをGtkBuilderと組み合わせて使用するにはどうすればよいですか? – Zyphicx
これは同じページに記述されています:GtkBuilderのuiファイルを作成し、オプションで、アプリケーションの配布を簡潔にするGResourceファイルを作成し、リソースをコンパイルし、gtk_widget_class_set_from_templateを呼び出して、リソース。これは、[「ウィンドウを生成する」](https://developer.gnome.org/gtk3/stable/ch01s04.html#id-1.2.3.12。)セクションで説明されています。 – liberforce