【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 18©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
Qt(キュート)は C++ ベースのフレームワーク&RAD開発環境です。
ライブラリの機能は、フォーム、ボタンなどの各種ウィジェットからネットワーク、マルチスレッド、
グラフィックス(OpenGL)や各種コンテナ、XMLパーサー、組み込み JavaScript など、非常に多岐に渡ります。
公式の統合開発環境「Qt Creator IDE」を使えば、クロスプラットフォーム対応のRAD開発が可能です。
また、EclipseやVisual Studio上で開発したい人のためのアドインも用意されています。
■主な対応プラットフォーム(デスクトップ用途の場合)
Windows XP, Vista, 7
Mac OS X 10.4, 10.5, 10.6
Linux
■ライセンス
・オープンソース版(Open-source version)
LGPL 2.1 または GPL 3.0 のうちどちらかを利用者が選べます。
LGPL を選んだ場合はソースコード非公開のままでの商用利用が可能です(いくつか制限あり)。
※正確には通常「LGPL+商用利用向きの例外条項」を選ぶことにな7ります(Qtインストール先の「LGPL_EXCEPTION.txt」を参照)。
ちなみにGPLでも商用利用が不可能というわけではありません、念のため。
・商用版(Commercial version)
こっちはDigia社か日本の代理店(SRA社)とライセンス契約(年間30万くらい?)を結んで使います
■Qt を使って作られたソフト例
KDE、Maya、Adobe Photoshop Elements、Google Earth、Skype、DAZ Studio
MotionBuilder、RealFlow、Nuke、LuxRender、Mathematica、Kindle、VirtualBox、
RuviEdit、さくさくエディタ など
■前スレ
【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 17
http://echo.2ch.net/test/read.cgi/tech/1438593408/ AtlassianのHipchatのwindowsアプリQtで作られているらしいんだけど、
日本語入力時にバックスペースで文字消すとき
二回押さないと文字が消えなかったり
確定した文字まで多めに消したりとかなり使いにくい
これってQtのせいなのかな?
MinGW使うのやめてVisualStudioでコンパイルすると治るという書き込みも見たけど
Qtで日本語扱うならMinGWよりVisualStudioがオススメですか?
バグレポート
https://jira.atlassian.com/browse/HCPUB-268
Hipchat ダウンロード
https://www.hipchat.com/downloads 日頃からVisualStudio版とmingw版は並行して扱ってるけど、
QtSDK自体のTextEditでそんな不具合見たことないな。 今時UTF-8以外の文字コードでソースコード書くやつなんておらんやろ。 つい最近、visual studio codeのvimプラグインで、そんな現象に出会ったなぁ。
日本語編集時に意図しない文字が消えたりするやつ。 ちなみにQtにzipファイル展開させると、日本語を含んだファイル名が化ける場合があるからな
わざわざパッチまで用意して報告したのに、
動作確認コードを別途用意しろなんて舐めたことを言い出したので放置したが。 >>413
原因は何だったのでしょう? iconv の自動判定ミスかな。 zipのヘッダはある程度の柔軟性があって、内部に格納するファイル名のエンコード方法を指定するフラグがある。
つまりMBCSとUTF-8の2パターンでどちらかが使われるわけだ。
当然zipのヘッダを読んでどちらでエンコードされているか確認しながら処理しないといけないわけだが、
QtのQZipReaderは一部がMBCSでハードコーディングされているところがある。
するとUTF-8で格納されてるzipは正常に読めない。
まあそもそもDeflate64に対応してないんだから、本格的な対応とはいえないけどね。 >>415
詳しい解説ありがとう、そういう内容か。ASCII文字通り扱う分にはどっちでも支障ないし、マルチバイトのテストなんかロクにやってないんだろうね。 それじゃあマルチバイトで問題多発するのも当然だね。 それとは話は別だと思うぞ。
QStringは常にUTF-16で文字列を保持してるから、
サロゲート問題を除き、正しく扱えば文字化けすることはない。
つまり、OSのAPIなど外部APIとやり取りするときは常にそれらのAPIが
何の文字コードで文字列を必要としているかを確認し、
toLatin1()
toStdWString()
toUtf8()
などを適宜使い分けてそれぞれの部分で正しい文字コードを指定してあげないといけない。 Qtがフォントの中にグリフが入っているかどうかを判定するのを間違って
入っているのに入っていないと判定して文字化けしたのは何度もあった >>415
それzipの問題じゃなくてwindowsの問題だろ >>420
違うよ。
説明のわかりやすさのために敢えてMBCSと表現してるけど、
これは純粋にzipの仕様とQZipReaderの実装の問題だよ。
OSに関係なくこの問題は発生する。 Win上でUTF-8のファイル名で展開されても困る気がする 気がするのか。
わしは困る!と断言できる者はおらぬのか。 >.>422
全然違う。
zipに格納されているファイル名を何の文字コードとして管理し、
QStringの文字列として取り出すかどうかという話。
動作するOSのファイルシステム上のファイルの文字コードとは全く関係ない。
とんちんかんな発言ばかりする前に、ちっとは実際のソースコードを読んだらどうだ? 何でソースなんか読まないかんのよと言いたいところだが。
Qtはソース読まないと使いものにならんもんな。 むしろなんでソースコードを読まないのか。
『プログラムは思った通りに動かない。書いたとおりに動く』
の原則のとおり、公式マニュアルで不明な部分やマニュアル通りに動いてない部分があったら
ソースコードに実際に当たるべきだ。
これはQtに限らずあらゆるOSSのプロダクトに共通の態度だと思うけどな。
それに、むしろQtのソースは読みやすい部類だ。
7zとか読んだらじんましんが出そうだぞ。 それLinuxユーザーの言うUNIXの精神だよね。
ソースが仕様って。
ところが一般的には仕様と違えればソースを修正する。
ソースに合わせて仕様の方を変更することはない。 仕様と実装の齟齬なんて話は全くしてないんだがな。
マニュアル通りに動いてなければソースコードも疑えと言ってるだけなんだが。
話がとんちんかんすぎて、
レス書いてるのが馬鹿らしくなってきたんだが。 元々丁寧に説明してくれているけど、まとめると、
・zipファイルにはUTF-8でファイル名を格納する仕様があるが、QtZipReaderはその仕様に対応していない。
・ゆえにQtZipReaderでUTF-8でファイル名が格納されたZipファイルを展開しようとすると、QtZipReaderで読み込んだ時点でファイル名が文字化けする。
・また、Zipファイルの解析はQtZipReaderが行うので、OSの機能は関係しない。
って、これだけのことだろー。 QtZipReaderの仕様がどうだか知らんけど、
仕様でUTF-8でファイル名が格納されたZipファイル名に対応していることになっているなら、実装のバグ。
仕様でそのようなZipファイルに対応していないなら、仕様が古い。⇒対応するよう、仕様と実装を更新。 だね。
より正確にはUTF-8形式でファイル名が格納されたzipファイルを読み込むと、
ファイルリストは正確に列挙されるが、それが入ったQStringListにあるファイル名で展開しようとすると
なぜかファイルのマッチングに失敗して何も展開されないという挙動をする。
その原因が上に書いたもの。
そして話は >413 に戻る。 ユーザー名・ファイル名などのシステムには、半角英数字だけを使うこと
日本語などで、テストしている開発者は、世界に1人もいない ちなみに、LinuxやMac環境だと更に悲惨なことになるぞ。
UTF-8で格納されてないと、ファイル名の文字コードが不明だから
どうやってQStringに読みだしたらいいのかわからん。
マルチリンガル対応のアプリだとSJISと決め打ちするわけにも行かないし。 ZIPのEFS対応は未だにMacでも怪しいから、Qtだけの問題でもないんだけどね。欧米圏では問題ないからやる気ないんだろう >>431-432
日本語をサンプルにするから要求が通らないんだよ
クリル文字をサンプルにしとけばすんなり通ったかも知れないぜ >>437
ラベルやテキストエディットで濁点と半濁点がついた文字が2文字に分かれて描画されてしまうバグの優先順位が低いので
ドイツ語のウムラウトやフランス語のセデューユが2文字になるのと同じことだと説明したら優先順位が上がってすぐになおったことがある 別にQtに限らず
フリーソフトで日本語まともに表示できないのはよくあるだろw
文句が有ったら使うなよ! >>431
明らかなバグなんだから、
問題があるzipファイルを報告すれば取り込むでしょ。
もうひと押しお願いします。
それにしても、QZipReaderってヘルプに載ってないのね... >>442
求められたのは不具合が発生するzipファイルでなく、バグを再現するテストコード。
そこまでやってやる義理はない。
QZipReaderはプライベートなクラスだから、使うときはqmake側に
QT += core-private
などと書いてあげないといけない。 >>443
丸投げなのね...
ありがとう、使い方はわかりました。 >>445
そうだよ。
>>444
443はパッチまで作って送ってる。 パッチ送るだけなら楽だけど
取り入れて良いか確認する方は手間掛かるよ >>446
QMLコンパイラは、お試しもできないのか
QMLは重い、使いにくいもんだという経験上の概念が定着してしまってるから
試すこともできないものはリスクでしかない >>448
商用版に付いてくる Qt Quick Compiler の原型(?)は github からダウンロードできるみたい。
使ったことないからどこまで使い物になるかはわからないけど。
https://github.com/qmlc/qmlc
>QMLは重い、使いにくいもんだという経験上の概念が定着してしまってるから
元々 JavaScript みたいなもんだから Widget に比べて重いのは仕方ないけど、rapid programming には結構便利だと思うよ。 Qtに必要なのは、QMLよりもXAMLだと思う。
MVVMの普及が必要だ。 >>450
githubのは商用版に対抗して作られたもの制約や問題が多い >>403
cppとhが99%以上
qmlは1%未満
こういうものを作るにはC++ Archのpacmanで入れたQtCreatorがHelpでフォントのサイズの変更が出来ない...
誰か解決策知りませんか 拡大 Ctrl++
縮小 Ctrl+-
リセット Ctrl+0 Menu->Options->Helpからフォントを指定しても、サイズを変更しても適用されないんですよ
そこにスタイルシートが指定されてない場合しか適用されないみたいなこと書いてあった気がするんですけど(うる覚え)それが原因ですかね?
どうすればいいのだろう... >>448
QMLコンパイラ商用版限定、LGPL3への切り替え、GPL限定、
どれもオープンソースなど考えずに儲けたいだけ ドキュメントからはconnectでコンパイルエラーにはならないはずなので
ヘッダーを見たらドキュメントに書かれていないオーバーロードsignalがあるじゃないか Creatorでコード編集中にマクロが未定義になってダイアログで警告されるのにうんざりだ。
起動しなおせば使えるようになるからバグ。 ubuntuで、QTCreato4.3を使用しています
VisualStudioのように、スタックサイズの拡張はできますでしょうか? そろそろツールチップに型とかを表示するようにしてほしい リファクタリングのシンボル名変更をしようとするとCPUが100%になって操作できなくなる >>465
遅レスだけど、そういうのはQtの仕事じゃない。
リンカにオプションを与える。
具体的には
QMAKE_LFLAGS += オプション
ってproject.pro に書き加える。 Qtのダウンロードページ死んでるがな・・・
今、Qt5.9.1で、QWebEngineHistoryとかインクルードしたくて、
MSVC2017だと、QT += webenginewidgetsを追加しているのに、インクルードできないといわれてしまうし
MinGWだと、QT += webenginewidgets追加すると、Unknown moduleといわれるし
全くどうしたらいいだ >>469
回答ありがとうございます。
具体的には、下記のような形でしょうか?
QMAKE_LFLAGS += -z stacksize 1024000 >>470
WebEngineはMSVC2017とMigGW非サポート >>472
マジかよ・・・サンクス
つまりMSVC2013とかでやる必要があるということだな >>471
試せばわかるやん?
>>473
msvc2015だろjk Creatorのヘルプで戻ったときに>が有効にならずに無効になってしまうのがあるのは面倒だ VSみたいに、複数プロジェクトをまとめるプロジェクトって作れないのかな?
.pro開いてビルドを取り直すのがめんどくさい。
ご教授ください。 Qt SDKのソースを見れば分かるけど、
TEMPLATE = subdirs
と書けばサブディレクトリにあるプロジェクトが全て1つのプロジェクトとしてまとめられる。
SUBDIRS 変数にプロジェクトを入れていく。
依存関係を設定してあげればビルド順も制御できる。 qmakeは慣れると便利だけど、慣れるまでが大変。
cmakeでも良いけど、Qtが使えるならqmakeの方がデバックが楽。 >>477
xx/yy/a.pro
xx/yy/b.pro
xx/yy/c.pro
この3つをまとめるとしたら、
xx/all.proをつくり、ここに「TEMPLATE = subdirs 」を指定する書き方でしょうか? >>480
ありがとうございます。
翻訳しながら試してみます あーあ、規模が規模だし、すっかりQt依存のコードになっちゃって
Qtを使わない環境に移植するときは地獄だなこりゃ 何が楽しくて今の時代にわざわざQtを勉強するのかな >>482,483
お前らQtの専門スレまで何しに来てるんだよ。
巣に帰れ。 Creatorでキーボードショートカットの設定がモーダルダイアログなので
編集操作しながら設定できないのでやたら使いにくい Apple Watch の技術プレビューレベルの対応をいたしました、って書いてあるけれど
UI作れないのに対応したとは言えないよ
Xamarinは作れるな Creatorのウィジェットフォーム編集でコピペしたときにパレットの変更が反映されたりされなかったりする Creatorでフォーム編集中のlayout*MarginとlayoutSpacingがプレビューと実行で小さく変わってしまう
ウィンドウサイズはフォーム編集設定通りになるのでレイアウトに入れたウィジェットの大きさがフォーム編集よりも大きくなる
見た通りに編集して実行できない Widgetを動的に入れ子にしてる場合は
Designerの表示は参考にしかならんぜ。
面倒なのでスペース関係は必要な時以外0にして動かしてるな。 >>492
サイズポリシーはもっと酷くてDesigner表示では潰れてしまう
プレビューと実行では潰れない https://github.com/jacobdufault/cquery
LSP対応のcqueryがまあまあ強力
とにかくメモリ使用量がめっちゃ少ない
QtCreatorをLSPに対応させてClangCodeModelを放り投げて欲しい
少し大きなプロジェクト開いただけで気がついたら1GBとか余裕で使ってるからな Creatorの補完表示がやたらに遅いおかげで脳内補完が楽にできるようになった うちのソースツリーはC/C++で17MBほどあるけど、
qtcreatorは250MB程度しか食ってないし別に重くはないぞ。 >>496
ソースツリーの量に関係なく
やっと補完表示されてから他のファイルを編集し
戻ってきてまた編集すると補完でまた待たされる
同じものが補完されたりされなかったりもする
ヘルプも一度目は大概他のが表示され、二度目に正しく表示される
ヘルプがあるのに表示されないのもよくある
補完とヘルプがすぐに正しく表示されないので使い難い デザインエディターでサイズとかの入力中にキー入力ごとにプレビューが変わるのは筋悪、入力確定で変わるの筋良
ファイル名の変更でサフィックス含めて選択されるのも筋悪、サフィックスを除いた部分が反転されるのが筋良
フォーム上に置いたエレメントが選択できなくなるのはひどいバグ、他のファイルを表示させて戻ると選択できるようにはなる 文句あるならプルリクエスト出せよ。
何のためのオープンソースなんだよ。 >>501
オープンソースだからだと? 欠陥とバグだらけとは関係ない 僕は長い間Qt使ってるけど、Honeyは40年間いた事ないんです(><;) ■ このスレッドは過去ログ倉庫に格納されています