So-net無料ブログ作成

今度はQtを試そうかと・・ [NetWalker]

NetWalkerですが、いくつかソフトを入れていると勝手にQt4のライブラリが入ってしまいました。いくつかのアプリのインストールでQtを要求してくることがあったので、Ubuntu用のアプリはQtを利用しているものが結構あるような感じです。で、Gtk+。前回の通り、どうも面倒です。また、開発言語がCなので、慣れればスイスイ行くんだと思いますが、せっかくならC++を本格的に使ってみたいなぁとも思いますので、Gtk+はひとまず置いておいて、Qtでの開発を見てみようかと思います。興味がころころ移って、全く前に進まないんですが・・。

*

さて、Qtですが、いつの間にかノキアが開発主体に変わってますね。Trolltechは買収でもされたんでしょうか? それはさておき、現在の最新バージョンは4.6.1の様です。NetWalkerで使えるものがどのバージョンか分からないんですが、とりあえず、Synapticで関連ツールを探してみます。「qt」で絞ってみたところ、色々ありますね。Qt4に関係ありそうなのは下記の通り。どれが本当に必要なんでしょうねぇ・・。

パッケージ概要
qt4-doc-htmlQt4のAPIドキュメントのHTML版
qt4-docQt4のAPIドキュメントの new help format版。これはいらんかな・・。
at4-demosQt4の利用例とデモ。これは必要になったら入れるか・・?
qt4-designerGUIのデザインと作成のためのツールとか。
qt4-dev-tools-dbgQt4 development toolsのデバグ用シンボル(?)。ツールのデバグ用か?不要?
qt4-dev-tools開発支援用のツール郡とか。Qt Assistant、Linguist、D-Bus Viewer、Pixel Tool。
qt4-demos-dbgQt4の利用例及びデモのデバグシンボル。不要ですね。
qt4-qmakeqmake。そういえば、コンパイラとかは別ですかね・・。
libpackagekit-qt11DBusインタフェースを用いているソフトウェアパッケージの管理ツールPackageKitを利用するためのライブラリ? いるのかいらないのかがよくわかりません・・。
libpackagekit-qt2上記用のQt API?
libqt4-scriptQtアプリでスクリプトを利用できるようにするためのクラス(?) 既に入ってます。
libqt4-dbgQt4ライブラリのデバグ用シンボル。不要ですね。デバグ時には有用かな・・?
libqt4-testQtでユニットテストをするためのツールとか。どうしましょうかね・・。と思ったら、既に入ってます。
libqt4-webkit-dbgQt4のWebkit用のデバグシンボル。
libqt4-devQt4アプリのビルドに必要な開発ツールとヘッダ。
scim-bridge-client-qt4SCIMにアクセスするためのラッパーライブラリの様子。
libqt4-xmlpatterns-dbgQt用XMLパターンライブラリのデバグシンボルだそうです。いらないですね・・。
libqt4-opengl-devQtOpenGLライブラリを使用するアプリをビルドする際に必要なライブラリだそうです。NetWalkerにはOpenGLのチップなんて載ってないでしょうねぇ・・。
libqt4-scripttoolsQt Scriptと言うのを使っているアプリのための追加要素だそうです。Qt Script Debuggerが含まれているとか。
libqt4-helpQtHelpと言って、アプリケーションのオンラインドキュメントを作成するためのモジュールだとか。既にインストールされてます・・。
libqt4-designerQt Designerで独自のカスタムウィジェットプラグインの作成やQt Designerのコンポーネントへのアクセスを可能にするコンポーネントが入ってるとか。既にインストールされています。
libqt4-webkitWebKitにアクセスするためのライブラリの様です。これも既にインストールされています。
python-qt4-glPyQt4を使う時に必要な様ですね。私はPythonは知らないので、不要ですね・・。
libqt4-xmlpatternsXQuery、XPathエンジンのライブラリだとの事。既に入ってます。
libqt4-gui古いQt4がインストールされている場合のダミーパッケージだとか。不要ですね。
libqt4-xmlSAX、DOMのライブラリだとか。既にインストールされています。
libqt4-dev-dbgQt4の開発用ファイルのデバグ情報。いりません。
python-qt4-gl-dbgPyQt4のOpenGLに関するデバグインタプリター?不要。
libqt4-sqlQtアプリケーションにデータベースへのシームレスなアクセスを実現するらしいです。libqt4-devも必要だとの事。既にインストールされてますね・・。
libqt4-core古いQt4から移行する際に必要になるダミーモジュールだとの事。不要。
libqt4-networkTCP/IPを利用するクライアントやサーバを作成する際に必要になるとの事。既に入ってます。
libqt4-openglOpenGLを容易に利用するためのライブラリだとか。既に入ってますね。NetWalkerでOpenGLが利用されているんでしょうか・・?
libqt4-svgSVGファイルを表示するためのライブラリだとか。出力はできないんですかね・・。これも既に入っています。
libpoppler-qt4-3PDFのレンダリングライブラリPopperを使用するための共有ライブラリだとの事です。これは欲しそうな気がしますが、まだインストールされてませんね。
libqwtplot3d-qt4-devOpenGLで3Dのウィジェットなどを作成する時に必要な開発用ライブラリとか・・。
libqwtplot3d-qt4OpenGLで3Dのウィジェットなどを利用する際に必要なランタイムライブラリだとの事。
libpoppler-qt4-devQt4でPDFレンダリングライブラリPopplerを利用したアプリを開発する際に必要なライブラリ。
python-qt4-docPyQt4のPython-specificドキュメントだとの事。サンプルもあるみたいですね。
libqwt5-qt4-dev値、表、範囲の操作・表示を行うウィジェットを使ったアプリを開発する際に使えるライブラリQwtだとの事。
ibus-qt4ibusと言う Input methodのフレームワークのためのライブラリの様子。qt-immoduleと言うのが含まれているとか。
libqwt5-qt4値、表、範囲の操作・表示を行うウィジェットを操作するライブラリQwtを使ったアプリの実効に必要なランタイムライブラリだとのこと。
python-qwt3d-qt4QwtPlot3D C++のクラスをPythonから使うためのライブラリ?
kuiviewerQt Designerのデータファイル(.ui)を閲覧するためのツール。
libsoqt4-20SoQtと言うOpenInventorの互換GUIコンポーネントとか。ランタイムライブラリ?
libavahi-qt4-1Avahi Qt4 integration libraryだとか。よくわかりません。
libavahi-qt4-devAvahi Qt4 integration libraryの開発用ヘッダとか。
libqwt5-docQt4向けのQwtのドキュメントとソースサンプルが含まれているらしいです。
google-gadgets-qtGoogle GadgetのQtバージョンだとか。・・・これは、たぶん開発ツールとかじゃないですね。
libsoqt4-devSoQtの開発用ライブラリの様子。
apport-qtアプリのクラッシュ時にクラッシュレポートを取得するのを助けるソフとの様です。
python-avcウィジェットとアプリケーションで使ってる変数名(?)とを関連付けるためのツール??Python用ですかね・・。
pinentry-qt4PIN入力用のダイアログだとか。特にKDE向けの様子。
qdevelopQtのプロジェクトマネージャやソースコードエディタ、make等のビルドツールとGDBが含まれる様子。必須か?
libwvstreams4.4-qtWvStreamsとQtイベントの統合用ライブラリとか。
libcq-plugin-qtQtを使ったLicq用グラフィカルフロントエンドプラグイン(?)
strigi-clientStrigiと言うデスクトップ検索ソフトウェアのQt4クライアント(?)
dc-qtdcプロトコル用GUIフロントエンド。アプリか?
avida-qt-viewerauto-adaptive genetic system Avidaのグラフィックビューワとの事。
esvneSvnと言うSubvirsionクライアント。
libggadget-qt-1.0-devlibggadget-qt関連の開発用ファイルが入っているとの事。Qtでlibggadgetを使う時に必要とか。
python-qtextPyQt用の拡張。QScintillaと言うScintillaベースのソースコードエディタ?
libggadget-qt-1.0-0Qtで作ったGoogle Gadgetsを動かす際に必要なライブラリ。
qt-creatorQt開発用のIDE。
qtnxNXクライアント。X11のX圧縮プロトコルを用いたアプリケーションの様子。
qt-x11-free-dbgqt-x11-freeのデバグシンボル。
uim-qtQt 4.x immodule for uim
scim-bridge-client-qtインプットメソッドSCIMのラッパライブラリだとの事。
libdbus-qt-1-1c2アプリケーション間の通信を実現するD-BUSへのインタフェースとなる共有ライブラリだとの事。
ericQScintillaエディタウィジェットを用いてPyQtで書かれた、Python用IDEだとの事。
libqtjambi-javaQt Jambiと言うJava用のフレームワーク??
libqt4-sql-psqlQt4向けのPostgreSQLプラグイン。
libqt4-sql-mysqlQt4向けのMySQLプラグイン。既にインストールされています。って、MySQLを動かしてるつもりは無いんですが、誰か使ってんのか・・?
qtjambi-demoQt Jambiを用いたアプリケーションのサンプル。
libqt4-sql-odbcQt4向けのODBCプラグイン。ODBCはデータベースの一種との事。
libqt4-sql-sqliteQt4向けのSQLite3プラグイン。
libqt4-sql-sqlite2Qt4向けのSQLite2プラグイン。
qyoto-examplesCLI(.NET)アプリケーションでのQt4の利用を可能にするQyotoと言うバインディングのサンプルアプリケーション。
aroraWebkitベースのQtを用いたデモブラウザ。
python-qt4-commonpython-qt4とpython-qt4-devで用いられる共有ライブラリとか。既に入ってます。・・・なんで??
python-qt4-dbgPyQt4向けのデバグインタプリタ?
gimp2.0-quiteinsaneQtベースのGIMP2.0用SANEプラグイン(?)
libzlui-qt4ZLibraryと言うクロスプラットフォームなライブラリ?
automocメタオブジェクトコンパイラmoc。たぶん必須。
libpackagekit-qt-devアプリのインストール、アンインストールなどの管理を行うためのライブラリ(?)ヘッダファイルが入っている様子。
python-qt4-devQt4用のPythonバインディングを作成するためのSIPファイルのソースコードが含まれるとか・・。
libqca2-docSSL/TLS、X.509、SASL、OpenPGP、S/MIME CMSなどのQt Cryptographic Architectureを用いた開発をするためのドキュメント。
qstardictQstarDictと言うQt4を用いて作成されたStarDict互換の辞書アプリだとか。辞書ですね。入れてみようかな・・。
libqca2-devSSL/TLS、X.509、SASL、OpenPGP、S/MIME CMSなどのQt Cryptographic Architectureを用いた開発のためのライブラリ。
dares-qtダメージを受けたCDやDVDのディスクイメージなどからファイルを救出するツールDaresだとの事。
libqt4-ruby1.8Ruby/Qt4。サンプルプログラムなども含まれてるとの事。これも入れとこかな・・。結局これに逃げてしまいそうな予感・・。
libdbus-qt-1-devアプリ間の通信を実現するD-BUSへのインタフェースらしい。開発用ライブラリでしょうね。
avidemux-qtフリーのビデオ編集アプリ?
libqt4-ruby1.8-devRuby/Qt4の開発ファイルだとか。サンプルなども含まれる。
libqt4-ruby1.8-examplesRuby/Qt4のサンプルの様子。Ruby/Qt4関連は全て同じ説明になっているので、どれが本当かよくわからない・・。
scim-qtimmqt-immodule用のSCIMコンテクストプラグイン??
apportクラッシュレポートを自動で生成するユーティリティの様子。既に入ってます。何が使ってるんだか・・。
yabause-qtQt番のセガ・サターンのエミュレータだとか。動くのか・・?
libqscintilla2-designerQt Designer用のテキストエディタプラグインの様子。
telepathy-devel-qtQt版のTelepathy互換のチャット・IP電話アプリの様子。
pinentry-qtGnuPG向けのQtベースのPIN、パスフレーズ入力用ダイアログだとか・・。単独で動くんでしょうか・・?
wordtrans-qtこれもQtベースの辞書の様です。
gnunet-qt-dbgGNUnetと言うピアピア通信用のフレームワークの様子。セキュリティの提供にフォーカスしてるとか。
qca-tlsQt Cryptographic Architecture用のTLSプラグインとの事。
gnunet-qtQtを用いたGNUnetのクライアントアプリ。
libodbcinstq1c2QtベースのODBCドライバ用のライブラリ・・?
libsvnqt5Subversion関連のラッパライブラリだとのこと。RapidSvn SvnCpp ライブラリ(クライアント側のAPI)をベースにしてるとのこと。
language-selector-qt言語パックの切り替えとインストールを行うためのQtベースのフロントエンドだとか・・。
libqbanking5AqBankingライブラリのQtのフロントエンドだとか。
python-qtext-dbgPyQtのデバグ拡張だとのこと。QScintilla関連??
libqt-perlPerlでQtのライブラリを使うためのモジュールだとか。
esvn-docQt版SubversionクライアントのeSvnのドキュメント。
python-qt-devPyQtをビルドする際に必要になる「.SIP」ファイルらしい。
libqca2Qt Cryptographic Architecuterのライブラリとか。SSL/TLS、X509、SASL、OpenPGP、S/MIME CMSをサポートとか。
libqwtplot3d-docQt/OpenGLベースの3Dウィジェットを提供するライブラリQwtPlot3Dのドキュメントだとか。


