About
もうひとつの hiromasa.zone。-
Recent Comment
Kyodeki
Category
-
Random Post
WordPress
このブログで関連すると思われる他の投稿
-
マルチプラットフォームの GUI アプリケーション
SWT, import, JFace, eclipse, org, new, jface, ApplicationWindow, GUI, window, Linux, Windows, public, Java, swt, Eclipse, File, GTK, JFaceSample, MenuManager -
Python を使って twitter クライアントをつくってみる。
GUI, Python, GTK, クライアント, 言語, バルーン, Linux, PyGTK, Glade, Web, for, twitter, キット, ツール, プログラミング, ライブラリ, Twitter, イベント, スクリプト, 環境 -
MonoDevelop 2.0 beta 1 でてた
2.0, GTK, Mono, 動作, 9.04, Linux, MonoDevelop, Ubuntu, beta, そこ, コンパイル, 今回, 環境, 笑, 12, F-Spot, Framework, GNOME, Kylix, NET -
Ubuntu 9.10 のインストールと GNOME Shell
パッケージ, インストール, Ubuntu, アプリ, 画面, 9.10, Firefox, VMWare, ぼく, アップ, バージョン, 標準, 起動, 9.04, GNOME, NVIDIA, Notify, OSD, PulseAudio, シェル -
.NET Framework WordPress XMLRPC クライアントライブラリ SharpLab.WP-XML-RPCLib
Framework, Mono, 2.0, NET, WP-XML-RPCLib, ライブラリ, リリース, 2.7, WordPress, 8.10, API, SharpLab, WP, XMLRPC, tegaki, ぜひ, アルファ, 公開, 実装, 方



















Linux で GUI アプリケーションをつくる
自分で使っている OS でちょいアプリをつくれると何かと便利です。 この手のは多くはコマンドラインですむことが多いので、シェルとかスクリプト系の言語でぱらっとかいて終われますが(このへんの環境がそろっているのが UNIX のいいところ)、たまに GUI も使いたいときがあります。 たまのことなので、あんまり学習コストをかけたくないので、知ってるものをくみあわせて、、ってことで mono + C# + GTK でためしにやってみました。
mono というのは、Microsoft の .NET Freamwork のオープンソース実装です。
これをつかうと Linux 上で C# でアプリがかけます。 おまけに、Linux で標準的に使われている画面描画ライブラリの GTK とバインディングできるためきれいに、違和感なくウインドウが出せます。
Java でもいいんですけどね、、ちょっと Linux で JRE 設定するのフォントとか面倒なのでさけぎみです。
mono は JIT も持っているので、ネイティブコードでうごいてくれるみたいで、なかなかさくさく動きますね。 Linux で有名な、F-Spot という画像管理ソフトも mono でできているみたいです。
mono には Mono Develop という統合開発環境があります。 ためしにこれをいれてみました。
まるで Visual Studio ですが(VS のプロジェクトも読めます)、ベースは Sharp Develop のようです。 カーソルの動きが違ったり、キーアサインが違ったりしますが違和感はあまりなく操作できます。 (1.0 ではまだデバッグはできないようです。現在 2.0 アルファ中)
よーわからんかったですが、ソリューション作成しようとしたら面白いものを発見。
おー、Glide ともバインディングできるらしい。 Glide で XML で画面とイベント定義してそれを C# とバインディングして GTK アプリがつくれるようです。
Mono Develop 自体にも UI デザイナーついているのですが、Glide の場合は Glide インターフェースデザイナを使います。 まうすでぺたぺたコントロールはりつけて、XML を作成。
ここで、コントロールの名前とか、イベント名とかを定義します。
で、できたら C# でコーディング。 VB.NET とかもいけそうです。
GTK 系を using して、たとえばメンバに さっき Glide でつくったコントロールを定義します。
using System;using System.Xml;using Gtk;using Glade;using Yedda;{こんな感じ。 でもって、コンストラクタとかで Glide の XML を読み込みます。 GTK のお約束は、IDE がかいてくれます。
{gxml.Autoconnect (this);Autoconnect(this) が妙で、これで Glide のコントロール・イベントと C# をバンディングしてくれます。 ここで名前食い違うと間違うとぬるりするので注意のこと。
イベントハンドラは以下のように。
{buffer.Text = "TEST!!";各 GTK コントロールの操作の仕方は「のり」もしくはマニュアルで。。(笑) ちなみに、ためしていませんが System.Windows.Forms も動くようです。
で、実行。
お~うごいた~。
みえないとおもいますが、twitter にログインして XML もってきて表示しています。 よくみるとスクロールペインとかもちゃんど動いていますね。 また、C# の twitter ライブラリがそのまま動きました。
.NET のクラスライブラリの使い勝手がそのまま Linux でもつかえるので、.NET 知っている人には便利ですね~。 GTK も簡単に呼べるので、画面も GNOME 的なアプリが簡単につくれます。
あまり時間が無くておおくはさわっていませんが、何か不具合あっても知恵と勇気でのりきれるレベルの完成度と感じました。 UNIX でちょい GUI アプリつくりたいときには良いかもしれません。