GUIアプリを書きたい

  • 将来的にWindowsからLinuxにメインマシンを移行したいと思っているのだけれど、どのディストリビューションのファイルマネージャも気に入らない。で、俺ファイルマネージャを作りたいなと、LinuxGUIアプリ作成に何度も挑戦しては挫折して諦めてたりなんかする。
  • windowsアプリの作り方なんかはググれば山ほど出てくるけれど、LinuxGUIアプリの作り方というのはなんだか統一感がないというかスタンダードな作り方みたいなのが無いよね。。猫でもわかるシリーズとかないかしら。
  • それはまぁそれとして、今まで毎回挫折してる原因はそれっぽいソースを見てマネしてないせいかなということでubuntu標準で入ってるgeditを追っかけてみる。
  • geditというのはどうもwindowsでいうところのメモ帳みたいなものみたい。アプリケーション、アクセサリ、geditテキストエディタをクリックすると起動できる。
  • また、コマンドラインX Window上の端末)でgeditと打っても起動できる。
  • geditなのでgeditというパッケージなんだろうなということで
$ dpkg -l | grep gedit
ii  gedit
ii  gedit-common  
  • vimvim-commonのように二つのパッケージで構成されているようだ。
$ dpkg -L | grep gedit
$ dpkg -L | grep gedit-common
  • 次、標準で起動するとlocateが日本語で設定されているのでgeditのメニューも日本語である。これだと手がかりが見つけにくいので以下のようにして英語版で起動する
$ LANG=C
$ gedit
  • geditアプリケーションの各メニューが英語で表示される。
  • gedit-commonに含まれるファイルに(dpkg -L gedit-common)/usr/share/gedit-2/ui/gedit-search-dialog.uiというのがある。"ui"と"search-dialog"ということは検索ダイアログのテンプレートファイルではないかしらと当たりをつけてみる。
  • 英語メニューで起動したgeditで検索ダイアログを開くと入力ボックスのラベルが"Search for:"となっていた。gedit-search-dialog.uiでその文字列は・・・あった。
                 <object class="GtkLabel" id="search_label">
                    <property name="visible">True</property>
                    <property name="label" translatable="yes">_Search for: </property>
                    <property name="use_underline">True</property>
                    <property name="use_markup">False</property>
                    <property name="justify">GTK_JUSTIFY_LEFT</property>
                    <property name="wrap">False</property>
                    <property name="selectable">False</property>
                    <property name="xalign">0</property>
                    <property name="yalign">0.5</property>
                    <property name="xpad">0</property>
                    <property name="ypad">0</property>
                    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
                    <property name="width_chars">-1</property>
                    <property name="single_line_mode">False</property>
                    <property name="angle">0</property>
                  </object>
  • geditはGTKというのを使っているらしい(GUIツールキットらしい)
  • GladeというGUIのデザイナがあるらしい。(xmlっぽいのを生成する)