以上、「qt」で引っかかったものだけですが、結構ありますね。まだ他にもあるんでしょうか・・。

OpenGL関連のライブラリが一部、既にインストールされている様ですが、これは、過去に3Dを利用するアプリケーションをインストールした時に勝手に入れられてしまった可能性があります・・。が、それらは非常に重くて使い物にならなかったため、少なくともOpenGLのハードはNetWalkerには含まれていないと思われます・・。3D関連はNetWalkerでは、利用する予定はないので不要ですね。

SoQtと言うのがありましたが、OpenInventorと言うGUIコンポーネントのライブラリだそうです。なんかグラフィック効果などで使えるんでしょうか・・?

また、各種データベース向けのライブラリが含まれていますが、どれがいいんでしょう。個人的にはSQLiteがよけいな設定が不要そうでいいかとは思ってるんですけどね。速度的にはどうなんでしょうね・・? Qtの奨励とかってあるんですかね・・。

ところで、今のところ「ランタイムライブラリ(runtime library)」と「共有ライブラリ(Shared Library)」の違いが分かっていません。これは普通に一般知識として調べる必要がありますね。そう言えば動的にライブラリを結合する方法なんかも調べないとだめですね・・。


以上、長い表になりましたが、この中から必要そうなのを選んでインストールすることにします。開発ツールとは関係のない単なるアプリケーションっぽいのもありましたが、まあ、後でどんなのがあったか確認するために表にしてるので、挙げておきました。


