kengo700のナレッジベース

誰かの役に立つと思う情報を発信するブログ

機械系の学生へ向けた GUI プログラミング概説

マウスで操作するタイプのプログラムを作りたいという学生に向けて、主な作成手段の概要を簡単に紹介します。

この記事の情報は正確ではなく、また不十分な部分がある可能性があります。私が使ってみたことがないものは載っていません。スマホ用のアプリおよびブラウザ上で動作するプログラムは含みません。また、これらの情報は数年で大きく変わる可能性があります。

適宜追記していきます。

はじめに

入門書や大学の講義でプログラムを勉強して、コマンドプロンプトに表示・入力するプログラムを作ってみて、コレジャナイ(いつも使っているソフトと違う)と感じた人は多いのではないでしょうか。

普段使うような、メニューやボタンをマウスでクリックするようなプログラムのインターフェースを、GUI (Graphical User Interface) と呼びます。GUI に対して、コマンドプロンプトなどで文字入力によって操作するものを CUI (Character User Interface) と呼びます。

GUI プログラムを作る方法は様々なものがあります。どの方法を選ぶかは、使えるプログラム言語、対象とする実行環境(OS)やインターフェースの好みなどで決まると思います。

このページでは GUIプログラムを作りたいという人のために、主な作成手段の概要を箇条書きでまとめます。

GUIプログラムの種類

MFC (Visual C++)

  • Windows で GUI プログラムを作成するために必要な機能をまとめたライブラリ
  • Visual Studio を使うと GUI のボタンの配置などをマウス操作で設定できるので、開発が楽

.NET (C#, C++/CLI, Visual Basic)

  • MFC を、より洗練させたもの
  • Java と同様に複数の OS に対応するが,その分 MFC より動作が遅い
  • 開発方法は MFC と同じように Visual Studio を使う
  • Microsoft が .NET のために開発した言語が C#

Swing (Java)

  • Java で GUI プログラムを書くときに一般的なライブラリ
  • 使い方は Java の入門書に書いてあるはず

glui (OpenGL)

  • OpenGL で利用可能な GUI ライブラリ
  • OpenGL が使えるならば簡単に GUI プログラムを作ることができる

Qt (C++)

  • GUI プログラムのためのライブラリ
  • 複数の OS に対応
  • Google Earth や Skype は Qt を使って作られているらしい

Visual Basic

  • Microsoft によって開発された,GUI プログラムのための言語
  • 初心者向け?
  • Microsoft Office でマクロを書くときに使う VBA (Visual Basic for Applications) のもとの言語

Win32 API (C言語)

  • Windows の基本ライブラリ
  • GUI プログラムを作れないことはないが、大変

調査中

情報をいただいたものなど。余裕があるときに、調べて試して理解できたら追記します。

  • Processing
  • JavaFX

結局どれを勉強すればいいのか

C# を使えるなら .NET、
C++ を使えるなら MFC、
Java で書くなら Swing、
Excelなどで動かすなら VB、
OpenGL を使えて見た目にこだわらなければ glui を、勉強すればいいと思います。

もちろん環境(OS)や目的によっても変わってきます。

参考資料

関連記事

kengo700.hatenablog.com

おわりに

もっとしっかりとした情報をまとめたページを、どなたか作っていただけませんか。