[Qt-users:475] Re: Qt5を日本語で学びたい

Kenji Sugita kenji @ j04.itscom.net
2015年 11月 8日 (日) 15:07:55 JST


> 2015/11/02 23:08、Takanori Murahashi <reah.at @ gmail.com> のメール:
> 
> はじめまして。村橋と申します。
> 
> GUIのツールをサクッと作ってみたいと思い、Qtを学ぼうと思ったのですが、
> 恥ずかしながら英語が苦手なため(チュートリアルも英語ですし)ハードルを感じています。
> (可能な限り日本語で学びたいと思っています)
> 
> 日本語の書籍はいくつか出ているものの、どれもQt4のものだったり、Qt Quickのものであったりします。
> 新しくQt5でQtを始めるにあたり、Qt4のものを購入しても問題ないのでしょうか。
> (Qt4 - Qt5間でそれなりの互換性はあると聞きますが、どの程度の違いがあるのか分かっていないので不安です)

違いについての資料です。

    Porting Guide | Qt 5.5
    http://doc.qt.io/qt-5/portingguide.html

    Porting C++ Applications to Qt 5
    http://doc.qt.io/qt-5/portingcppapp.html

    C++ API changes
    http://doc.qt.io/qt-5/sourcebreaks.html

    Porting from Qt 4 to Qt 5
    http://www.kdab.com/porting-from-qt-4-to-qt-5/

    Automated porting from Qt 4 to Qt 5
    http://www.kdab.com/automated-porting-from-qt-4-to-qt-5/


入門 Qt 4 プログラミングでの違いです。

    .pro への追加
        greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

    .cpp への追加
        #include <QtGui>
        #if QT_VERSION >= 0x050000
        #include <QtWidgets>

ほとんどは上記修正で Qt 5 でもコンパイルして動かせます。さらに修正が必要なのは
以降の通りです。

    chap05/iconeditorplugin、chap19
        プラグイン API 変更に対する修正が必要。

    chap05/plotter
        QPixmap::fill(QWidget*, x, y) が非推奨となるだけでなく、
        正しく動かなくなっている (ゴミが一面に表示される) ので修正が必要。

    chap06/splitter
        QTextCodec::setCodecForCStrings() が削除されたことへの修正。

    chap06/mdieditor
        QWorkspace が削除されたので MDI で書き換える必要がある。英語版の第二版では
        書き換えてある。

    chap08/tetrahedron
        GLUT/glut.h または GL/glu.h をインクルード、GLU をリンクするように修正
        する必要がある。
        Qt 5 の途中で OpenGL は API が大きく変わっていて古いままでもまだ動くが、
        新しい API に書き換えた方がよい。

    chap10/citieschap、currencies、regexpparser
        モデルの reset() が削除されたことへの修正が必要。

    chap10/directoryviewer
        setClickable() を setSectionsClickable() に変更。

    chap10/settingsviewer
        setResizeMode() を setSectionResizeMode() に変更。

    chap12/imageconverter、chap18/imagepro
        QDir::convertSeparators() を QDir::toNativeSeparators() に変更。

    chap14/ftpget、httpget、spider
        QFtp と QHttp が削除されたので Qt 5 用の QFtp と QHttp を別にインストール
        するか QNetworkAccessManager で書き換える。

    chap14/tripserver
        incomingConnection() の引数の型が int から qintptr に変更。32 ビットでは
        変更しなくても動作するが 64 ビットでは動作しなくなる。



Qt-users メーリングリストの案内