Qt 新しいページはコチラ
提供: yonewiki
(→Qt Quick 2.0対処法) |
|||
1行: | 1行: | ||
+ | [[メインページ#言語と開発環境|言語と開発環境]]へ戻る。 | ||
+ | |||
+ | |||
+ | |||
== '''概要''' == | == '''概要''' == | ||
+ | [https://www.qt.io/download-qt-installer Qtダウンロード公式] ログインID取得してください。無料。 | ||
+ | |||
+ | |||
C++のオープンソースGUIライブラリで管理人が最も信頼を寄せるライブラリ群です。Qtライブラリを使うというのはしないんですけれども、ライブラリの作り方を見ると、あー、こうやってWindowsを操るのか!とGUIプログラミングのやり方を教えてくれる存在です。スプレッドシートも各種コントロールもフォントも、ツリーもハイパーテキストビューもメンテナンス性の高いやり方を知ることができます。使いやすさ。デザインのしやすさ。大事ですね。 | C++のオープンソースGUIライブラリで管理人が最も信頼を寄せるライブラリ群です。Qtライブラリを使うというのはしないんですけれども、ライブラリの作り方を見ると、あー、こうやってWindowsを操るのか!とGUIプログラミングのやり方を教えてくれる存在です。スプレッドシートも各種コントロールもフォントも、ツリーもハイパーテキストビューもメンテナンス性の高いやり方を知ることができます。使いやすさ。デザインのしやすさ。大事ですね。 | ||
7行: | 14行: | ||
− | 頼り切ってしまうと、C++ | + | 頼り切ってしまうと、C++を使っている意味がなくなるので、自分で確かめながら動かしたいという自分みたいな暇人には向かないシステムです(通常の人は暇が少ないので、非常に効率もよく、超高速開発ができると思います)。もともとはTrollTechさん→ノキアさん→ディジアさん→Qt Project(The Qt Company)さんが買収をして、運営しているのかな。商用利用する場合は有償版を買わないとダメです。実績はすごいです。Skype |
もGoogleMapもQtで出来ていると言われています。 | もGoogleMapもQtで出来ていると言われています。 | ||
13行: | 20行: | ||
ライブラリをインストールすると30GByteくらい容量を使います。持ち運ばないノートPCの方にいれていますのでリモートデスクトップでつないで、自宅でいろいろ活用してます。助かる。Qt4くらいの参考書はいっぱい出回ってますが、今(2018-11時点)はVersionが5.11.2くらいなのでQt5ですね。Qt5対応の参考書もちらほらみかけます。 | ライブラリをインストールすると30GByteくらい容量を使います。持ち運ばないノートPCの方にいれていますのでリモートデスクトップでつないで、自宅でいろいろ活用してます。助かる。Qt4くらいの参考書はいっぱい出回ってますが、今(2018-11時点)はVersionが5.11.2くらいなのでQt5ですね。Qt5対応の参考書もちらほらみかけます。 | ||
− | == '''Qt Quick 2.0対処法''' == | + | |
+ | |||
+ | === '''Qtテクニカルノート''' === | ||
+ | 管理人が問題解決に挑んだ記録。記事になっている数イコール挫折の回数。管理人の頭の悪さ指数です。頭の悪さをひけらかすのは管理人の優しさ。 | ||
+ | *[[Qt Tech. Qtプロジェクトファイル(*).proからMSVCプロジェクトファイルを生成する]] | ||
+ | *[[Qt Tech. OpenSSL通信、HTTPS通信を行うプログラムが簡単じゃない!対処方法]] | ||
+ | |||
+ | |||
+ | === '''Qtリファレンス''' === | ||
+ | 関連リンク | ||
+ | *[[C PlusPlus#C++からの技術|C++リファレンス]] | ||
+ | *[[Windows#MSVC_Runtimeリファレンス|MSVC Runtimeリファレンス]] | ||
+ | |||
+ | |||
+ | 管理人が出会って、覚えた順です。 | ||
+ | |||
+ | |||
+ | '''<span style="color: darkpurple;">リソース制御</span>''' | ||
+ | *[[Qtリファレンス qmlRegisterType]] リソース登録 | ||
+ | |||
+ | |||
+ | '''環境変数''' | ||
+ | *[[Qtリファレンス QtGlobal]] | ||
+ | :*[[Qtリファレンス QtGlobal::qEnvironmentVariablesSet]] 環境変数登録確認 | ||
+ | :*[[Qtリファレンス QtGlobal::qputenv]] 環境変数の設定 | ||
+ | :*[[Qtリファレンス QtGlobal::qgetenv]] 環境変数の取得 | ||
+ | |||
+ | |||
+ | '''標準出力''' | ||
+ | *[[Qtリファレンス QtGlobal::qInstallMessageHandler]] 標準出力に対する機能最適化 | ||
+ | *[[Qtリファレンス QtGlobal::qSetMessagePattern]] 標準出力に対する表示最適化 | ||
+ | *[[Qtリファレンス QCommandLineParser]] コマンドライン解読 | ||
+ | *[[Qtリファレンス QCommandLineOption]] | ||
+ | |||
+ | '''アプリケーション設定''' | ||
+ | *[[Qtリファレンス QtApplication]] | ||
+ | :*[[Qtリファレンス QtApplication::setDesktopSettingAware]] システムカラーやフォントの利用 | ||
+ | *[[Qtリファレンス QCoreApplication]] | ||
+ | :*[[Qtリファレンス QCoreApplication::setAttribute]] アプリケーション全般機能の設定 | ||
+ | :*[[Qtリファレンス QCoreApplication::setOrganizationName]] アプリケーション全般機能の設定 | ||
+ | :*[[Qtリファレンス QCoreApplication::setOrganizationDomain]] アプリケーション全般機能の設定 | ||
+ | :*[[Qtリファレンス QCoreApplication::setApplicationVersion]] アプリケーション全般機能の設定 | ||
+ | *[[Qtリファレンス QAccessible]] | ||
+ | :*[[Qtリファレンス QAccessible::installFactory]] | ||
+ | *[[Qtリファレンス QSettings]] | ||
+ | :*[[Qtリファレンス QSettings::setDefaultFormat]] | ||
+ | :*[[Qtリファレンス QSettings::IniFormat]] | ||
+ | |||
+ | |||
+ | |||
+ | '''機能管理・使用するクラスの登録''' | ||
+ | |||
+ | *[[Qtリファレンス qRegisterMetaTypeStreamOperators]] クラス管理・演算子機能登録 | ||
+ | *[[Qtリファレンス qRegisterMetaType]] クラス管理・演算子機能登録 | ||
+ | *[[Qtリファレンス QMetaType::registerStreamOperators]] クラス管理・演算子機能登録 | ||
+ | *[[Qtリファレンス QtMetaTypePrivate::QMetaTypeFunctionHelper-TypeTemplate-::Save ::Load]] クラス管理・演算子機能登録 | ||
+ | |||
+ | |||
+ | '''機能的な変数・コンテナ''' | ||
+ | *[[Qtリファレンス QString]] 文字列 | ||
+ | *[[Qtリファレンス QByteArray]] バイナリー・バイト配列 | ||
+ | *[[Qtリファレンス QTextCodec]] テキスト文字列コーデック機能付き | ||
+ | *[[Qtリファレンス QFile]] ファイル | ||
+ | *[[Qtリファレンス QDir]] フォルダ | ||
+ | :*[[Qtリファレンス QIODevice]] | ||
+ | :*[[Qtリファレンス QIODevice::ReadOnly]] | ||
+ | *[[Qtリファレンス QStandardPaths]] | ||
+ | :*[[Qtリファレンス QStandardPaths::writableLocation]] | ||
+ | :*[[Qtリファレンス QStandardPaths::CacheLocation]] | ||
+ | *[[Qtリファレンス QLocale]] 言語地域の設定 | ||
+ | *[[Qtリファレンス QTranslator]] 翻訳 | ||
+ | *[[Qtリファレンス QFontDatabase]] フォント | ||
+ | *[[Qtリファレンス QFont]] フォント | ||
+ | *[[Qtリファレンス Alt_Key]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === '''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(あるいは単にmsvsc2017)を選ぶといいんじゃないかな? | ||
+ | |||
+ | |||
+ | これで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''' | *'''libpng warning: iCCP: known incorrect sRGB profile''' | ||
− | : Adobe PhotoShop CC | + | : Adobe PhotoShop CC 2015とかでpngファイルのカラープロファイル設定を変更(解除:つまりチェックを外した状態に)して保存しなおす必要があります。libpngがへぼいね。でも、しょうがないね。進化が激しすぎるんで全部は対応できない。 |
22行: | 129行: | ||
− | *<span | + | *'''<span id="red_color">depends on non-NOTIFYable properties(未解決)</span>''' |
: むむむ、なんだこの警告は。CONSTがどうのこうのと言っている人がいる。非通知不可属性に依存した変数がある。っつってますね。いやっす。property string strValue: "strValue"ってな感じで定義しただけなのに | : むむむ、なんだこの警告は。CONSTがどうのこうのと言っている人がいる。非通知不可属性に依存した変数がある。っつってますね。いやっす。property string strValue: "strValue"ってな感じで定義しただけなのに | ||
30行: | 137行: | ||
: C:\Users\[UserのID]\AppData\Local\QtProject\QtQmlViewer\QML\OfflineStorage\Databases | : C:\Users\[UserのID]\AppData\Local\QtProject\QtQmlViewer\QML\OfflineStorage\Databases | ||
: に保存されます。.iniファイルにDB名、バージョン番号、DBの説明、容量について記載されています。.sqliteファイルはバイナリー形式なので、sqliteフォーマットのとおりに保存されていると思います。 | : に保存されます。.iniファイルにDB名、バージョン番号、DBの説明、容量について記載されています。.sqliteファイルはバイナリー形式なので、sqliteフォーマットのとおりに保存されていると思います。 | ||
+ | |||
+ | |||
+ | === '''日本語化''' === | ||
+ | [[Error C2001:定数が 2 行目に続いています。]] | ||
+ | |||
+ | |||
+ | === '''Clangd''' === | ||
+ | ClangdとはC++のコードを補完するツール。最近は無効になったらしい。メモリを使うそうです。 | ||
+ | |||
+ | |||
+ | |||
+ | [[メインページ#言語と開発環境|言語と開発環境]]へ戻る。 |