非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

ChromebookにGtk+開発環境を構築し簡単なアプリを作ったのでメモ

   

ChromebookでLinux開発環境が利用できるようになり、以前よりも開発の幅が広がりました。今回は、GUIアプリケーション開発フレームワークであるGtk+をChromebookのLinux環境に導入し、簡単なアプリケーションを作成してみたので、その手順と作成例をメモとして残します。

尚、前提としてすでにLinux開発環境を有効しているものとします。

ChromebookにGtk+をインストール

ChromebookのLinux環境にGtk+をインストールする手順は、主にパッケージマネージャーを利用します。基本的なコマンドを用いて必要なライブラリや開発ツールを導入することで、Gtk+アプリケーションの開発が可能になります。

$ sudo apt update
$ sudo apt install libgtk-3-dev
 

 

簡単なプログラム例

Gtk+を使って以下のように簡単なプログラムを作りました。ウィンドウ内にラベルを貼ったものです。プログラムの内容はソースコード内のコメントを見て貰うとして今回はあくまで起動するまでの手順を示すものなのでソースコードの細かい解説は割愛します。これをtest.cというファイル名に保存します。

#include <gtk/gtk.h>

//gcc -o my_app test.c $(pkg-config --cflags --libs gtk+-3.0)

static void activate (GtkApplication* app, gpointer user_data) {
  GtkWidget *window;
  GtkWidget *label;

  GtkCssProvider *provider;
  GdkDisplay *display;
  GdkScreen *screen;

  // 新しいウィンドウを作成
  window = gtk_application_window_new (app);
  gtk_window_set_title (GTK_WINDOW (window), "Hello GTK+");
  gtk_window_set_default_size (GTK_WINDOW (window), 400, 300);

  // ラベルを作成
  label = gtk_label_new ("Hello, GTK+!");

  // CSSプロバイダを作成
  provider = gtk_css_provider_new ();
  // ラベルに適用するCSSスタイルをロード
  // ここでフォントサイズを大きくしています。
  gtk_css_provider_load_from_data (provider,
                                   "label { font-size: 30pt; }", // 30ptに設定
                                   -1, NULL);

  // デフォルトのディスプレイとスクリーンを取得
  display = gdk_display_get_default ();
  screen = gdk_display_get_default_screen (display);
  // プロバイダをスクリーンに追加
  gtk_style_context_add_provider_for_screen (screen,
                                             GTK_STYLE_PROVIDER (provider),
                                             GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);

    
  // ラベルをウィンドウに追加
  gtk_container_add (GTK_CONTAINER (window), label);
  // ウィンドウを表示
  gtk_widget_show_all (window);
}

int main (int argc, char **argv) {
  GtkApplication *app;
  int status;

  // GtkApplicationの新しいインスタンスを作成
  app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS);
  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+アプリケーションは、Linux環境でコンパイルし、実行することでChromebook上にGUIウィンドウとして表示されます。シンプルなコードでも、デスクトップアプリケーションとして機能する様子を確認できます。

コンパイル
$ gcc -o my_app test.c $(pkg-config --cflags --libs gtk+-3.0)
 
実行
$ ./my_app
 

 

実行するとご覧の通りウィンドウが起動しました。

 

 

まとめ

ChromebookのLinux環境を利用することで、Gtk+のようなGUI開発環境も手軽に構築できることが分かりました。Chromebook上でもデスクトップアプリケーション開発の学習や試作が行えるようになります。

ただ、本格的なアプリケーション開発ができるかというと微妙ですね。やはりLinuxがコンテナ上で動かしている点がやりにくさを感じます。本格的なアプリ開発は王道のMacBookか、ネイティブLinuxマシンの方が良いと思います。ちょっとした軽量なアプリやテスト、学習にはChromebookでも十分だと思います。

スポンサーリンク

 - Chromebook, Gtk