【RAD統合環境】 Qt 総合スレ 14 【Win/Mac/Linux】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2012/08/13(月) 13:04:07.64ライブラリの機能は、フォーム、ボタンなどの各種ウィジェットからネットワーク、マルチスレッド、
グラフィックス(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)
こっちはNokia社か日本の代理店(SRA社)とライセンス契約(年間30万くらい?)を結んで使います
■Qt を使って作られたソフト例
KDE、Adobe Photoshop Elements、Google Earth、Skype、DAZ Studio など
■前スレ
【RAD統合環境】 Qt 総合スレ 13 【Win/Mac/Linux】
http://toro.2ch.net/test/read.cgi/tech/1329530477/
0002デフォルトの名無しさん
2012/08/13(月) 13:05:02.41・Qt Development Frameworks (Nokia社のQt公式サイト)
http://qt.nokia.com/title-jp
・SRA社(日本の代理店)の日本語で読める Qt 関連ドキュメント
http://www.sra.co.jp/qt/relation/index.html
・Qt Users Forum Japan
http://qtusersforum.s2.zmx.jp/forum/index.php
■ライセンス関連まとめ
各ライセンスでの自作アプリのソース公開/頒布
Qtのライセンス アプリのライセンス Qtの頒布/(変更部分のソース公開)
GPL GPL(ソース公開必須) 必須
LGPL 任意(ソース公開不要) 必須
商用 任意(ソース公開不要) 不要
*: LGPLは動的リンク時
実際には他にも条件(リバースエンジニアリング関係とか)あるので、
きちんとライセンスの条文を読むこと。
0003デフォルトの名無しさん
2012/08/13(月) 13:07:12.15・プロジェクトのパスに日本語を入れちゃダメ
・日本語のソースコードは、MinGW版ならUTF-8、VC版ならSystem(Shift-JIS)
プロジェクト作成後に「プロジェクト」タブの「エディタの設定」→「デフォルトの文字コード」
・デバッグ出力などが文字化けする場合、プログラムの最初で文字コード変換設定をする
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); //ソースの文字コードを直接指定("utf-8"や"Shift-JIS")
// QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); //システムロケールの文字コードを指定
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //翻訳用マクロ tr()の文字コード
qDebug() << "うまく表示できた?";
・MinGW版配布時は mingwm10.dll も一緒に入れる(public domain。配布上の制限はない)
0004デフォルトの名無しさん
2012/08/13(月) 13:10:18.00Qt Creator を日本語化するプロジェクトです(非公式)
http://qt-creator-jp.sourceforge.jp/
■Python バインディング
PyQt4(GPL。定番)
http://www.riverbankcomputing.co.uk/software/pyqt/intro
PySide(LGPL。)
http://www.pyside.org/downloads/
ごちゃごちゃ言わず、QtQuickも使ってみてください(><;)
0005デフォルトの名無しさん
2012/08/13(月) 13:15:00.18■ 実践 Qt 4プログラミング
http://www.amazon.co.jp/%E5%AE%9F%E8%B7%B5-Qt-4%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Mark-Summerfield/dp/4873115078/ref=pd_cp_b_1
■ Qtプログラミング入門―使いやすいフレームワークを基礎から解説
http://www.amazon.co.jp/gp/product/4777516504/ref=pd_lpo_k2_dp_sr_2?pf_rd_p=466449256&pf_rd_s=lpo-top-stripe&pf_rd_t=201&pf_rd_i=487311344X&pf_rd_m=AN1VRQENFRJN5&pf_rd_r=1A9G2JCJYMD8FS57MBAC
■ 入門 Qt 4 プログラミング
http://www.amazon.co.jp/%E5%85%A5%E9%96%80-Qt-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Jasmin-Blanchette/dp/487311344X
■ Qtで簡単 GUIプログラミング―Qt入門書を読む前に読む「入門書」
http://www.amazon.co.jp/gp/product/4877832211/ref=pd_lpo_k2_dp_sr_1?pf_rd_p=466449256&pf_rd_s=lpo-top-stripe&pf_rd_t=201&pf_rd_i=487311344X&pf_rd_m=AN1VRQENFRJN5&pf_rd_r=1A9G2JCJYMD8FS57MBAC
0006デフォルトの名無しさん
2012/08/13(月) 13:48:59.23乙
0007デフォルトの名無しさん
2012/08/13(月) 13:52:20.990008デフォルトの名無しさん
2012/08/14(火) 07:26:40.86だったらマジ糞だわ
0009デフォルトの名無しさん
2012/08/14(火) 12:14:19.43Nokia、全Qt事業をフィンランドのDigiaに売却
http://sourceforge.jp/magazine/12/08/09/2048249
http://gihyo.jp/admin/clip/01/linux_dt/201208/13
0010デフォルトの名無しさん
2012/08/16(木) 16:30:56.89ちんちん
0011デフォルトの名無しさん
2012/08/16(木) 21:47:54.010012デフォルトの名無しさん
2012/08/16(木) 21:56:31.750013デフォルトの名無しさん
2012/08/16(木) 22:37:54.12QtConcurrent::run()で実行してるスレッドはシグナル/スロットが使えない
って書いてあるんですけど、ホント?
少なくともシグナルのemitは出来たんだけど・・・
0014デフォルトの名無しさん
2012/08/18(土) 12:51:58.100015デフォルトの名無しさん
2012/08/18(土) 15:58:11.14どういemitができた?
0016デフォルトの名無しさん
2012/08/18(土) 17:56:20.28JavaScriptでうんたら言うけど配置しただけだとXMLがあるだけだからよう分からんが、
QMLのデザイナとコンパイラだけでいいんで1GB以下で配布してくれんかなと。
0017デフォルトの名無しさん
2012/08/18(土) 18:05:21.460018デフォルトの名無しさん
2012/08/18(土) 19:05:08.70SDKだったらSymbianやシミュレータのような要らないのを外せば2G未満で、インストール時間も短くなる。
0019デフォルトの名無しさん
2012/08/18(土) 20:12:00.54Examples¥4.7を丸ごとビルドしようとしたらエラーになるんですけどどうしたらいいですか?
mingw32/bin/ld.exe: cannot find -lpnp_basictoolsd
collect2: ld returned 1 exit status
セットアップではMinGWはチェック入ってるんですけど
ガジェットのサンプルはコンパイル通った。
すいません。ぐぐったら出てきました。
>あなたがbasictoolsプラグインを最初にコンパイルする必要があります
>ttp://qt.gitorious.org/+qt-develope...ins/basictools
>>18
2GBってでかいな
と思ってインスコフォルダのサイズ見たら8.71GBだった。
ファイル数165kって俺のC:ドライブより多いやんけ。
大人しくエミュ関係削除します。
002013
2012/08/18(土) 21:51:16.09自作の QObject 派生クラスで signal と slot を定義。
QueuedConnection で connect しておく。
QtConcurrent::run() に this とメソッドを渡して、そのメソッド内で emit。
slot がメインスレッドで実行される。
と、こんな感じ。
使い方あってますかね。。。
0021デフォルトの名無しさん
2012/08/19(日) 02:29:57.59使い方あっている。そういうのはできる。
QtConcurrent自体がシグナルとスロットを使えるようになっていないということだよ。
明示的にQueuedConnectionでconnectしなくてよい。
emitされたときに別スレッドのオブジェクトのスロット呼び出しなら、QueuedConnectionになる。
002219
2012/08/19(日) 16:09:56.13でも、他のは一応コンパイルできるので問題ないです。
コンパイルUIにJavaScriptが使えるという点はいいなと思ったんだけど、
QT5ではQMLっていうシンプルなやつがメインになるらしいですね。
JavaScriptは使えなくなるのかな?
まあ、HTMLじゃなくXMLだから普通のHTMLエディタやブラウザで表示できないからあまり意味はなかったかも。
ネイティブ動作で軽いやつがよかったんだけど
OpenGL必要条件にってのは残念。
まあ、OpenGLが使えないのはもうスクラップになる頃だし問題ないのかな。
バージョン確認したらまだQT4だったから先の話か。
最終のQT4は取っておいたほうがよさそう。
0023デフォルトの名無しさん
2012/08/19(日) 16:20:08.03QWebViewにQTextCursorやQTextEdit::insertHTMLの代わりになるものってありますか?
0024デフォルトの名無しさん
2012/08/19(日) 20:31:25.80JavaScriptが必須になる。
Qt4はQt5リリース後にいつもの倍の2年はサポートするとDigiaが発表していた。
0025デフォルトの名無しさん
2012/08/19(日) 21:40:00.53DOM操作で編集、examples/webkitなどを。
QTextCursorやQTextEdit::insertHTMLはQtのリッチテキスト用なので、一般的なHTMLの編集には向かない。
002620
2012/08/21(火) 01:40:39.05thx
しかし、あの文面からは
>QtConcurrent自体がシグナルとスロットを使えるようになっていないということだよ。
とは、読み取れんかった。。。
0027デフォルトの名無しさん
2012/09/01(土) 00:19:23.230028デフォルトの名無しさん
2012/09/01(土) 01:25:35.99Flickableって何?
0029デフォルトの名無しさん
2012/09/04(火) 15:22:52.290030デフォルトの名無しさん
2012/09/04(火) 18:37:24.650031デフォルトの名無しさん
2012/09/04(火) 20:46:53.34ついに来ましたか。でもVS用にビルドされたのはまだっぽいですね
頑張ってソースからビルドしてみます
0032デフォルトの名無しさん
2012/09/05(水) 02:10:01.640033デフォルトの名無しさん
2012/09/05(水) 02:31:53.58またビルドか
0034デフォルトの名無しさん
2012/09/05(水) 07:17:18.28QObject,QWidgetについては、びっくりするほどQt4と変化無いからな
0035デフォルトの名無しさん
2012/09/05(水) 10:52:38.65Alphaだね。Betaと呼べるレベルじゃない。
>>34
ウィジェットにはいろいろ問題があって、安定したアプリは作れない。Qt 4と動作や描画結果が違っている。
ウィジェットがまともに使えるようになるのは、5.1からの予定。
0036デフォルトの名無しさん
2012/09/05(水) 11:03:35.81乗り換えはあと一年くらい見送りですね
0037デフォルトの名無しさん
2012/09/05(水) 12:05:39.460038デフォルトの名無しさん
2012/09/07(金) 05:22:41.71ウィジェットアプリ乗り換えは、一年は待った方がいい。
>>37
小さいものやQt5でこれから作るものならそれでいい。
Qt4で作った大きなものをQt5にするのに困る。
Qt5にしないままだと半年も経てばバグ修正されなくなるし、機能追加と改良がされないので
陳腐化する。
0039デフォルトの名無しさん
2012/09/14(金) 00:23:04.090040デフォルトの名無しさん
2012/09/14(金) 08:25:43.98基底クラスのQObjectのデストラクタがvirtualだから,QWidgetのデストラクタも
自動的にvirtualになる。
0041デフォルトの名無しさん
2012/09/15(土) 18:51:29.82以下のコードを実行するとappendした画像サイズに応じてメモリ使用量が増え続けます。
(WinXP/7環境で確認しました。)
QWebElement element = getSomeElement();
for (i = 0; i < n; i++) {
element.appendInside(createNewImgHtmlTag());
element.firstChild().removeFromDocument();
}
createNewImgHtmlTagは呼び出すたびに異なるソースへの<img>タグを生成してQString型で返す関数です。
同じソースへのタグを生成した場合はメモリ使用量が増えないので、恐らくキャッシュが原因だと思います。
QWebSettings::setObjectCacheCapacitiesでキャッシュサイズを指定しても変化はありません。
ドキュメントをクリアしても、QWebViewをdeleteLaterしても変化はありません。
この問題を解決する方法はありますでしょうか?
0042デフォルトの名無しさん
2012/09/15(土) 19:25:35.150043デフォルトの名無しさん
2012/09/15(土) 19:42:55.060044デフォルトの名無しさん
2012/09/15(土) 20:01:49.320045デフォルトの名無しさん
2012/09/16(日) 21:07:23.28デッドキャッシュと言っているのは具体的にどのインスタンス?
それを特定できて言っているかな?。人の性にしているけれどアプリのバグというのもあるのだよ。
0046デフォルトの名無しさん
2012/09/16(日) 21:31:29.620047デフォルトの名無しさん
2012/09/16(日) 22:15:55.58もっといえば、MeeGoでタッチアプリも作れれば、最高だった。
0048デフォルトの名無しさん
2012/09/16(日) 23:50:49.68そのコードで確保されたメモリはQWebView::setHtmlを呼び出すと解放されるから、
そもそもremoveFromDocumentではデッドキャッシュにならないんじゃないか?
ページの中身を編集しても、あくまでも同じページ扱いなんだろう
しかし、QWebViewを削除しても解放されないのはちょっと困るな
削除する前に必ずsetHtmlか何かを呼び出さないといけないようだ
本家WebKitの方では修正されてるのかな?
0049デフォルトの名無しさん
2012/09/17(月) 00:11:35.730050デフォルトの名無しさん
2012/09/17(月) 05:26:41.17QWebViewをdeleteしたら解放されたよ
メンバ変数でQWebElementを保持してないか?
保持してるとQWebViewをdeleteしても非ナルのまま残るぞ
0051デフォルトの名無しさん
2012/09/17(月) 13:19:43.990052デフォルトの名無しさん
2012/09/17(月) 15:39:49.02https://bugs.webkit.org/show_bug.cgi?id=61006
0053デフォルトの名無しさん
2012/09/17(月) 15:59:14.560054デフォルトの名無しさん
2012/09/17(月) 16:18:35.450055デフォルトの名無しさん
2012/09/17(月) 21:05:03.75レスありがとうございます。
リンク先のパッチを反映させてみたところ劇的に改善しましたが、まだ小さなゴミが残るようですね。
ただこれもsetHtmlを呼び出すときれいさっぱり消えるようですので、定期的にページをリフレッシュするようにします。
0056デフォルトの名無しさん
2012/09/19(水) 01:12:08.18MeeGoは遅くて重くて使えるものではなかったよ。
0057デフォルトの名無しさん
2012/09/19(水) 14:37:33.570058デフォルトの名無しさん
2012/09/19(水) 16:03:54.950059デフォルトの名無しさん
2012/09/19(水) 18:08:40.36別のPCに実行ファイルを持っていってlddしたら動的実行ファイルではありませんって出て実行できない。
これってどういうこと?
ライブラリの動的リンクができてないってこと?
006059
2012/09/20(木) 19:35:54.74初歩的なとこだった
0061デフォルトの名無しさん
2012/09/20(木) 19:57:03.54もうこのスレの住人はQtに興味ないのか
0062デフォルトの名無しさん
2012/09/20(木) 20:23:56.460063デフォルトの名無しさん
2012/09/20(木) 20:48:50.600064デフォルトの名無しさん
2012/09/23(日) 11:18:41.960065デフォルトの名無しさん
2012/09/23(日) 12:25:16.320066デフォルトの名無しさん
2012/09/24(月) 00:14:38.990067デフォルトの名無しさん
2012/09/24(月) 02:57:28.93可能なら本家OpenGLのスレで聞いた方が回答は期待できると思うよ
0068デフォルトの名無しさん
2012/09/25(火) 19:28:46.12ダイアルの目盛の色を変更しようとしたのですが、背景色しかカスタマイズが無理でした。
そこでQCommonStyleをサブクラス化してカスタマイズし、setStyle()しようと思ったのですが、Qtのクラスをサブクラス化して
使用すると、自分が書いた部分のソースにもLGPLが適用されてソース公開義務が発生するという考えであってますでしょうか。
また、ソース公開が嫌な場合は、面倒ですが画像か、ペン・ブラシを使ってゴリゴリ書くしかないんでしょうか。(実は、スタイルシートで設定できるとか)
LGPL版でQt SDK 1.2.1をWindows7 64bitで使ってます。よろしくお願いします。
0069デフォルトの名無しさん
2012/09/28(金) 14:14:58.82ウィジェットの背景を点滅させたいのですが。
0070デフォルトの名無しさん
2012/09/28(金) 15:01:21.150071デフォルトの名無しさん
2012/09/28(金) 18:06:34.30timerEventのなかで呼び分けろカス
0072デフォルトの名無しさん
2012/09/30(日) 21:04:38.01Qt Extendedってこの先生き残れるの?
0073デフォルトの名無しさん
2012/09/30(日) 22:12:15.930074デフォルトの名無しさん
2012/10/03(水) 17:23:55.95QMLでならなんとか。正式サポートは、来年のQt 5.1。
0075デフォルトの名無しさん
2012/10/03(水) 17:25:16.10Qt Extendedはとっくになくなっている。その後継のMeeGoも瀕死状態。
0076デフォルトの名無しさん
2012/10/04(木) 18:36:27.57これでエラーが出るんですがどうすればいいですか?
0077デフォルトの名無しさん
2012/10/04(木) 18:38:58.25requestはQNetworkRequestでUrlを設定しています
0078デフォルトの名無しさん
2012/10/04(木) 20:44:15.070079デフォルトの名無しさん
2012/10/05(金) 02:14:28.70○ QNetworkReply *reply = manager->get(request);
0080デフォルトの名無しさん
2012/10/15(月) 01:58:15.96全部翻訳するのは面倒なので要点だけ
■QPointerを使い続けよう(Continue using QPointer)
http://www.macieira.org/blog/2012/07/continue-using-qpointer/
Qt5開発の初期に、我々はQPointerを廃してよりモダンなQWeakPointerに
置き換える決定を行いました。しかし、この決定はいまや覆されました。
QPointerを使っていた場所ではQPointerを使い続けてください。
QWeakPointerは、QSharedPointerとの連携以外では使わないでください。
決定までの経緯の要点
・QPointerはQt3時代の古い実装を引きずっていて、非常に遅かった
・Qt4.5で登場したQWeakPointerは速く効率的な実装だったので、
QSharedPointerに対応する弱参照という本来の役割だけでなく、
QObjectへの弱参照であるQPointerの代替との役割も担えるようにした
・しかし去年の11月にある開発者が、QPointerの内部をQWeakPointerで実装しなおした
・さらに、実際にQt5で使われているQPointerをQWeakPointerにリプレースしようと
したところ、非常に膨大な作業量が発生することがわかった
■まとめ
すなわち、あなたはQPointerを使い続けるべきです。もしあなたがQt4を使っているなら
残念ながら実装の高速化は期待できませんが、少なくともクリーンなコードではあります。
QWeakPointer::data() は非推奨となるので、使ってはいけません。
Qtのスマートポインタは今では下記のようにグループ分けされます。
・共有データ:QSharedDataPointer, QExplicitlySharedDataPointer("侵入的ポインタ"として知られる)
・共有ポインタ:QSharedPointer, QWeakPointer(C++11のstd::shared_ptrに相当)
・スコープドポインタ:QScopedPointer, QScopedPointerArray(RAIIで使われる)
・QObjectトラッキング:QPointer(QObjectインスタンスのライフタイムを監視する)
0081デフォルトの名無しさん
2012/10/15(月) 02:42:25.39なんだこれ
0082デフォルトの名無しさん
2012/10/15(月) 07:21:04.620083デフォルトの名無しさん
2012/10/15(月) 07:49:05.65http://sourceforge.jp/projects/sfnet_necessitas/
途中、いろいろハマったけど、最終的にはアプリがビルド出来て、実機で動作させることが出来た。
まだいろいろな機能は試してないし、問題もありそうだけど、
Qt で書いたプログラムがちゃんと動作したのは感激だった。
0084デフォルトの名無しさん
2012/10/16(火) 06:47:16.16それとも仮想マシン上?
0085デフォルトの名無しさん
2012/10/16(火) 07:39:19.690086デフォルトの名無しさん
2012/10/16(火) 14:17:39.990087デフォルトの名無しさん
2012/10/16(火) 16:31:49.75LGPLならAndroidの場合apkにパックされて配布されるから、LGPLに従ってソース公開しないとダメなのかな?
0088デフォルトの名無しさん
2012/10/16(火) 18:58:53.36によるとQtライセンスに準じてNecessitasでの追加部分はBSDライセンスってことみたい。
フリーソフトではなくてもMinistroサービスを自由に使えると強調されているのでそこがミソなんだろう。
0089デフォルトの名無しさん
2012/10/16(火) 20:12:38.99ということはやっぱりLGPLかぁ。
0090デフォルトの名無しさん
2012/10/17(水) 10:55:05.240091デフォルトの名無しさん
2012/10/17(水) 15:21:26.34LGPLなQt library部分は別パッケージでインストールされて、実行時に
アプリケーションから動的リンクされるよ
0092デフォルトの名無しさん
2012/10/17(水) 15:25:14.070093デフォルトの名無しさん
2012/10/17(水) 15:39:30.73Qtはデスクトップあっての物種だよ
Qt5でデスクトップでも将来性を示すのが最優先だろう
0094デフォルトの名無しさん
2012/10/17(水) 18:35:54.95cadとブラウザ、photoshopぐらいしか思い浮かばない
どこの市場でQtが採用される需要があるんだ?
スマホ対応されてやっと触ろうって気になる程度だよ
0095デフォルトの名無しさん
2012/10/17(水) 18:46:38.04おー、サンキュー!
ライセンスがクリアできるならちょっと挑戦してみようかな。
0096デフォルトの名無しさん
2012/10/17(水) 19:09:17.31実際に社会へ出てみると何処で使われているのか非常に悩ましい
0097デフォルトの名無しさん
2012/10/17(水) 19:27:40.11Mac使ってるのはWinに比べりゃ無視でくるほど少数のカルトの教徒しかいないし
LinuxやUnixをデスクトップで使ってるのなんて、それこそ中二病こじらせたようなのしかいないから
0098デフォルトの名無しさん
2012/10/17(水) 20:30:24.57お、おう…そうですね(棒)。
0099デフォルトの名無しさん
2012/10/17(水) 20:43:25.16まぁ、ジャンル自体がニッチなんだけどね。
0100デフォルトの名無しさん
2012/10/17(水) 20:47:05.21・組み込み
・リアルタイムlinux
・GUIが必要
って事でQt使う案件に少し関わった
ただ、その案件で何故この組み合わせになったのかは良く分からない
別にlinuxである必要は無かったし、リアルタイム性を活かす処理なんて無かった…
そこでwindowsへ移植でもするなら意味はあったんだろうな
0101デフォルトの名無しさん
2012/10/17(水) 21:18:43.83実際にQt採用してるソフトウェアも別の環境では別のフレームワーク使ってるのが多い
結局重要なのはどの環境に対応してるかじゃなくて個々の環境での性能でしょ
だからiOS/Androidに対応したところで、これまで培ってきたQt(デスクトップ)の評価は上がりも下がりもしないと思うんだ
もちろん既にQtに染まってる俺らには嬉しいことだけどね
■ このスレッドは過去ログ倉庫に格納されています