スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

タコでもできるGladeでGTKのGUIデザイン

こちらはたわごとのかおりんさんのご指導のもとに。
みくんちゅ♪のセットアップヘルパ的なものをGUIアプリとして作るのが最終目標。あくまで目標・・・

PythonのGUIアプリになる予定で、結局裏で動くのは基本的には【Project】まとめて導入のための第一歩。ひたすらコマンドに書き起こす作業記録【Mikunchu♪】【Project】まとめて導入スクリプト超テスト版【Mikunchu♪】と同じような感じ。
ま、どこまで機能拡張、オプションの充実を図れるかが問題ではあったりするんですが。

まぁ、今回はGUIの基本デザイン。
Gladeなるアプリを使うのでこれをインストール。
$ sudo apt-get install glade
で、これがアプリケーション>プログラミング>Glade3って出るので、起動。
Screenshot-編集中のプロジェクト 2こんな感じ。
なにがなんだかわかりません。

Gladeを起動して、トップレベルウィンドウのスタイルを決めます。

今回は、いわゆるダイアログ形式、OKボタン、キャンセルボタンがついてる形式で問題ないと思われるので、トップレベルはそれにしてしまいましょう。


とのこと。よくわかりませんが、あなたの言いなり、tminなので。
左側のメニューのとこから「トップレベル」の枠、ここで「ダイアログ・ボックス」というのを選択。
Screenshot-*編集中のプロジェクト 2なんか出てきました。
これがどうやら基本形になる模様。
で、空欄になってるとこ、ここにボタンやらメニューやらを埋め込んでいくらしい。

デフォルトのままでもいいちゃいいんですが、せっかくだから、プログラムするときに解り易い名前にしといた方が後でラクなので、付けときましょう。

「名前」の欄に「TopLevel」、「ウィンドウのタイトル」に「みくんちゅ♪セットアップヘルパ」と入れておきましょう。

ちょっと専門用語を使うと、このTopLevelが、このウィンドウオブジェクトの名称となります。

後で触れていきますが、Pythonのプログラムからアクセスする場合に、この名前でアクセスすることになるので、なんなのか解り易い名前にしとくとよいと思います。


とのことなので、これはこれで、左上の方、dialogとかでてるとこにそのように名前を入れていこう。

で、下の方の2つ開いている空欄、これはOKとCancelなり、適用と中止なり、そんな感じのボタン。
左側のコントロールと表示のエリアから、「標準ボタン」を選択。
そして、右側の余白部分をクリックすると、そこにボタンが出来上がります。

出来上がったボタンを選択し、右側のプロパティ表示の領域から、「ボタンの中身を設定する」の部分でストックボタンのラジオボタンを選択します。

そうすると、ストックボタン(標準でGNOMEに用意されているボタン)が選択できるようになりますので、ずっと上の方にあるOKボタンを選択しましょう。

もちろん、用途によっては、他のストックボタンを使用するしようすることも可能です。


ふむ。だんだんビミョーにGladeなるものの感じが理解できてきました。
左側でGUIの形っつーか、そういうものを選択して、追加していく。
右側でそのボタンなり、メニューなりの中身っつーか、役目っつーか、内容っつーか、そういうものを指定していくようです。たぶん。
ちなみにこれ、保存したあとで変更することも当然可能なので、この段階で多少ミスってたり、抜けてたりしてもまぁ、大丈夫みたい。ま、そのときになって原因探すのに苦労はするかもしれないけれども。

じゃあ、大きい空欄。

ここでGTK特有のコンテナというものを使います。

これは、先程のボタンオブジェクトのようなウィジェット(コントロールをGTKではウィジェットと呼びます)を格納するための入れ物で、水平ボックスと垂直ボックスの2種類があります。

※他にもありますが、基本がこの二つ、というだけです。


ふむ。
というわけで、このアプリはまぁ、日本語セットアップヘルパみたいに「入れたいものにチェック入れてって、選択したのを一気にDL&インストール」したいがためのアプリなので、メニューが縦に並ぶ垂直ボックスを使ってみよう。
Screenshot-GtkVBox の生成で、選択するとこんなものがでるわけだが。
これ、メニューの数。なんだけど。
今の段階でそんなものキッチリ決まっているわけがないので、適当に作りながら増やしたり減らしたりしていけばいいだろうと。

