実践 Qt4 プログラミング - O'Reilly

O'Reilly 様から "実践 Qt4 プログラミング" をご献本頂きました。有難うございます!!初めての献本ということで小躍りしました。この本は入門書ではないので、今から Qt4 を触りたいという方は "入門 Qt4プログラミング - O'Reilly" もあります。

中身をどこまで書いていいのかわかりませんが (w、各章で Web アプリケーションクライアント、メディアプレイヤー、データ・モデルビュアー、エディタ等々幅広いデスクトップアプリについて解説されています。データ・モデルビュアーが厚めです。その各章にアプリケーションの作例 (25 ちょい) があり、丁寧にコードリーディングしていくことができます。サンプルコード量約 2 万行w 読み応え十二分です。Qt は (この本がカバーしてる Ver.4.6) 800 近いクラスからなっているので、そんなもんなんでしょうね。

クラスの API リファレンスは公式ドキュメントを読むとして、この本の素敵なところはコードリーディングをしていくうちに Qt4 の重要な機能を理解できることと、デスクトップアプリケーションを作る際に気を付けるべきことが勉強できることだと思いました。まさに実践向きですね。あと、プラットフォームごとの差異、非推奨の機能、デスクトップアプリを作成する際に注意すべきことが各所で紹介されています。これも嬉しいですね。クロスプラットフォームなデスクトップアプリにご興味がある方は必読だと思います。

>>> PySide/PyQt の参考書としては?

十分使えます。量バインディング共によく出来ていて、クラス名やプロパティはそのまま、c++ で書かれているロジックを Python に置き換えれば動きます。ただし、マクロは Python に書き換える必要があるのと、シグナル・スロットの書き方、各クラスが属しているモジュール (QtCore, QtCore.Qt, QtGui...) は調べる必要があります。

アプリケーションを起動する main 関数

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    app.setApplicationName(app.translate("main", "Application name"));
    ...

    FooWidget foo;
    foo.show();

    return app.exec();
}
import sys
from PySide import QtGui


if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    app.setApplicationName(app.tr('Application name'))
    ...

    foo = FooWidget()
    foo.show()

    app.exec_()
    sys.exit()

マクロ

#ifdef Q_WS_MAC
    // For mac
#endif
import sys


if sys.platform == 'darwin':
    # For mac

O'Reilly 様からお許しもらえたら、各アプリを PySide で解説させていただきたいです!

コメント

このブログの人気の投稿

Python から Win32 API 経由で印刷する

Disqus のスケール - Django 編

Django と Python 3 - #python_adv