Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@fuji_midi

gtk+3.0を使ってウインドウを出してみた#1

More than 1 year has passed since last update.

前置き

こんにちは。
今回は、GTK+3.0(C)を使ってUbuntuでウインドウを作ってみようと思います。
(本当はメモ程度です)

使用する環境は
・Ubuntu 19.04 aarch64/arm64 (host: Android 9)
・geany 1.34.1, GTK 3.24.5, gcc 8.3.0
です。

本題

開発環境のインストール

Geanyはエディターです、libgtk-3-devは今回のメインのライブラリで、build-essentialはビルドに使うものが詰まってるパッケージです。(今回使うのはgccコマンド)

$ sudo apt install geany libgtk-3-dev build-essential
...

最初のウインドウを作る

最初に、すっからかんなウインドウを作ります。

#include <gtk/gtk.h> //gtkのライブラリを読み込む

int main(int argc, char **argv) {
  GtkWidget *window; //GtkWidget(int?)にwindowを設置する

  gtk_init(&argc,&argv); //処理の初期化

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //さっき設置した「window」にGTKのウインドウの処理を追加する
  gtk_window_set_title(GTK_WINDOW(window), "GTK+3.0 App"); //「window」に対して、タイトルを設定する
  gtk_widget_set_size_request(window, 480, 240);  //「window」に対して、サイズを設定する

  g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); //バツボタンが押されたとき、そのプロセスも落とす処理
  gtk_widget_show_all(window); //「window」に対して、全部のウィジェットを表示する

  gtk_main(); //ウインドウの表示
  return 0;
}

このコードが書き終わったら、ビルドします。

$ gcc `pkg-config --cflags gtk+-3.0` -o out app.c `pkg-config --libs gtk+-3.0`

そして、実行します。

$ ./out

スクリーンショット_2020-02-14_09-22-09.png

ちゃんと実行できてる証拠です。

終わりに

実はこの記事を書いたのはCを始めて一日目で書いたものなので、ところどころおかしいところがあるかもしれません、すみません。
GTK系の記事をちょっとずつ書いていこうかなと思っています。
あと、更新頻度は低いと思います
今回はここまでにします、お疲れさまでした。

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
fuji_midi
初心者なのに色々な言語に触れて爆発してる人です

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?