Screenshot-*編集中のプロジェクト 2-3で、とりあえず5個。
それぞれの枠に、これまた左側の「コントロールと表示」のところから目的に合いそうなボタンなり、メニューの形を選んでいくわけね。
これは上からボタン、ボタン、チェックボタン、スピンボタン、チェックボタン、となっているけど、当然他にもいくつもあるし、このひとつのボックスをさらに左右で二つに分けることなんかもできるようです。
つまり、凝ろうと思えばいくらでもオプションメニューを追加したりなんてこともできそうな感じですね。
ま、とりあえず「チェックしたものをDL&インストール」が目的なので、チェックボタンにして、今までの成果物の数々(俺が作ったのほとんどねぇけどなw)を見ながら、ライセンス的に、そして適用操作的にいくつかラクそうなのを選んでいきます(ぉ
Screenshot-*編集中のプロジェクト 4このように。
チェックボタン入れて、そこに名前と簡単な説明を左下の「プロパティ」ってとこから選択・編集していきます。

で、これは俺最初抜けてたんだけど、右上のとこでそれぞれのボックスに名前を割り振っておく。
Screenshot-mikunchu.pngで、こんな感じに。
おそらく後にプログラム本体からGUIのどこどこを指定・参照するときにこの名前が必要なんでしょう。たぶん。

なんだかちょっと様になってきました。

というわけで、完成したGUIを保存しましょう。

予めNetBeansでプロジェクトを作っておいたのは、実はこの時のためだったのです。

作成したNetBeansプロジェクトsrcフォルダに、このGUIのファイルを保存します。

名前は、mikunchu.uiとしときましょうか。


なるほどそういうことか!
というわけで、前回NetBeansを先にチラッと動かしたのはこのためだったようでございます。
ファイル>別名で保存からこのNetBeansProjectsの中に作ってた該当フォルダ、今回はProjectMikunchu/srcにmikunchu.uiとして保存。
これで、次に起動したときこのファイルを呼び出せば続きから始められます。

とりあえずもういっぱいいっぱいなので今回はココまで(笑

関連記事
UbuntuでPython開発環境のためのNetBeans&JDK導入
【Project】まとめて導入のための第一歩。ひたすらコマンドに書き起こす作業記録【Mikunchu♪】
【Project】まとめて導入スクリプト超テスト版【Mikunchu♪】
VistaにPythonとNetBeansとGlade入れてPython開発環境を
おっさんでもできてるPython
【Project】セットアップヘルパ超テスト版&一括導入スクリプトちょっとFix【Mikunchu♪】
gedit超強化。TextMate化?
関連記事
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

734:No title
tminさんがGTKをやるとは予想外でした.
ちょうど自分も,C++とGTKmm(GTK+のC++用ライブラリ)でアプリケーションを開発しようと目論んでいたところなので,ある意味タイムリーです(^^)

GTK+はQtとくらべて日本語の書籍が少ないことがネックですね.
自分が知る限り,ここ数年で販売されたGTK+関係の解説書は『入門 GTK+(菅谷 保之・著)』だけですorz
これにしても本当のGTK+(つまりC言語で使用するGTK+)についてかいてあるだけで,他の言語におけるバインディングの資料は,ネットで探すしかないのが現状です.

GTK+の不人気は,日本では,Windows専用ソフトウェアの開発はそれなりに行われているものの,LinuxやMacのソフトを作ろうとする人が少ないのが原因かもしれません.
Windows専用ソフトを開発するだけなら,VisualStudioに代表される便利な総合開発環境がすでにありますしね……(・ω・)

どうしても資料の無さが不便になったならば,Javaを使うのも手段の一つかなぁ,なんて考えます(^^;)  (Javaは動作が遅いのですが)


GTK+関係のおすすめサイトとしては,
http://www.iim.ics.tut.ac.jp/~sugaya/wiki/wiki/index.php?GTK%2FGNOME%A4%CB%A4%E8%A4%EBGUI%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0

http://larse-gtk.hp.infoseek.co.jp/gtk.html

などです.
アプリケーション開発は,なかなか形のあるものができてこないものですが,
お互いにがんばりましょう!
736:No title
GTKとQtの違いすらいまいちよく分からないまま、導かれるままなんですけどね。
なるほど、ご紹介ありがとうございます。

プログラミング系の書籍って、結構「入門」ってついてても、いきなり内容が高度になる瞬間があって、なかなか進めないものなんですよね・・・

やはり日本ではLinux、知名度からして低いのかなぁ?確かにフォーラムなんかも圧倒的に情報量が違うように思いますし。

どうも、色々なリンクのご紹介ありがとうございます。

そうですね。なかなか難しいですが(完全なる初心者なものでw
とりあえず、ちゃんとGUIにできるのか全く分からないですが(ぉ
とりあえず行けるとこまで行ってみまっす!
へちまさんも頑張ってくださいねー。
737:No title
>プログラミング系の書籍って、結構「入門」ってついてても、いきなり内容が高度になる瞬間があって、なかなか進めないものなんですよね・・・
これは,私もよく感じます。
そもそも「GUIアプリケーションを作成する」ということ自体がプログラミングとして,やや敷居が高いので,”入門”の範囲からは外れてしまうのかもしれません。
(VisualBasicやHSPのような例外もありますが)

Pythonは比較的わかりやすい言語であるとはいえ,オブジェクト指向ですし,GUIのサポートしっかりしているとは言い難いです。
そのため,いきなりGUIを作ろうとするよりも,言語の構文の理解などの基本的なことから段階的にゆっくりやっていった方が,混乱しないでいいかもしれません。

一つの案としてですが,具体的には,
1,Python文法の習得。
2,オブジェクト指向という概念や設計技法の理解。
3,GTK+やQtなどによるGUIツール作成。
といった順番で習得していくというやり方もあります。
上にあげた三つは,それ一つだけでも一冊の本になってしまうほど濃い内容なので,やはりいきなりすべてを理解するのは難しいと思います。

プログラミングは,何か一つでも言語をしっかりと理解しておけば,他の言語(たとえオブジェクト指向以外に分類される言語であっても)でも応用がきく場合が多いので,最初は苦しくとも見返りが大きいとおもいます。
プログラミング特有の考え方(ループや関数など)に,ある程度慣れるまでは難しく感じると思いますが,慣れてしまえば楽しくなると思います。

今,私は上にあげた「2,」のところです。
(今まで主に使ってきた言語は手続き型言語(VisualBasic6.0とC言語)だったのでオブジェクト指向がよくわかっていないのです)
tminさんも頑張ってください。
738:
なるほど、やはりいきなりGUIアプリというのは無茶だった・・・のかな?

実はたわごとのかおりんさんのご指導の元じわじわと進めているんです。
おっさんにも解るPython
http://op-py.blogspot.com/

ま、今回の場合は目的がかなりはっきりしているので、ある意味やりやすいとは思うんですが、なにぶんほぼ初めてなもので、用語とかが分からなかったり、そもそもなんのことを行っているのか分からないという場合が多々あるのですがw
でも、質問できて、答えてくれる人がいるという状況はかなりありがたいですね。
今、やっと基本の基本なところのイメージが分かりかけてきた感じでして。

そういえば、今まででいくつかPythonアプリで結構シンプルなのを触ったことがあるなぁ、などと、思い出したもののソースコードを見て、「ここをこう変えれば今回の目的に近いものができるかも?」とか、かなりいい加減な勉強(?)中ですねー。
短いスクリプトでも書けるように、もしくは既存のアプリを参考に書き換えたり、置き換えたりできるようになってこれば、ちょっと楽しくなりそうな予感ですね。(実は、HTMLもそんな感じのコピペやら書き換えやらを独学&適当にやっていたりなど・・・

ま、ボチボチとやっていく予定です。お互いに頑張りましょうねー。
753:No title
付いてきたまえ。w
754:No title
えぇ。Xが吹っ飛んでます。Marverick・・・
そうだVistaで同じことをしよう!!
755:No title
まあ、他人の学習方法について、難癖つけても仕方ないけど、先に挙げられた例を元にコメントすると以下の感じ。
1,「最低限の」Python文法の習得。
2,オブジェクト指向という概念や設計技法の理解は不要。
3,GTK+やQtなどによるGUIツール作成。
4, とにかくいじり倒す
が手っ取り早いと思いますがね。

いちいち、理屈やら設計技法やら学んでたら「飽きます」よ。(笑)
760:No title
現場主義っすね。
しかし確かに入門の本読んでサンプルを真似ていくよりも、目的があってその目的のために触る、から入ったほうが覚えやすい(覚えざるを得ない)かも。

コメントの投稿

管理者にだけ表示を許可する
ブログ内検索

カスタム検索

フリーエリア

クリックで救える命がある。

レンタルサーバー

さくらのマネージドサーバ
さくらインターネットのVPS
ConoHaのVPS
WebARENA VPSクラウド
99円レンタルサーバー
【CloudCore VPS】
GMOクラウドのレンタルサーバー
転送量無制限 ABLENET
@WAPPYレンタルサーバー
SPPDレンタルサーバー

カテゴリー+月別アーカイブ

 

アクセスカウンター

現在の閲覧者数:

プロフィール

Author:tmin
PCヲタ。ライト2ちゃんねら。
スロット好きのギャンブラー。(元
むしろ人生がギャンブルだが目下のところ負けっぱなし。
座右の銘は「結果オーライ」。故に基本適当。
トラブルもまた楽しみのひとつ

コメント、トラバ、相互リンク歓迎。お気軽にどうぞ。
当ブログについて
Twitterでこっちとあっちの更新情報流すことにしてみます。
http://twitter.com/t_min
Project Mikunchu♪Wikiできました。
Mikunchu200x40.png


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。