【参考】
Qt
Developer Zone - Qt
Online Reference Documentation - Qt

Gtk+でのペンの補足と描画 [NetWalker]

新年でちょっと間が空いてしまいましたが、昨年、NetWalkerのタッチパネルの現象が多少改善したので、俄然手書きメモのツールが欲しくなってきました。ファイラーを最初につくろうかとか言ってましたが、まず最初に手書きメモツールの作成を試みます。

早速、プロジェクトを作成して、とりあずウィンドウを表示させます。以前、体験したとおり、そのままではgladeのファイルが見つからないとかで、エラーが出てしまうので、「main.c」の「GLADE_FILE」の定義をフルパスに書き換えます。ここは、そのうち自動でインストールされているディレクトリを取得するように変更する必要があると思います。

ウィンドウが表示されるのを確認したので、とりあえず、ペンを追随するプログラムを書いて行きたいと思います。さて、何を貼ればいいんでしょうかね・・・?

*

「パレット」を眺めていたら、「描画領域」と言うアイテムがあります。なんか、これでよさげな気がするので、これを貼ってみました。

01_anjuta_drawarea1.png
見た目ではわかりませんでした・・


貼り付けた後、「プロパティ」を見てみると、「シグナル」タブにたくさんのシグナルが出てきました。右側の欄にハンドラの名称を書けば各シグナルの処理を書くことができそうです・・。各シグナルのリファレンスマニュアルって、どこにあるんでしょうね・・。

