Qt

提供: yonewiki
移動: 案内, 検索

概要

 C++のオープンソースGUIライブラリで管理人が最も信頼を寄せるライブラリ群です。Qtライブラリを使うというのはしないんですけれども、ライブラリの作り方を見ると、あー、こうやってWindowsを操るのか!とGUIプログラミングのやり方を教えてくれる存在です。スプレッドシートも各種コントロールもフォントも、ツリーもハイパーテキストビューもメンテナンス性の高いやり方を知ることができます。使いやすさ。デザインのしやすさ。大事ですね。


 Qt Creater(VisualStudioをインストールした環境でVCコンパイラを利用します。MinGWもいれれば、GCC版を使うこともできます。UWPでユニバーサルWindowsプログラミングもできます。Androidの開発、Linux Unix、iOSとクロスプラットフォーム対応もすすんでいて、あらゆる人気のOSに対応したライブラリをメンテナンスするパワーがあれば、Javaや.NetFrameworkというこざかしいことは必要ない。そんな感じのことを実現していると思います。)でQtライブラリに頼り切ったアプリケーション開発(Qt Quickと呼んでいるみたいです。)もできますが、お遊び程度で楽しんでます。ものすごい、すばやくWinアプリを構築できてGUIも思いのままという感じです。C++というよりはCSS程度の記述とJavaScript程度の合わせ技で、Win32アプリをあやつるという特殊なことになってしまっています。ライブラリがすごすぎて、もう複雑なプログラミングを必要としない領域まで来てますよね。もちろんVisualStudio側からQtライブラリを呼び出してC++言語で操ることもできます。あるいはOpenソースなので、中身をみて、勉強して、独自のソースコードにしていくことも可能です。


 頼り切ってしまうと、C++を使っている意味がなくなるので、自分で確かめながら動かしたいという自分みたいな暇人には向かないシステムです(通常の人は暇が少ないので、非常に効率もよく、超高速開発ができると思います)。もともとはTrollTechさん→ノキアさん→ディジアさん→Qt Project(The Qt Company)さんが買収をして、運営しているのかな。商用利用する場合は有償版を買わないとダメです。実績はすごいです。Skype もGoogleMapもQtで出来ていると言われています。


 ライブラリをインストールすると30GByteくらい容量を使います。持ち運ばないノートPCの方にいれていますのでリモートデスクトップでつないで、自宅でいろいろ活用してます。助かる。Qt4くらいの参考書はいっぱい出回ってますが、今(2018-11時点)はVersionが5.11.2くらいなのでQt5ですね。Qt5対応の参考書もちらほらみかけます。


