X11   GTK3 プログラミング

ホーム


【お詫び】
GTK3 プログラミングする場合も GTK2 もインストールしなければならないと書いていましたが、 GTK3 プログラミングだけをする場合は、GTK2 をインストールする必要はありません。 ここに訂正して、お詫び申し上げます。

GTK3 のインストール

X11 用のプログラミングを始めます。

次のようにして、GTK3 の開発環境をインストールします。


// インストール
sudo yum install gtk2-devel // GTK2でもプログラミングする場合は必要です。
sudo yum install gtk3-devel
    

GTK3 だけでプログラミングする場合は、GTK2 はインストールしなくても大丈夫です。


コーディング

button.c というファイルを作り、次のように記述します。 ファイルの保存場所はどこでも構いませんが、私はホームディレクトリに gtk というディレクトリに作り、その中に保存しています。

button.c


#include <gtk/gtk.h>

int main(int argc, char *argv[])
{
  GtkWidget *window;
  GtkWidget *button;

  gtk_init(&argc, &argv);

  window = gtk_window_new(0);
  gtk_window_set_title(GTK_WINDOW(window), "Button");
  gtk_window_set_default_size(GTK_WINDOW(window), 400, 200);
  gtk_window_set_position(GTK_WINDOW(window), 1);
  gtk_container_set_border_width(GTK_CONTAINER(window), 15);

  button = gtk_button_new_with_label("Quit");
  gtk_widget_set_size_request(button, 100, 25);
  gtk_widget_set_halign(button, GTK_ALIGN_CENTER);
  gtk_widget_set_valign(button, GTK_ALIGN_CENTER);
  gtk_container_add(GTK_CONTAINER(window), button);


  g_signal_connect(G_OBJECT(button), "clicked",
		   G_CALLBACK(gtk_main_quit), NULL);
  g_signal_connect(G_OBJECT(button), "destroy",
		   G_CALLBACK(gtk_main_quit), NULL);
  gtk_widget_show_all(window);
  gtk_main();
  return 0;
}
	


コンパイル

コンパイルは次のようにします。


gcc button.c `pkg-config --cflags --libs gtk+-3.0` -o button

// ` は '(シングルクォーテーション)とは違います。US キーボードなら ~(チルダ)と同じキーです。
// JIS キーボードの場合は、@キーと同じキーです。
	

今回の場合、GTK3 の定数を使用していますので、 GTK3でコンパイルしなければなりません

実行

次のようにコマンドして実行します。


./button & X -retro
    

-retro オプションをつけておかないと、マウスポインターが見えにくくなります。

うまく表示されない場合などは、とりあえず CentOS Minimal を再起動してみてください。 結構直るみたいです。


実行結果

X11 ではウィンドウのフレーム(タイトルバーやリサイズボックス) は表示されないみたいです。


終了

button アプリケーションの Quit ボタンをクリックすると、button アプリケーションは終了します。X11 を終了するには次のようにします。


Ctrl + Alt + F1
Ctrl + C
    
  1. Ctrl + Alt + F1 で、X11 の画面が閉じます。 起動したコンソールの番号によって、F1、F2、F3 と変えていきますが、ここでは 1つのコンソールしか使わないことを前提としていますので、F1 で大丈夫です。 というか複数のコンソールを開く方法が分からないです。
  2. Ctrl + Alt + F1 では、X11 の画面が閉じただけです。X11 のタスクは起動したままです。 Ctrl + C とすることによって、X11 は完全に終了します。


補足

button 実行ファイルをルートディレクトリの /bin ディレクトリに入れると、 button & X -retro だけで起動できるようになります。しかし、/bin ディレクトリにどんな名前の実行ファイルがあるかはっきりしない場合は、 うっかりと上書きしてしまう場合がありますので、あまりおすすめしません。




29394 visits
Posted: Jul. 09, 2021
Update: Aug. 02, 2021

ホーム   目次