01_anjuta_signals.png
ほんとにこれが受けられるのか・・?


関係がありそうなのが、「button-press-event」、「button-release-event」・・・。マウス移動中のシグナルがよくわかりません・・。drag関連がそうなのか・・?

これらのシグナルはGtkWidgetと言うクラス(?)のもののようです・・・。う~ん、マウスの動作の補足と画面の描画に関するチュートリアルっぽいのは無いんですかね・・。ちょっと探してみたところ、学習の過程を公開してくれている方がいました。こちらによると、マウス移動中のイベントは「motion-notify-event」の様ですね。こちらもありました。

01_anjuta_motion-notify-event.png
ドラッグ中のみなのか??


先程「クラスか?」と書きましたが、そのような表記が見当たりません・・。とよく考えたら、そういえば、Gtk+の開発言語はCでした。クラスじゃないですね。

とりあえず、ハンドラの名前を登録しようと思ったら、プルダウンでデフォルトの名前が用意されています。

01_anjuta_default_handler.png
便利


せっかくなので、一番上の名前を選択。すると、次のようなエラーダイアログが出ました。

01_anjuta_handler_error.png
Glade GUI Designerの設定がおかしい?


なにやら、関連するエディタが無いとか・・。「描画領域」と言うオブジェクトにデザインツールが対応してない?? よくわかりませんが、言われたとおりに設定することにします。たぶん、後で何かを手動で書く必要が出てくるんでしょうかね・・。

01_anjuta_uidesigner_setting.png
仰せの通りに・・


設定後、ソースを見てみましたが、どこにも追加されている様子がありません。先程のページに「マウス関連のイベントは、 gladeでハンドラを追加しただけでは、これらのハンドラは起動しません。」と書かれています。このことを言ってるんでしょうか。そのページの方はmain 関数にコードを追加されていますが、ほんとは、さっきのエラーダイアログの内容を解消すれば、自動で入ってくれるんじゃないんですかね・・・?


どうしましょうかね・・。つづく。


【参考】
リファレンス - GNOME ドキュメントライブラリ
GTK+ Reference Manual - GNOME Documentation Library
シグナルハンドラの実装 ~直線の描画~ - GTK/GDK/gladeによるプログラム学習メモ

ブログを作る(無料) powered by So-netブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。