はじめに
こんにちは、野村です。
今回は、ほんのちょっとした小物の制作です。
C言語でGTK+2.0を利用したGUIプログラムです。
作るのは、任意の文字列を表示するウィンドウ。
実行コマンドに文字列を渡すとウィンドウが起動し、文字列が表示される。それだけ。
スクリプトをデバックするときなどに使えるかも。
準備
libgtk2.0-devが入ってなければインストールします(debianの場合)。
$ sudo apt install libgtk2.0-dev
インストールされたか一応確認します。
$ pkg-config --cflags gtk+-2.0
-pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2
ソース
main.c
#include <gtk/gtk.h>
static void cb_button_clicked(GtkWidget *button, gpointer user_data){
gtk_main_quit();
}
int main (int argc, char* argv[]) {
GtkWidget *window;
GtkWidget *button;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window,300,200);
button = gtk_button_new_with_label(argv[1]);
gtk_container_add(GTK_CONTAINER(window), button);
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(cb_button_clicked), NULL);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
ビルド
gcc main.c `pkg-config --cflags --libs gtk+-2.0`
使い方
実行するときは、第一引数に文字列を渡す
$ ./a.out aiueo
ウィンドウが起動し、中央に文字列が表示されます。
ウィンドウ全体がボタンになっています。クリックすると終了。
終わりに
以上、任意の文字列を表示するウィンドウを作成してみました。
というわけで、今回はこれにて。