GTK+2.0で任意の文字列を表示するウィンドウを作成する

はじめに

こんにちは、野村です。

今回は、ほんのちょっとした小物の制作です。
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

ウィンドウが起動し、中央に文字列が表示されます。

ウィンドウ全体がボタンになっています。クリックすると終了。

終わりに

以上、任意の文字列を表示するウィンドウを作成してみました。

というわけで、今回はこれにて。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

野村 野村のプロフィール
メインPCはWindows10のVirtualBox上のFreeBSD。Linux/Unixの小ネタを求めて日々右往左往してたりする。