Qt VS Tools 導入

 Visual Studio 2015 あるいはVisual Studio 2017にAdd-inとしてQtを導入するという方法があります。Debugすると固まることがよくあるので、使いにくいのが、管理人の現在地です。導入自体は、ググって出てくる古い記事よりは便利になっているみたいです。

  • 手順
 1.Qtをインストールする。現状は5.11.2ですね。30GBくらい必要です。


 2.MinGWをインストールする最小構成でいいです200MByteくらいかな?MinGWインストールツールでBasicSetUpの項目あるやつを全部いれたら十分っすね。たぶん、いっちゃん上のとg++だけでいいんでしょうけど。それ以前からMinGWを使っていて古いMinGWとかならはまるかもしれないですね。管理人はMinGWは、Qtを使うために、はじめてインストールしました。


 3.Visual Studioから[ツール]-[拡張機能と更新プログラム]を選択して、オンラインの項目に合わせます。すんごいいっぱい拡張機能が提供されているので、検索の欄に"Qt"といれるとかなり絞られます。そこから Qt Visual Studio Toolsを選択して、インストールボタンを押します。インストールがおわったらDialogを閉じます。Visual Studioを再起動します。すると、Visual Studioに2つほどの大きな変化が起こります。1つは、メニューにQt VS Toolsという項目が出来ること。2つはプロジェクトの新規作成のVisual C++のテストの項目の中にQt関係のプロジェクトを作成するための5つくらいの項目が増えるということです。まだ、この時点では新規作成とかをすると固まります。


 4.あたらしく出来たメニュー[Qt VS Tools]-[Qt Options]を選択してVersionsタブを選択した状態でAddを押します。名前は任意なので好きなものを付けてくれたらいいんですけど5.11.2という現在利用中のQtのバージョンとVSのバージョンとWin64orWin32くらいの情報を含めて、例えばですよ「VS2017Win64_5.11.2」とかって名前を付けるのがいいんじゃないかと思います。プロジェクト作成中にこの名前を再度使ったりすることはないので、多少長くても問題は起こらないと思います。いくつか作れますが自分みたいにQtをインストールしたときに30GByteくらいのひとつのバージョンに対する最大構成くらいのインストールをしていないと、いくつものプロジェクト構成を立ち上げてのQtプロジェクト開発は出来ないと思います。自分は欲張りではないので、VS2015にVS2015のWin64とVS2017にVS2017のWin64をひとつづつ設定しました。え、VS2015とVS2017を同じPCに入れてるだけで十分欲張り?そうかもしれない。で、パスにはC:\Qt5.11.2\msvsc2017_64フォルダを選択して入力します。Qtのデフォルトインストールパスならの例です。それぞれの環境に合わせてフォルダは選択する必要があります。Visual Studio2017でWin64環境の開発をするなら2017_64だしWin32開発をするならmsvsc2017_32を選ぶといいんじゃないかな?


 これでQtをVisual Studioで使えるようになったと思っていいと思います。試しに新規プロジェクト作成で、Visual C++のテストの項目の中から、Qt GUI Applicationを選択して、次へ次へでプロジェクト新規作成ダイアログを進めて、ビルドして、デバッグ無しで実行とかはスムーズに出来るようになったと思います。デバッグとかを動かすと固まることがあるのは管理人だけかもしれません。デバッグしにくい…。かたまるの怖い。素直にQt Creater使っとけって言われそう。まぁまぁ。安定してデバッグできるような環境になったら、また報告しますよ。あとはQtの参考書でも読みながら、Qtライブラリを活用した開発を好き勝手にやって下さい。管理人は、Qtライブラリを使った開発をやってソースコードを追うという作業を楽しみます。頭のいい人たちのライブラリ作成手法を勉強します。Qt DesignerとかあるからリソースエディターなくてもExpressEditionで頑張って開発するというのもやりやすくなるんかな。自分は勉強用に使ってるだけなのでVisual Studio Communityエディションだし…それのリソースエディタ使いますけど。

Qt Quick 2.0対処法

 Qt Quickを少し使っただけでハマった罠についての記事です。ようするに万能のようで、他人が作ったものなので、謎も多いというのが率直な感想です。やっぱ読み解ける人でないと使いこなすのは難しいのかもしれません。超高速開発の裏で巻き起こる謎ロスは発生します。ちょっと触っただけの素人でも、あっさり問題に出くわすんすから、極めていくには、もっと多くの壁にぶつかってしまうんでしょうね。そんな気がします。でも、たいしたことない壁ばかりっすよ。きっと。自分でいろいろイチカラ開発してたら、膨大な時間がかかるところをサクサク開発できますからね。C++に戻ることもできるし、GUIライブラリとしては、いいんじゃないでしょうか。


  • libpng warning: iCCP: known incorrect sRGB profile
 Adobe PhotoShop CC 2015とかでpngファイルのカラープロファイル設定を変更(解除:つまりチェックを外した状態に)して保存しなおす必要があります。libpngがへぼいね。でも、しょうがないね。進化が激しすぎるんで全部は対応できない。


iCCP カラープロファイルの解除


  • depends on non-NOTIFYable properties(未解決)
 むむむ、なんだこの警告は。CONSTがどうのこうのと言っている人がいる。非通知不可属性に依存した変数がある。っつってますね。いやっす。property string strValue: "strValue"ってな感じで定義しただけなのに


  • LocalStorage.openDatabaseSyncを使ったときのDBの生成・作成・保存先
 Windowsでは
  C:\Users\[UserのID]\AppData\Local\QtProject\QtQmlViewer\QML\OfflineStorage\Databases
 に保存されます。.iniファイルにDB名、バージョン番号、DBの説明、容量について記載されています。.sqliteファイルはバイナリー形式なので、sqliteフォーマットのとおりに保存されていると思います。


個人用ツール
名前空間

変種
操作
案内
ツールボックス