【RAD統合環境】 Qt 総合スレ 14 【Win/Mac/Linux】
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)
こっちは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/
Windows ユーザー向け Tips ・プロジェクトのパスに日本語を入れちゃダメ ・日本語のソースコードは、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。配布上の制限はない)
乙
スマホでQt動くってのはQMLだけ? だったらマジ糞だわ
Qt 5 マダー ちんちん
Qt 5のリリースはされるとしてもクリスマス前かな。
またKDEは非互換直すのに長い間グダグダになんのかな
実践本に QtConcurrent::run()で実行してるスレッドはシグナル/スロットが使えない って書いてあるんですけど、ホント? 少なくともシグナルのemitは出来たんだけど・・・
ほんと
デザインだけ使ってみようと思ったらインストールに10GB必要とか言われるし・・・ JavaScriptでうんたら言うけど配置しただけだとXMLがあるだけだからよう分からんが、 QMLのデザイナとコンパイラだけでいいんで1GB以下で配布してくれんかなと。
ソースを自分でビルドすればいいんじゃね
>>16 SDKだったらSymbianやシミュレータのような要らないのを外せば2G未満で、インストール時間も短くなる。
一般のHTMLデザイナが使えるならコンパイラだけでもいいんだけど、項目名は独自だよね。
Examples¥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:ドライブより多いやんけ。
大人しくエミュ関係削除します。
20 :
13 :2012/08/18(土) 21:51:16.09
>>15 自作の QObject 派生クラスで signal と slot を定義。
QueuedConnection で connect しておく。
QtConcurrent::run() に this とメソッドを渡して、そのメソッド内で emit。
slot がメインスレッドで実行される。
と、こんな感じ。
使い方あってますかね。。。
>>20 使い方あっている。そういうのはできる。
QtConcurrent自体がシグナルとスロットを使えるようになっていないということだよ。
明示的にQueuedConnectionでconnectしなくてよい。
emitされたときに別スレッドのオブジェクトのスロット呼び出しなら、QueuedConnectionになる。
22 :
19 :2012/08/19(日) 16:09:56.13
やっぱりエラーは変わらず出ます。 でも、他のは一応コンパイルできるので問題ないです。 コンパイルUIにJavaScriptが使えるという点はいいなと思ったんだけど、 QT5ではQMLっていうシンプルなやつがメインになるらしいですね。 JavaScriptは使えなくなるのかな? まあ、HTMLじゃなくXMLだから普通のHTMLエディタやブラウザで表示できないからあまり意味はなかったかも。 ネイティブ動作で軽いやつがよかったんだけど OpenGL必要条件にってのは残念。 まあ、OpenGLが使えないのはもうスクラップになる頃だし問題ないのかな。 バージョン確認したらまだQT4だったから先の話か。 最終のQT4は取っておいたほうがよさそう。
QWebViewで表示しているテキストをプログラム側から動的に編集させたいんですけど、 QWebViewにQTextCursorやQTextEdit::insertHTMLの代わりになるものってありますか?
>>22 JavaScriptが必須になる。
Qt4はQt5リリース後にいつもの倍の2年はサポートするとDigiaが発表していた。
>>23 DOM操作で編集、examples/webkitなどを。
QTextCursorやQTextEdit::insertHTMLはQtのリッチテキスト用なので、一般的なHTMLの編集には向かない。
26 :
20 :2012/08/21(火) 01:40:39.05
>>21 thx
しかし、あの文面からは
>QtConcurrent自体がシグナルとスロットを使えるようになっていないということだよ。
とは、読み取れんかった。。。
ねぇねぇ、qmlでFlickableとかやると怒られるの?
qmlって何? Flickableって何?
Qt 5 Betaが出たというのにこの盛り上がり!
PyQtとPySideって両方残っていくのか?
>>29 ついに来ましたか。でもVS用にビルドされたのはまだっぽいですね
頑張ってソースからビルドしてみます
ビルドがすんなり通ればなあ
4.8.3ももうすぐくるな またビルドか
>>29 QObject,QWidgetについては、びっくりするほどQt4と変化無いからな
>>29 Alphaだね。Betaと呼べるレベルじゃない。
>>34 ウィジェットにはいろいろ問題があって、安定したアプリは作れない。Qt 4と動作や描画結果が違っている。
ウィジェットがまともに使えるようになるのは、5.1からの予定。
そうですか 乗り換えはあと一年くらい見送りですね
個人的にはQt4ちっくな使い方もできる全く別のものと思ってる
>>36 ウィジェットアプリ乗り換えは、一年は待った方がいい。
>>37 小さいものやQt5でこれから作るものならそれでいい。
Qt4で作った大きなものをQt5にするのに困る。
Qt5にしないままだと半年も経てばバグ修正されなくなるし、機能追加と改良がされないので
陳腐化する。
QWidgetのデストラクタってなんでvirtual付いてないの?
>>39 基底クラスのQObjectのデストラクタがvirtualだから,QWidgetのデストラクタも
自動的にvirtualになる。
QWebViewがデッドキャッシュを解放してくれません。 以下のコードを実行すると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しても変化はありません。 この問題を解決する方法はありますでしょうか?
C++の駄目なところだよな。
QTとC#ってどっちがGUIアプリ作るの簡単?
44 :
デフォルトの名無しさん :2012/09/15(土) 20:01:49.32
Qt
>>41 デッドキャッシュと言っているのは具体的にどのインスタンス?
それを特定できて言っているかな?。人の性にしているけれどアプリのバグというのもあるのだよ。
テストしてみたけどこっちでも再現できたよ
47 :
デフォルトの名無しさん :2012/09/16(日) 22:15:55.58
ぶっちゃけ、デスクトップはQt、Web系はPerlが一番心くすぐるよね? もっといえば、MeeGoでタッチアプリも作れれば、最高だった。
>41 そのコードで確保されたメモリはQWebView::setHtmlを呼び出すと解放されるから、 そもそもremoveFromDocumentではデッドキャッシュにならないんじゃないか? ページの中身を編集しても、あくまでも同じページ扱いなんだろう しかし、QWebViewを削除しても解放されないのはちょっと困るな 削除する前に必ずsetHtmlか何かを呼び出さないといけないようだ 本家WebKitの方では修正されてるのかな?
それが仕様ならJavaScriptと相性悪そうだな
>>41 ,48
QWebViewをdeleteしたら解放されたよ
メンバ変数でQWebElementを保持してないか?
保持してるとQWebViewをdeleteしても非ナルのまま残るぞ
使い終わったポインタにはNULLを代入しておきなさいと専門の先生が逝ってた
グロ中尉
なんでだよw
>>48 ,50,52
レスありがとうございます。
リンク先のパッチを反映させてみたところ劇的に改善しましたが、まだ小さなゴミが残るようですね。
ただこれもsetHtmlを呼び出すときれいさっぱり消えるようですので、定期的にページをリフレッシュするようにします。
>>47 MeeGoは遅くて重くて使えるものではなかったよ。
57 :
デフォルトの名無しさん :2012/09/19(水) 14:37:33.57
質問なんですが、UbuntuソフトウェアセンターでインストールしたQtCreatorを使って開発した場合はLGPLライセンスを適用できると考えてもよろしいですか?
別に何のライセンスでもいいんでない?
QtCreatorでqmakeした実行ファイルをlddで見たら必要なライブラリ一覧がでるはずなんだけど 別のPCに実行ファイルを持っていってlddしたら動的実行ファイルではありませんって出て実行できない。 これってどういうこと? ライブラリの動的リンクができてないってこと?
60 :
59 :2012/09/20(木) 19:35:54.74
59だけど32bitで開発してたのを64bit環境に持って行ってたのが原因だった 初歩的なとこだった
いつのまにかQtの公式サイトがdigia仕様になってるし4.8.3も出てるじゃないか もうこのスレの住人はQtに興味ないのか
>61
Qt Projectの方にbookmarkしてるに1票
qglの質問はここでいいですか?
qgl って何ですか?
qglですよ
Qt OpenGLのことならここでしてもいいけど、 可能なら本家OpenGLのスレで聞いた方が回答は期待できると思うよ
68 :
デフォルトの名無しさん :2012/09/25(火) 19:28:46.12
質問です。QDialのプロパティでスタイルシートを設定して, QSliderと同様にハンドルを画像にしたり、 ダイアルの目盛の色を変更しようとしたのですが、背景色しかカスタマイズが無理でした。 そこでQCommonStyleをサブクラス化してカスタマイズし、setStyle()しようと思ったのですが、Qtのクラスをサブクラス化して 使用すると、自分が書いた部分のソースにもLGPLが適用されてソース公開義務が発生するという考えであってますでしょうか。 また、ソース公開が嫌な場合は、面倒ですが画像か、ペン・ブラシを使ってゴリゴリ書くしかないんでしょうか。(実は、スタイルシートで設定できるとか) LGPL版でQt SDK 1.2.1をWindows7 64bitで使ってます。よろしくお願いします。
QTimer使ってタイムアウトごとに交互に別のSLOTを呼ぶことはできますか? ウィジェットの背景を点滅させたいのですが。
70 :
デフォルトの名無しさん :2012/09/28(金) 15:01:21.15
QtでiOS用プログラムは開発できますか?
>>69 timerEventのなかで呼び分けろカス
Linux上のフレームワークでまともにリソースつっこんで開発継続してるのってAndroidくらい? Qt Extendedってこの先生き残れるの?
お前の言うフレームワークの意味が判らん
>70 QMLでならなんとか。正式サポートは、来年のQt 5.1。
>72 Qt Extendedはとっくになくなっている。その後継のMeeGoも瀕死状態。
QNetworkReply reply = manager->get(request); これでエラーが出るんですがどうすればいいですか?
managerはQNetworkAccessManagerです requestはQNetworkRequestでUrlを設定しています
エラーの内容を貼らないと誰も答えられない
× QNetworkReply reply = manager->get(request); ○ QNetworkReply *reply = manager->get(request);
3ヶ月前のだけどQt開発者のブログ記事ちょっと訳しときますお
全部翻訳するのは面倒なので要点だけ
■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インスタンスのライフタイムを監視する)
81 :
デフォルトの名無しさん :2012/10/15(月) 02:42:25.39
>・しかし去年の11月にある開発者が、QPointerの内部をQWeakPointerで実装しなおした なんだこれ
iOS/Androidで本当に動くようになるんだろうか心配だ
Androidアプリはネイティブで動くの? それとも仮想マシン上?
NDK使ってるから、ネイティブで動いているんだと思う
Necessitasはβ1になったばっかりだからやるならちょうどいいかもよ
ライセンスはどう? LGPLならAndroidの場合apkにパックされて配布されるから、LGPLに従ってソース公開しないとダメなのかな?
ありがとう。 ということはやっぱりLGPLかぁ。
ひとまずiOSに対応しないと始まらない
>>87 LGPLなQt library部分は別パッケージでインストールされて、実行時に
アプリケーションから動的リンクされるよ
iOSとAndroidへの対応が生命線だと思うんだが、なかなかだな…
モバイルへの対応は所詮客寄せパンダ Qtはデスクトップあっての物種だよ Qt5でデスクトップでも将来性を示すのが最優先だろう
デスクトップでQtを積極的に用いる必然性がない cadとブラウザ、photoshopぐらいしか思い浮かばない どこの市場でQtが採用される需要があるんだ? スマホ対応されてやっと触ろうって気になる程度だよ
>>91 おー、サンキュー!
ライセンスがクリアできるならちょっと挑戦してみようかな。
学生の頃はqtやc++がプロフェッショナルのための道具だと思っていたが、 実際に社会へ出てみると何処で使われているのか非常に悩ましい
デスクトップでクロスプラットフォームっていうのがそもそも微妙なんだよな Mac使ってるのはWinに比べりゃ無視でくるほど少数のカルトの教徒しかいないし LinuxやUnixをデスクトップで使ってるのなんて、それこそ中二病こじらせたようなのしかいないから
今度の私の仕事は、設計の面子にはLinuxで、オペレータにはWindowsでってことで、Qtになったよ。 まぁ、ジャンル自体がニッチなんだけどね。
かなり前の話しだが、 ・組み込み ・リアルタイムlinux ・GUIが必要 って事でQt使う案件に少し関わった ただ、その案件で何故この組み合わせになったのかは良く分からない 別にlinuxである必要は無かったし、リアルタイム性を活かす処理なんて無かった… そこでwindowsへ移植でもするなら意味はあったんだろうな
モバイルでもUNIXでも、クロスプラットフォームであること自体が判断基準になることってあんまり無いんだよね 実際にQt採用してるソフトウェアも別の環境では別のフレームワーク使ってるのが多い 結局重要なのはどの環境に対応してるかじゃなくて個々の環境での性能でしょ だからiOS/Androidに対応したところで、これまで培ってきたQt(デスクトップ)の評価は上がりも下がりもしないと思うんだ もちろん既にQtに染まってる俺らには嬉しいことだけどね
てか、昨今のスマホ事情はバッテリー足りねーからネイティブアプリ作れなんて クレームばっかなんだし、スマホでこそ、c++とqtの本領が発揮される場所じゃないんだろうか?
iOS/Android対応でもQMLだけだったら がっかりだよね
本流のQtとまぜこぜにされると、デスクトップがモバイルに引っ張られて ショボくなりそうでいやだけど、今みたいに別プロダクトになってるなら何も問題ないな
Necessitasの作者はQt5への移植には興味ないみたいなこと言ってたな 今のところQt4以外では考えていないと
iOSに対応してもダイナミックリンクできないから、ソース公開したくなければ
有料版になるね。値段はどれくらいだろう?
>>97 カルトと言われりゃそれまでだけど、俺みたいに自分で使うために作ったMac用の
ソフトのWin版を公開してる人間もいるから、MacエンジニアがWinユーザに貢献で
きるって利点もある。
>>106 > iOSに対応してもダイナミックリンクできないから、
iOS に対応すると何故ダイナミックリンクできなくなるの?
iOS ってダイナミックリンクサポートしてないの?
iOS SDK がダイナミックリンクに対応してないんじゃなかったかな?
そうそう、iOS用にビルドするには静的リンクして実行形式にするしかない んで、単純に考えればアプリはLGPLの派生物になって 配布するならユーザーにソース公開義務があると思うんだけど v2.1の範囲なら例外事項を満たせば大丈夫とか色々議論されてて結局よくわからん
Android版は、QtLibが別パッケージで、アプリケーションはそのライブラリの有無を確認して、 無ければライブラリーのインストールを促し、有れば動的リンクして実行という形式だから、 リバースエンジニアリング条項さえクリアできればライセンス的にはクリーン。 ただ、良くも悪くもGUIがデスクトップ版と同じだから、タッチパネルで使い易いとは言い難い。
つ「QML」
>>110 要求されるまでは公開しなくていい
大抵のユーザーはわざわざ公開要求しない
ウィルスが流行れば別かも知れない
へーiOSってそうなんだはじめて知った DLL Hell避けるためなのかな
115 :
デフォルトの名無しさん :2012/10/19(金) 17:41:59.10
いつになったら、企業はQtを採用してくれるにゃ?Qtで給料もらいたいわ。
>>110 派生物は、ソースを改変した場合を指す
ソース公開義務なし
>>110 >んで、単純に考えればアプリはLGPLの派生物になって
>配布するならユーザーにソース公開義務があると思うんだけど
違う。and/orだから、リンクに必要なバイナリとソースコードの両方、あるいはどちらかの公開義務がある。
WikipediaのLGPL翻訳は間違いではないが分かりやすく正確に翻訳していない。
原文をしっかり読もう。
LGPLはスタティックリンクでもソースの公開義務はない。 ただし、第三者がQt自体を変更して同じ実行ファイルを作成できなければいけない。 要するに要求があった場合はリンク直前のオブジェクトファイルを提出する必要はある。
>>115 受託だから詳細書けないけど、うちで Qt 使ってる案件あるぞ。
>>115 ウチも使ってるよ。計測器をPCから制御するアプリ。
121 :
デフォルトの名無しさん :2012/10/22(月) 11:21:40.72
QTreeView に QDirModel をセットしてソートするとめちゃくちゃ遅くなるんです たぶんネットワークドライブを見に行ってるのが原因のようなのです ソート時が特に遅いのですがソート時に限らなくても遅くなるきっかけがあります ネットワークドライブがツリー上にあってそれが隠れている間はなんともないのですが スクロール時にネットワークドライブが画面内に入ってきた瞬間にも固まります ツリーからネットワークドライブは削除せずに ソートやスクロール時に遅くならないようにする方法がありますか? OS は Windows 7 です
122 :
デフォルトの名無しさん :2012/10/22(月) 17:02:28.06
1.QThreadを使う 2.Windowsを窓から捨てる
ソート時はQSortFilterProxyModelでなんとかならんかな?
124 :
デフォルトの名無しさん :2012/10/22(月) 18:51:54.21
この行があると固まります // mModel->setSorting(QDir::DirsFirst | QDir::IgnoreCase | QDir::Name); コメントにすると速くなります (それでも「スクロール時にネットワークドライブが画面内に入ってきた瞬間にも固まります」の症状は残ります)
WindowsのQDirModel/QTreeViewは Explorerと同じコンポーネントが使われるな XPまではまともだったけど Vista/7でネットワークドライブのアクセスが糞になった >122 が正解
QString を std::string に変換したいんだけど?
QString::toStdString
馬鹿には無理
同意せざるを得ない
QPainter::begin: Paint device returned engine == 0, type: 1 これって何が原因ですか?
>>127 windowsだと落ちるぞ。
ascii()じゃないとダメだな。
installEventFilter()でトラップした先のイベントハンドラに、 MousePressは来るのにMouseMoveやMouseReleaseが来ない。 setMouseTracking()を呼んでも変化ないし、なんだろ。
OS は Windows 7 ソースは UTF-8 で保存 gcc でコンパイル QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); QString img_out_filename(trUtf8("%1/%2").arg("path_to_home").arg("日本語.png")); QImage img_jp(":/qrc/img_jp"); if(!img_jp.isNull()) img_jp.save(img_out_filename); hoge.qrc には <file alias="img_jp">日本語.png</file> (これも UTF-8 で保存) とやるとファイルが作成されて 中身はhoge.qrcで記述した日本語.pngの内容と同じものが正しく出力されるのですが ファイル名だけ文字化けします 文字化けした文字列はコードを見ると UTF-8 で出力されているようです たぶん img_jp.save(img_out_filename) のところで WindowsAPI に対して unicode で保存されず ベタに UTF-8 で保存されちゃってるのだと思いますが どう対処するのが正しいでしょう?
135 :
デフォルトの名無しさん :2012/10/26(金) 18:59:11.36
馬鹿には無理
QString img_out_filename(trUtf8("%1/%2").arg(trUtf8("path_to_home")).arg(trUtf8("日本語.png")));
>>136 出来ました
ありがとうございました
>135
知らないなら黙っててください
うざいだけです
>>134 そもそもソースがUTF-8なのに
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
なのがおかしいと思うんだが
へ?
QTextCodec::setCodecForCStrings()はconst char *(とQByteArrya)をQStringに変換する
Codecsを伝えるもの。
>>134 でいうと "日本語.png" がそれに相当する。
trは何のためにあるの?
trは文字通り翻訳(translation)の為 多国語化に使う
>130 GetWindowTextA とかで取得した文字列を QString にするときは、 QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); になってた方が良くないですか? そもそもソースが UTF-8 だと分かってるなら、 QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); で、 QString img_out_filename(tr("%1/%2").arg(tr"path_to_home").arg(tr"日本語.png")); が望ましいと思いますが。
Qtはマルチプラットフォームなtool kitなのでlocaleを適切に解釈し変換する クラスや関数があるのでそれを使うのが望ましいと思います。
>3 が何か変だね
QStringはwcharとmbcsが混在できてしまうのが問題なんだよな
VC++でコンパイルするとソースがUTF8でもShiftJISで埋め込まれたりしてちょっと混乱するわ 正直、翻訳使わないならワイド文字列使った方が面倒がない気が wstring cnv(const QString& s) { return s.toStdWString(); } QString cnv(const wstring& s) { return QString::fromStdWString(s); } QString img_out_filename(cnv(L"%1/%2").arg(cnv(L"path_to_home")).arg(cnv(L"日本語.png"))); 関係ないけど、今までQt Creatorのデバッガは文字列の日本語が全部エスケープされてうざいと思ってんだが 右クリックメニューから「表示フォーマットを変更」→「すべての文字を・・・」で普通に日本語表示されるんだね
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); //ソースの文字コードを直接指定("utf-8"や"Shift-JIS") QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //翻訳用マクロ tr()の文字コード そもそもこの2つが毎回同じもの"utf-8"(ソースの文字コード)を設定するのであれば、 2つに分かれている理由はなんなんでしょうか? 別の設定をする可能性があるから分かれているということであれば、 そのようなケースの具体例はどういう時でしょうか?
>>148 CStringsとTrのCodecが分かれてるのは歴史的経緯じゃなかったかな?
Qt5では、この二つが廃止されてDefaultCodecに統一されるらしい。
>147 >VC++でコンパイルするとソースがUTF8でもShiftJISで埋め込まれたりしてちょっと混乱するわ マジですか。 昔VCでQt使ってみて挫折してgccにしたらうまくいったので、 それ以来ずっとgccだったんですが、VCに戻そうかな。 っていうかgccとVCでそれぞれコンパイルするときに、 ソースのエンコードをいちいち替えないといけないって、 なんか不便だよね。 VCでUTF-8だとBOM付けなきゃいけないみたいだし、 gccでSJISオプションにして全ソースSJISにしたら、 何か負けた気分になる。
いやさ それだと何の問題があるんだよ お前の相手してると疲れるんだよ
>>144 QString QString::fromAscii ( const char * str, int size = -1 ) [static]
Returns a QString initialized with the first size characters from the string str.
If size is -1 (default), it is taken to be qstrlen(str).
Note that, despite the name, this function actually uses the codec defined by
QTextCodec::setCodecForCStrings() to convert str to Unicode.
Depending on the codec, it may not accept valid US-ASCII (ANSI X3.4-1986) input.
If no codec has been set, this function does the same as fromLatin1().
See also toAscii(), fromLatin1(), fromUtf8(), and fromLocal8Bit().
これ見る限りソースが UTF-8 で書かれているからと言って
QTextCodec::setCodecForCStrings()
で
QTextCodec::codecForName("utf-8")
しちゃうのはまずいんじゃないかな
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
が望ましいというより必須じゃないかな
そこはfromLocal8Bitだろ常考
さあ混乱してまいりました。
C++11が普及してu8文字列使えるようになるまでの我慢ですあと5年くらい
移植性を考えてプログラムするならcstringsのcodecはソースコードのcodecにするしかないと思う
>>150 gccよりVC++の方が断然コンパイル速いから戻すのお勧め
特にjom有効で8コアCPUとかでビルドすると本家VSで1分かかるコードが10秒かからなくて
混乱して念のためリビルドかけたりするのもよくあること
Windows msvc版とLinux gcc版共用のアプリをいくつか作ってるけど、バグったことは無いなぁ。 ソースコードは古いgccでも対応できるようにShift-JISにしてる。 # 古いgccはBOMを解釈しないから
たしかに全部SJISにしとけばバグらないかもね
QThread を継承した自分のクラスから SIGNAL を emit しても問題ないですか?
GUIアプリ作りたくてQTはじめたけど、どういう勉強法したらいいかわからん。
入門Qt4プログラミングのサンプルコードが、QThreadをサブクラス化して処理を追加するようになってるのが良くないね あれで誤解している人も結構いそう
関数内でQThread::currentThreadId()を呼び出してスレッドID表示してみればどのスレッドでその関数が実行されてるかわかるよ
168 :
デフォルトの名無しさん :2012/10/29(月) 07:47:36.96
>>166 サンプルコードはよいコードだよ。
QThreadをサブクラス化して処理を追加するのが向いている場合もあれば、moveToThread()が向いている場合もある。
>168 具体的にはそれぞれどんな場合でしょうか? ここを見ろというリンクとかありますか?
>>169 マルチスレッドの基本的なことを勉強し直せ
使い方もわからず技術だけ覚えても意味ないぞ
>QThreadをサブクラス化して処理を追加するのが向いている場合もあれば、moveToThread()が向いている場合もある。 つべこべ言わず具体的な例を言ってください
172 :
デフォルトの名無しさん :2012/10/29(月) 09:49:03.51
>>170 自分が判らないからと言って相手も判らないと思い込み
論を語る基地害ってどこから湧いてくるんだろうな
QThreadをサブクラス化して処理を追加する方法というのは、 メインスレッドとの signal/slot 通信はどうするんだ? 通信するんであれば、moveToThread()で自分自身を自分のスレッドに 移さないといけない。それが美しくないので、QObject 派生クラスを作って 別スレッドにmoveToThread()した方がいいと言うんじゃないのか?
シグナル・スロット通信に関係なく、moveToThred()していない、CThread派生クラスオブジェクトの メソッドを単にコールするとメインスレッドのコンテキストで実行されるので、 結局moveToThred()するのは必須
run部分に処理を全部書けば、moveToThred()しなくてもいいけどな
>>163 > ここに書かれていることは一般的な感覚(みんながよくやる方法)と
> 違うことを推奨しているのですが本当なのでしょうか?
おまえの言う「一般的な感覚(みんながよくやる方法)」とは
具体的にはどんな方法なんだ?
おとりこみ中のところすみません。 qDebug() で改行させない方法はどうするのでしょうか?
小便臭いガキが沸いてるな くだらない質問する前にQTreadのソース読めよカス
QFuture使ってる人少ないのかな? マルチスレッドの用途によるけど、すごい簡単で使いやすいよ
181 :
180 :2012/10/29(月) 10:24:09.39
失礼w QtConcurrentというべきだた
183 :
133 :2012/10/29(月) 11:44:33.47
>133はinstallEventFilter()で委譲するオブジェクトがQGraphicsViewだったのが原因だった模様。 そのViewに紐付けているQGraphicsSceneのinstallEventFilter()を呼んで解決しましたとさ。 エンコーディングの問題はめんどくさいなぁ。取り敢えず、ファイル名の仕様をascii限定にしておくか。
馬鹿には無理
・「みんなの意見」「他の人もそう思ってる」など、自分の意見なのに他人もそう思ってると力説する人 他人が自分とは違うという事実が受け入れられない人です。自分の意見が通らないとコピペや荒らしなど 無茶をし始めるので見かけたら放置してください。 ・根拠もなく、他人を見下したり、差別したりする人、自分で自分を褒める人 他人を見下すことで自分を慰めようとする人です。実生活で他人に褒めてもらう機会がないが プライドだけは高いとか、匿名の掲示板しか話し相手のいない人です。可哀想なので放置してください。 ・自分の感情だけ書く人 「〜〜がムカツク」とか自分の感情を掲示板に書くことに意味があると思っている人です。 何がどのようにムカツクのか論理的に書いてあれば、他人が読んでも意味のある文章になりますが、 そういった論理的思考の出来ない人です。もうちょっと賢くなるまでは放置してあげてください。
このスレでの「馬鹿には無理」は 「ごめんね、馬鹿な僕には返答が無理なので誰かよろしく」って意味なんだが
おまいら野良ブログ見てコピペばかりしてると 技術は身に付いても知識は身に付かないぞ
188 :
176 :2012/10/29(月) 15:01:43.20
>180 そこはdoWorkは使ってるがrunは使ってないぞ.
>技術は身に付いても知識は身に付かないぞ そういうひとはそれでいいんじゃないの? 技術は何かを成し得るが知識そのものは何事をも成し得ない。
>>188 だからソース嫁って
ここはお前の学習帳か?
>>188 もちつけ
http://doc.qt.digia.com/4.7/qobject.html#moveToThread void QObject::moveToThread ( QThread * targetThread )
Changes the thread affinity for this object and its children.
The object cannot be moved if it has a parent. Event processing will continue in the targetThread.
To move an object to the main thread, use QApplication::instance() to retrieve a pointer to the current application,
and then use QApplication::thread() to retrieve the thread in which the application lives. For example:
myObject->moveToThread(QApplication::instance()->thread());
If targetThread is zero, all event processing for this object and its children stops.
Note that all active timers for the object will be reset.
The timers are first stopped in the current thread and restarted (with the same interval) in the targetThread.
As a result, constantly moving an object between threads can postpone timer events indefinitely.
A QEvent::ThreadChange event is sent to this object just before the thread affinity is changed.
You can handle this event to perform any special processing.
Note that any new events that are posted to this object will be handled in the targetThread.
Warning: This function is not thread-safe; the current thread must be same as the current thread affinity.
In other words, this function can only "push" an object from the current thread to another thread,
it cannot "pull" an object from any arbitrary thread to the current thread.
See also thread().
>
http://vivi.dyndns.org/tech/Qt/QThread.html > 長時間処理を行う場合、QThread 派生クラスを定義し、そこで処理をするのではなく、
> 処理を行う QObject 派生クラスを定義し、moveToThread() により
> 実行コンテキストを別スレッドに移すようにするのが本筋だぞ。
間違いではないが、QThreadの派生クラスを定義してはいけない訳ではない。
問題の本質は、run()(実質exec())以外の場所で長時間ループするために、
本来のイベントループ(exec())が実行出来なくなってしまうこと。
あるいは、QObjectの派生クラスを定義することで、run()(exec())自体がないこと。
要するに、QThreadを継承して、run()以外の場所でSLOTを定義すれば良いだけのこと。
俗に言う無能な働き者ってやつか。 ゆっくり寝て頭冷やせ。
二度と起きないでくれ。
別スレッドのコンテキストで実行されるというのと イベント処理が別スレッドで行われるというのを 読み違えてる気がするな
>>121 QDirModelはobsoleteになってるよ。
QFileSystemModelを使った方が良いよ。
>>171 >つべこべ言わず具体的な例を言ってください
君はスレッドを使うべきでない程度の技術力しかないということを言い切っている。
>>172 >自分が判らないからと言って相手も判らないと思い込み
>論を語る基地害ってどこから湧いてくるんだろうな
>>170 の言っていることは正しい、マルチスレッドが分かっていれば、
>>173 のようにそれが美しくないというようないい加減なことは言わない。
>>174 >メソッドを単にコールするとメインスレッドのコンテキストで実行されるので、
>結局moveToThred()するのは必須
違う、moveToThread()はどのQThreadのイベントループでイベントを受けるようにするというだけで、
コンテキストで実行されるというのではない。
>>176 >QThread を継承したクラス側のコンストラクタで
>moveToThread(this); すれば綺麗なコードになると思います。
奇麗かどうかではない。moteToThread()をコンストラクタで呼ぶというのは、何をしているか分かっているのか。
>これを読んで、QThreadをstart()して、QObjectをmoveToThread()するのが正しく、 で問題なさそうです
moveToThread()を呼べば正しいのではない。
こんな程度の理解歯科で機内ら那波、スレッドを使ってはいけない。
Threading Basics
http://doc.qt.digia.com/qt/thread-basics.html#qobject-and-threads Most QThread methods are the thread's control interface and are meant to be called from the old thread.
Do not move this interface to the newly created thread using moveToThread();
i.e., calling moveToThread(this) is regarded as bad practice.
void QObject::moveToThread ( QThread * targetThread ) Changes the thread affinity for this object and its children. The object cannot be moved if it has a parent. Event processing will continue in the targetThread. これで決定じゃね?
>>194 >要するに、QThreadを継承して、run()以外の場所でSLOTを定義すれば良いだけのこと。
これやってみたらうまくいきました
ありがとうございました
http://vivi.dyndns.org/tech/Qt/QThread.html m_myThread = new MyThread;
m_myThread->moveToThread(m_myThread); // 所有権を m_myThread スレッドに移動
connect(m_doWorkButton, SIGNAL(clicked()), m_myThread, SLOT(doWork()));
m_myThread->start();
このひとは何でこんな書き方したのかな?
211 :
163 :2012/10/29(月) 21:00:16.87
1. subclass QThread 2. add signals and slots to do work 3. test code, see that the slots aren’t called “from the right thread” 4. ask google, find moveToThread(this); and comments that “it seems to work when I add this” ←今ココ ですね 解脱まであと少しです
基本がわかってないんだろ だからひたすらアホみたいな書き込みし続けてあげく逆ギレ ガキは4bitのマシン語から勉強し直せ
qmlのことも聞いていい? workerscriptで通信を別スレッドにしたんだけど QtCreatorから起動してウィンドウの×で終わらせると ウィンドウ自体は居なくなるんだけど タイミングに寄るのか、QtCreatorでは終了したことになってないことが多い QtCreatorから終了させてあげると確実に終了する ×できっちり終わらせるにはどうすればいいんだろう? Qt4.8.2 WinXP です。
結論が出ていないから同じネタが出る度に同じ人たちが同じ主張を繰り返して無限ループする
過去ログ見てたかと一瞬思った…
全然詳しくないし勉強中なんだけど、
QObjectをmoveToThreadするのは、ボスワーカーモデル?みたいなのには便利なのかなと思いました
で、せっかく
>>213 で新しい話題になったけど、
QML使ったこと無いから反応できない…
コード無いしなあ
>>213 再現する最小限のコードを貼るとか、QtCreatorからではなくほかから起動するとどうなるか試すとか、
自分で動かんとレスはつかんよ。
わろた〜〜〜〜 >Qt Japan(@qtjapan) >Qt Labs Japan の中断に伴い、この Tweet も冬眠します。しばらくは、@qtproject @QtCommercial にて Qt の最新情報をフォローしてください。 #qtjp
ワロタ、ワロタ...
DigiaにはNokia時代みたく日本語でQtの情報発信できる社員いんのかな
NokiaのQt関連の社員はTrolltech社から移動した人だったけど Digiaには受け入れるだけの余裕は無いだろうしな。 日本ではSRAがどれだけフォローしてくれるか。
SさんはDigiaに移るってツイートしてたような記憶がある
>>Digia が Nokia より Qt の全事業を買収しました ノキアとは一切関わりなくなったってこと?
Nokiaが社長兼CEOにマイクロソフトの副社長を迎えた時から終りが始まってた
>>220 OSSなGUIツール扱う層はマニュアルレベルの英語ぐらい難なく読めるだろ
ノキアに買収されたおかげLGPLになったことは喜ばしい ノキアの功績はそこ
Windowsの場合、QtとMFCではどちらのほうが実行速度が速いですか?
何をしたいか知らないけど 大差ないと思うよ
229 :
227 :2012/11/03(土) 16:50:19.88
>>226 NokiaがQtを潰した。
LGPLで喜んでいるのはタダで使えると思っている乞食。タダで使えるのは裏があるのだよ。
LGPLにしたのはNokiaがQtを利用するためで、Qtを広めようと言っていたのは嘘っぱちだったのは明らかだよね。
要らなくなったらさっさと切り捨てているだけさ。
まあ自分で何も出来ない奴にはそうなんだろうな。
自分になら何でも出来るなんて万能感は、大体、中学生ぐらいまでにしとくべき
「何も出来ない」の反対が「何でも出来る」とか、中学以前の知識の人には かける言葉もありませんわ (w
234 :
デフォルトの名無しさん :2012/11/04(日) 10:10:31.17
将来性だけで終わっていく人間は多いからな。俺やおまえのように・・・
235 :
デフォルトの名無しさん :2012/11/04(日) 10:41:37.95
とうりかかったので QtのWebKitって、今後、更新頻度どんなかんじになりそう? 正直まったく追ってなかったんだが、 Safari for Windows がどうもディスコンになりそうな感じの中、 そういやQtからもWebKit呼んでたなと Qtに関する知識は、trolltechの頃にちょっとさわって、以後遠巻きに見ていた程度 テンプレにあるとおり、近頃採用例はわりとみかけるようになったね。とは思ってる
更新頻度は今まで通りだと思うよ WebKit2のこともあるし止まっちゃうことはなさそうだけど、 本家WebKitに合わせてゴリゴリ更新するようになんてことはなさそう
QtのWebKitといえばソースに何故か一か所だけマルチバイト文字が紛れ込んでて 修正忘れるとVisualStudioのビルドでコケるのが地味にうざい
QTreeView に QFileSystemModel をセットして setRootPath() するとめちゃくちゃ遅くなるんです ネットワークドライブを見に行ってるのが原因なのです ツリーからネットワークドライブは削除せずに 遅くならないようにする方法がありますか? OS は Windows 7 です
246 :
デフォルトの名無しさん :2012/11/07(水) 12:50:17.63
>244 ありがとうございます! あとで試してみます!!
test
Qt Creator派?VS addin派?
QtCreator派
VS addin に一票
なんでVisual Studio使ってるの? 今作ってるのちっちゃなだからCreatorでやっとる
>>247 どのような理由でそうなっているかを考えずに、無駄に時間を費やしているだけだ。
まあまあ フレームワークに上手く乗れないとハマることもある その都度あなたが無駄にならないように教えてあげれば良い
完成度の高いライブラリって、アーキテクチャ考えずに使いたくなるよね あるいは、自分の仮定してる内部設計にあわせて無理してみたり 自分が詰まるところは、他人も詰まるところだから、けっこう明快な解決があるんだが、 「探してみるか」に賭けられないというか。
>>255 耳が痛い・・・w
Qt一応使ってるけど、肝のメタオブジェクトシステムをしっかり説明できる自信ない
まだこれこれやったらこれできる、ってレベル
なので、moc関連やドキュメント見て説明できるように勉強しようと思ってたとこ
詰まるところに関しては2通りあるって感じる。
1つは、その通り他人も詰まるところで、検索して解決法が分かる
もう1つは検索しても出ないことで、この場合は大抵自分の設計がおかしかったり…
過疎スレ認定わろす
このスレ見てるのかw おーい(^o^)ノ
>>243 詳しくも何も、普通にソースをビルドした時にエラーで止まるよ。
どのソースだよってことだな
>>260 横から失礼
たぶん webkit の DefaultLocalizationStrategy.cpp
にある全角のダブルクオーテーションじゃないですか?
4.8.3 や 5.x系では分からないですが、4.8.2をビルドするときに上記を直した気がします
>>249 C++やるなら普通VisualStudio
あとQtのUIくらいぽとぺたせずにコードで書けよ
263 :
デフォルトの名無しさん :2012/11/10(土) 13:05:59.97
正直、VisualBasic6.0以前(要するにVB.NETでない)とHTMLと同じくらいの 感覚でC++をでき、ネイティブでクロスプラットホームなexeファイルを作成できるんだから、 Oracleでも買ってくれりゃいいのに・・ Javaよりも良いAndroid開発ができますぜ?
264 :
デフォルトの名無しさん :2012/11/10(土) 13:07:15.78
Googleも自分の会社の言語がないんだから、Qt買ってくれりゃいいのに。
265 :
デフォルトの名無しさん :2012/11/10(土) 13:08:20.70
TTDCからオファーが来たけど、働きたいけど無理っぽい。オファーくれた 人の良さそうなつるっぱげの専務の人、すみません・・ オファーが北だけでも光栄です。
>>262 mocやuicの設定方法が分かりません!
馬鹿には、無理。
>>261 4.8.1、4.8.2、4.8.3でも描き直しが必要。
つまり治っていないという事だな。
英語圏の連中にとってはどうでもいいことだからな。
馬鹿って無駄なことに労力使うよね UIなんてデザイナで作ったほうが圧倒的に早いのに
無駄な時間とコストの使い方でも本人が幸せならいいんじゃね
U r too foolish to do it.
以前からいるんだよな、このスレに。 俺は手書きのほうが早いからデザイナなんかいらない、デザイナなんか馬鹿の使うもの って上から目線ドヤ顔で言うヤツ。
デザイナは一見簡単そうでも、慣れないと意外と難しいからなあ MainWindowにコネクトできねーとか悩んだ時期が僕にもありました
QtCreatorのデバッグ中にブレイクポイントが追加できなくて困ってたんだけど 治せたからメモっとくわ 環境 64bit版Windowsで、VC++をツールチェインに指定して32bitアプリをビルド 原因 64bit版CDBが使われていて32bitアプリが正しくデバッグできない状態らしい デバッガログに↓のように表示される Debugger: C:\Program Files\Debugging Tools for Windows (x64)\cdb.exe 対策 32bit版CDBを使うように設定すれば治る。以下の手順。 ・32bit版CDBのパスを確認(多分↓) C:\Program Files (x86)\Debugging Tools for Windows (x86)\cdb.exe ・Qt Creatorのオプション→ツールチェインを開く ・使用中のツールチェインをクローンする ・「ここにWindowsコンソールデバッガの実行ファイル(64bitバージョン)のパスを...」の欄に 32bit版CDBのパスを入れてOKボタン。括弧内の注意書きの意図は分からんが無視する ・「プロジェクト」タブを開いて、デバッグビルド設定のツールチェインを変更 「管理」ボタンを押さないと変更できない時があるので注意
ブレークポイントと言えば、catch節にブレークポイント設定できないのは 何とかならんのか...
>>275 試してみたがほんとだな。例外使わんから知らんかった
__debugbreak(); 入れたら止まったからとりあえず入れとけば?
277 :
デフォルトの名無しさん :2012/11/10(土) 21:11:11.90
わしのちんこもキュキュットしてぇなぁ(;´д`)
>>276 そんな手があるのか。知らなかった。サンクス。
macで非lionフルスクリーン実行中、画面端にカーソルを持って行くと メニューバーとDockが表示されるようにしたいのですがどうすればいいでしょうか? cooViewerという画像ビューアで同じことが出来ます
いつになったらiOS対応するんですか?
ソースがutf-8でもVC++でコンパイルしたら文字化けするのか
>>281 来年の終わり。QtをNokiaに売り渡したTrolltechの経営者が対応を遅らせた。経営者失格。
Bom を付ければ大丈夫だったと思う
BOM付けるだけじゃだめだろ Codecも正しく指定されてないといけない
β2どうなの
おもしろい、しかし使い物にはならない。
杉田HAAAANNN!!!
セントラルウィンドウ内でいろいろウィジェット使う場合それぞれ関数作ったほうがいいのかな?
ノキアやべえじゃんとか思ってたらいつの間にかQt売却済みだったのねw 日本語ページとかもなくなっちゃったのね
日本語ページって必要か?
yeah, we need that
MSDNほどの翻訳のひどさはないから、 ないよりは有った方が良いな。
Qt5、よくなると必至にアピールしている。百人以上も雇われている開発者が減って、今迄になく品質劣化が甚だしい。
多ければ良いというもんでもない 少数精鋭なら結構
そのスレタイが悪意ある誘導だから別に問題ないよ
「Android OSの断片化に加担しないように」ってことなので、Qt は問題なさげ
>>296 少数精鋭でできないほどに体制劣化している。
Qtにたいして何の貢献もできない口だけの無価値な人間が何をえらそうに
>>301 偉そうな君はどのようなことをしたのかな。
Nokiaが自社の製品のためにTrollechを買収して、用なしとなったら放り出すような身勝手なことをして、 Qtをだめにしたというのが現実なんだよ。
Qtは色々惜しいんだよな
Nokia叩きの人に触っちゃだめだよ 荒らしと思って放置するのが一番 幸い周囲に溶け込めない子だからすぐ慣れるよ
なあQt5いつでるん?
詣で照る
まあ、Qtで金儲けてるんなら口だけじゃなくて見返りぐらいしろよってこと
儲からなかったから売り飛ばしたんだろ
いかれてぶっとんだ思考回路が見てて面白い
311 :
デフォルトの名無しさん :2012/11/19(月) 08:43:09.61
>304 kwsk
>>307 Beta 2じゃないですか!やだー!!
俺もQtは何かかゆいところに手が届かない感がある 正規表現とかodbc2とかcharset判定とか、 issuesで数年放置されてるのもあるし ベースが使いやすいだけに非常に惜しい
人員削減された上、QMLなんてゴミに資源を割いているからもう駄目ぽ
文字コードまわりの実装は相当あほなことになってるでござる
Qt終了か
QtのほかはGtk位しか思いつかんけどほかに以降先何かあるかね
wxWidgetsはそれなりに使える
質問なんだけど、C++の標準ライブラリよりQtで用意された関数使ったほうがいいのかな?
用途目的によりけりだろ 自分で判断できないならQtのクラス使っとけばいいんじゃね
mocなしでも使えるようにして欲しいな
>>317 現状Qt代替できるレベルの無料フレームワークはない気がするよ
細かいとこはぐずぐずだが、総合的にはQt使うのが楽なことが多い
I love Qt. QMLは除く
>「つまり、これまでJavaScriptとHTML 5でWebアプリケーションを開発してきた方が、 >ネイティブ・アプリと同じ機能を備えたアプリを開発できるのです。Windowsランタイム >の実行速度はどの言語からアクセスした場合でも同じなので、性能の面でも >ネイティブ・アプリに引けを取りません」
今までWebアプリケーションを開発してきた方は これからもWebアプリケーションを開発するよ
※ネイティブと同じ機能を実装するためにはネイティブ言語でQt用のプラグインを書く必要があります
C++で直接アプリケーションを作るのではなく QML?用の拡張機能を作ってQML?でプログラムを作るとかなんとか
>>324 WinRTがストアアプリという檻の中じゃなく、従来のデスクトップ上で
WPFと同等のGUIフレームワークと共に提供されていれば
Qtからの乗り換えも正直考えたかもしれないのに…
Windowsストア アプリでは、別のアプリが起動されると、 それまで起動していたアプリの処理が一時中断されます。 これはマシンがバッテリーで駆動しているときに余計な CPUリソースやネットワーク・リソースを消費しないようにするためです。
WPFって流行ってんのか? Formのほうが主流だと思うんだが
前 Qt is dead と WPF is dead を検索してみたけど後者のほうが多かった
WPFってどこで使われてるんだろうな。 個人でも企業でもデモ的なものしか見たこと無いぞ
最近のだとGitHub for WindowsとかIntelグラフィックのコンパネとかUDKとか 知らんうちに使ってたりすることは割とある 「あれなんか起動がもっさりだな」というアプリがあったらそれは怪しい 少し前にはEvernoteのクライアントアプリがWPFを止めて大きな改善を見せ、好評を博した
WPFはXP切るつもりじゃないと使いにくいんじゃないの WPF on XPって本当にただ重いだけのゴミ
フォルダーのアイコンとか使いたいんだけどQT側で用意されてないの?
ある夜
アイコンのパスおしえてくり〜
images
デモのアイコンしかないけど
今現在、デスクトップ向け(Windows 64bit offline, Linux 64bit offline)オープンソース版のQt SDKって、どこからダウンロードできるんでしょうか。 Qt Project -> 1.Get Started -> SDK Downloadを見ても分からなかったので、教えて頂けると助かります。
342 :
340 :2012/11/24(土) 14:31:25.10
>>341 ありがとうございます。.勉強になりました。
あ、勘違いか 忘れて下さい
( ̄| ̄ ̄ ̄ ̄ ̄ ̄) \_|_____○/ / //ノノノ人ヽ ヽ | / -‐' 'ー-' \ヽ | || (●), 、(●:ヽ / | ,,ノ(、_, )ヽ、,, | あーさーくーらー \ .`ニニ´ .:::/ /`ー‐--‐‐ー´´\
Qt5に今までどおりのLGPL版が出るのか気になっているんですが この件について何かアナウンスされてますか?
347 :
デフォルトの名無しさん :2012/11/24(土) 19:58:40.46
QTreeWidgetについて聞きたいんだけど、例えばこういうツリーがあったとして、 SubItemがクリックされた時だけスロットを呼ぶことってできる? QTreeWidgetのシグナルにitemClicked()があったから使えると思ったけど、これだと Itemがクリックした時もスロットが呼ばれるんだよね。 分かる人いたら教えてください。 ▼Item SubItem SubItem ▼Item SubItem SubItem
itemClicked()の中でSubItemがクリックされたか判定して SubItemがクリックされてたならシグナルを吐けばいいじゃん
349 :
デフォルトの名無しさん :2012/11/24(土) 21:31:55.07
おことわりします
おなしゃす!
受け取ったitemのparentがrootかどうか確認すればいい
QTreeWidget はまだ使ったこと無いけど、
http://doc.qt.digia.com/qt/qtreewidgetitem.html を見る限り末端ノードを判定するのは無さそう?
>>352 の言うように、末端ノードの条件を満たしているかで判断する他に、
SubItem を作る時にコンストラクタ QTreeWidgetItem( int type = Type ) で 引数を QTreeWidgetItem::UserType+1(数字は任意)
みたいにするのはどうだろ?
それで、スロットの中の item->type() で SubItem かどうかを判断する感じで
>>354 本筋と関係ないけど
・L15: QTreeWidgetItem *itemをメンバ変数にした方がいいと思う
(AddItemとAddSubItemの実装が微妙…コード片だから?)
・pro.userは消してアップした方が良いと思う
356 :
デフォルトの名無しさん :2012/11/25(日) 01:40:45.58
>>355 アドバイス有難うございます。
>>・L15: QTreeWidgetItem *itemをメンバ変数にした方がいいと思う
for文の前にあるやつでしょうか?
C++もQtもやり始めて日が浅いので綺麗な実装方法がよくわからんのです・・・
なんか参考になるサイトあったら教えて欲しいです。
>>・pro.userは消してアップした方が良いと思う
え・・・なにかまずかったでしょうか?
>>356 pro.userの中身見たこと無いの?
>>358 ありがとうございます。すごく参考になります!
pro.userは以後気をつけます。
元の実装の方がいいと思います。 あと、もしやりたいことがこれだけだったなら、AddItemは不要です。 AddSubItemの第一引数にinvisibleRootItemを指定してやってください。
>>360 すいませんイマイチ理解できません・・・
出来ればコードを・・・
馬鹿には無理
363 :
358 :2012/11/25(日) 22:30:46.05
364 :
デフォルトの名無しさん :2012/11/25(日) 23:13:47.49
>>363 ありがとうございます!
invisibleRootItemで非表示のルートアイテムが返されるってことは
QTreeWidgetはデフォでルートアイテムを持ってるって認識でいいのかな・・・?
365 :
デフォルトの名無しさん :2012/11/29(木) 19:42:26.29
だれか、Mac版でOpenGL3.2 Core Profile使えた人いる? 4.8.3で試したんだけど、ダメだった……。 QGLFormat fmt; fmt.setProfile(QGLFormat::CoreProfile); fmt.setVersion(3,2); fmt.setSampleBuffers(true); fmt.setSamples(4); QGLFormat::setDefaultFormat(fmt); とかしてQGLWidgetに渡したんだが……ダメ。まだサポートされてないのかな?
Macわからんけどグラボは対応してるんだよね?GREW併用したらどうかな
367 :
デフォルトの名無しさん :2012/11/30(金) 08:00:41.41
>>366 コメありがとう。グラボは対応してます。
GLEWじゃないんだけど、現在gl3wというライブラリを使ってトライ中。
苦戦してます……orz
368 :
デフォルトの名無しさん :2012/12/02(日) 02:05:13.64
QMainWindowのセントラルウィジェットに複数ウィジェットを登録したい時って、 複数ウィジェットをまとめたクラスを新たに作って setCentralWidget(まとめたクラス); みたいにやるのが普通ですかね?
ほいほいほー
>>368 単にウィジェットをたくさん置きたいって話ならわざわざクラス作らないで
Vertical/Horizontal Layout使う人が多いんじゃないかな
>>370 ありがとうございます。
しかし、QMainWindowのコンストラクタで
QHBoxLayout *layout = new QHBoxLayout(this);
とすると
QLayout: Attempting to add QLayout "" to MainWindow "", which already has a layout
と言われうまくいきませんでした。
>>370 続き
なのでQtCreaterが吐くフォームのヘッダファイルを見て参考にしました。
QWidget *widget = new QWidget(this);
QHBoxLayout *layout = new QHBoxLayout(widget);
layout->addWidget(ウィジェット1);
layout->addWidget(ウィジェット2);
setCentralWidget(widget);
みたいにやるといいみたいです。
解決したってことでいいのかな あとはレイアウトを入れ子にしたりスペーサとサイズポリシーの使い方に慣れれば 配置がかなり工夫できるようになるよ まあデザイナ使った方が楽だと思う
>>373 なんかデザイナってちょっとした物を作るときに使うものってイメージなんだけど
どうなんだろ
逆だと思うけど?
逆だと思うねえ スタイルシートとか凝りだすとデザイナで確認できなきゃきついと思う
そうそう、ウィンドウリサイズのときにどこが伸びるか調整するのはデザイナで確認できないとしんどい。
379 :
デフォルトの名無しさん :2012/12/02(日) 19:08:26.42
デザイナ使ってGUI作ったんだけど、どうやってファイル分割したらいいのかわからん・・ 前はウィジェットごとにファイル作って、そこに関数とか書いてたんだけど。 プロジェクト.cppに関数とか全部書いていいの?
>>379 長くても気にならないなら別にいいと思うけど
新規作成でQt Designerフォームクラス選んでウィジェットMyFormクラスとかを作っておいて
メインウインドウのデザイナにWidgetを置いた後MyFormに格上げしたら多分慣れたやり方になると思う
>>379 > 前はウィジェットごとにファイル作って、そこに関数とか書いてたんだけど。
ウィジットごとっつーか、フォームごとにするのが普通だと思うけど。
ウィジットをサブクラス化する場合は別として。
Qt Designerじゃなくて素直にQt Creator使えば?
>>380-381 フォームごとが一般的なのか、ありがとう。
こういう一般的なやり方?とか調べてもあまりないから助かりますm(__)m
QTreeWidgetItemについて教えて下さい。 下ツリー構造のような、ルートA、B複数の親(index)がある場合 ├ルートA │ ├─A │ │ └─A │ └─B │... ├─A │... └─B ★ └ルートB ... ├─A ... └─B ★の場所のQTreeWidgetItemからルートAの配下のデータか ルートB配下のデータかを簡単に判別する方法はありますでしょうか? →QTreeWidgetItem.parent() で親のQTreeWidgetItemまでたどらないと駄目でしょうか?
あらかじめアイテムにsetDataしておくとか
あの・・・もしかしてDigiaのQt SDKって有料ですか? nokiaの時は無料で落とせたと思うのですが
無料
え、でも Please fill out the information below, so you can receive your 30-day free evaluation and start developing with Qt. って書いてあるんだけど qt.digia.com/Try-Qt-Now/Qt-commercial-evaluation/?platform=windows-cpp
>>390 あ、やっぱこれしかないのね。ありがとう
馬鹿には無理
>>386 ありがとうございます。setDataで考えてみます。
出来なくなってからその都度聞くんじゃなくて ドキュメント読んで何が出来るかの目星を付けて作っていく方がいいと思います
397 :
デフォルトの名無しさん :2012/12/08(土) 04:41:35.95
5.0RC1出たねー。
でたねー んで、出来はどうなの?
399 :
デフォルトの名無しさん :2012/12/08(土) 21:22:00.68
iOS用Qtが次期バージョンに向けて開発中で、 開発版が既に使えるようになってるけど 試してみた人居る?
アポーはObjective-cでの開発しか認めてないんじゃないの? C++からObjective-cに翻訳される?
C++併用できるよobjectivec++でぐぐるといいよ
併用できるけど結局めんどくさいよ
403 :
デフォルトの名無しさん :2012/12/09(日) 16:48:25.70
最初からC系統での開発は認められてる 最近になってC系統以外の制限もなくなった
404 :
デフォルトの名無しさん :2012/12/09(日) 16:51:26.82
>>401 別にC++のオブジェクトコードとObjective-Cのオブジェクトコードを
リンクするだけで十分だけどな
先日のRC2に特に問題なければ、今年中に正式版になるらしいな そしたら久しぶりに触ってみるか
GTK+って息してんの?
むしろC++が息してない
Qt libraries 4.8.4 for Windows (minGW)をインストールしてQt 4.8.4 (Build DebugLibraries)を実行したのですが、 mingw32-make: *** No rule to make target 'src_tools_idc-sub_Debug', needed by 'sub-activeqt-sub_Debug'. と表示されます。 どうしたら良いのでしょうか・・・?
馬には無理 諦メロン
まあそう堅いこと言うな こんな糞レスでも連続書き込みアク禁の解除には役に立っている
何が足りませんよって親切にメッセージ出してるのに、馬の耳に念仏ってこのことだな
ヒヒーン
そうやって情報を共有しないから海外に仕事取られていくんだよクソジジイども
かと言って 408の解決法があったとしても 役に立ちそうもない
ググるのが仕事だと思ってるゆとりはまだマシなほうで、 掲示板で聞くしか脳の無い馬鹿とかマジで死んで欲しいわ なんで自分で解決出来ないの? ソース読めないの?英語理解出来ないの?
ぐだぐだ文句だけ言うお前や俺が死んだほうがいいんじゃね?
うっせーな いままでNokiaのQt SDK使ってたから環境構築のやり方がわかんねーんだよks 一応NokiaにQt SDK残ってるみたいだけど古いし、今後アップデート無さそうだし。 DigiaのQt SDKは有料だし 死ね つかググってわからんかったから聞いてんだろボケが エラーメッセージはわかるが解決法が分かんねーんだよ糞が死ね
そのレベルじゃC++は無理なんでHTMLとJavaScriptでもやっててください
ていうかお前らそんな事言うなら今後一切ネットで質問するなよ?
いいからおもしろいことを書けよてめーら 仲間割れしてる暇があったらボケろ
>>419 そのレベルの問題も解決できないお前には向いてるだろうね
親切になにか書く雰囲気じゃなさそうだな この過疎スレにしては珍しい
ボケと言ったら天丼という容易な風潮はやめろ
QtでPhononVideoPlayerを使用する際、URLから読み込むとシークが効かないのですが、シークさせる方法はありますでしょうか? 一度ファイルをダウンロードしてから再生するなどの方法が必要でしょうか? ローカルファイルでシークできるのは確認済みです
相手がseekできなきゃseekなんて出来るわけないだろクズ
GETする位置を自前で調整するとかかな
遅くなりました。
>>428 です
>>429 ,
>>430 レスありがとうございます
VLCのようにシークバーを動かすとその地点から新たにバッファを始め、再生できればなーと思っていたのですが
調整する方法が載っているサイト、もしくはPhononVideoPlayer以外に可能なものはないですか?
対象ファイルが.3gp で環境はUbuntu12.04です
mp4コンテナなら フレームの開始時間とか デコードすべきデータが先頭から何バイト目から何バイト目までに格納されてるとか そんな感じの情報が入ってるんじゃないかな
VLCってオプソだし、コード見てみたら? 俺も気になるから後で調べて見よ
サーバがレジューム可能な設定になってれば、途中からGETできるんじゃないかな
436 :
デフォルトの名無しさん :2012/12/20(木) 07:48:48.38
クリスマスプレゼントありがとう 一方Rubyは・・・
あれ? 有料のしかないの?
thx!
youtubeビューアは動画見られないしbrowserは落ちるし挫けそう
5に手を出すのは5.1くらいからが良い?
いずれ手を出すつもりなら待たずにさっさと手を出した方がいい 手を出すか迷ってる人は待った方がいいかもしれないね
443 :
デフォルトの名無しさん :2012/12/22(土) 10:26:49.01
Qt libraries 5.0.0 for Windows (VS 2010 406 MB) をインストールしたら、 ビルドターゲットに Necessitas (Android for Qt) が選択出来たので、大喜びしたのだが、 ビルドしてみると、コンパイラが設定されてないというエラーが出た。 ツール>オプション>ビルドと実行>キット を見ると、たしかにアンドロイド用コンパイラが設定されてない。 で、キットの設定を行うにはどうしたらいいのでしょうか?
馬鹿には無理
設定されてないなら設定すればいいだろカス コンパイラすら自分で用意できないの?
Makefileすら書けないウンコでもIDE使えば一人前のプログラマ気取りだからな最近は
結果が出せれば一人前だよ 手段はどうでもいい
いい加減なもん作られて尻拭いさせられるんですねわかります
癖でCmakeしか使ってない
一人前のプログラマはビルドができましぇ〜ん、なんて泣きついてこないぞ
それ結果出せてないってことじゃん
世の中には俺よりもクズがたくさん居るんだナ〜と思いました
老害共しね
ゆとりが暴れてると思ったら そうかもう冬休みか
もうこの流れはいいよ
456 :
デフォルトの名無しさん :2012/12/24(月) 17:59:25.62
qtcreatorのデザイナでqtabwidgetを選択すると勝手にtab1とtab2がついてくるんだけど、こいつらどうやって消すんだ? いろいろ試したけどわからん。 ui->tabwidget->clear()するしかないかな?
オブジェクト右クリック→xページ中のyページ目→削除
今までQt4使ってたんだけどQt5を試しに入れてみたら デザイナからWebviewなくなってるんだがこれなんか設定しなきゃならんの?
「入門QT4プログラミング」の4ページに QLabelオブジェクトをdeleteしていない点に注意してください。このサンプルのように※小さなアプリケーションでは、 この程度のメモリリークはさほど問題にはなりません。 というのも、プログラムが終了すると、その時点でOSが自動的にメモリを開放してくれるのです。 って書いてあるんだが、これ本当なの? ソースコード int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel *label = new QLabel("Hello QT"); label->show(); return app.exec(); }
win32の場合で純粋にメモリだけの話しであればプロセス空間 そのものが無くなるから必ずしも嘘では無い
"これ"って何をさしている? メモリーリークなのかアプリ終了時に解放されることなのか まあどっちにしろ本当だ
464 :
461 :2012/12/26(水) 01:13:01.18
あ、ごめんメモリリークを勘違いしてたみたい。 メモリリークってプログラム実行状態で起こる現象なのか プロセスが終了してもメモリが開放されないことだと思ってた
プロセスが終了してもプロセスが使ってたメモリが開放されないとしたら、それはOSのバグだろ
bug ではなく仕様です、というがかつてあって、今もトラウマ
int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel label("Hello QT"); label.show(); return app.exec(); } これじゃ駄目なんか? 入門書でdelete放置を薦めるとは
メモリリークはさほど問題にはなりません。 はウソ プログラムが終了すると、その時点でOSが自動的にメモリを開放 は本当
>>467 問題ない。アプリ終了時にOSが全てのメモリを解放する。
>>461 の場合 label のデストラクタはコールされずに終わってしまう。app はそこまで面倒見てはくれない。
newでない生成(スタック上に生成)ならブロック(この場合はmainブロック)を抜ける前にデストラクタが自動的にコールされる。(C++言語仕様)
トップレベルWidgetがエディタアプリ画面で、デストラクタで自動保存とかやってたら等々...
最終的にメモリ解放されるならそれでOKとは限らないケースはいくらでもある。
mainブロックでの delete放置は後々問題の元になるので止めた方がよい。
>>470 その通りだね。
それとは別に,QObjectの派生クラスでコンストラクタの引数に親のQObject*を指定して生成した
場合はまた話が違ってくる。親が破棄されれば自動的に破棄される仕組みになってるので明示的に
deleteしなくていい。
この辺の違いをちゃんと認識している必要があると思う。
トップレベルWidgetはmainスタック上に生成か、newなら後でちゃんとdeleteする事 子Widget場合、その破壊は親Widgetの管轄になるので、スタック上に生成するべきではない
>親が破棄されれば自動的に破棄される仕組みになってるので明示的にdeleteしなくていい。 むしろ、自分でdeleteしてはいけない。 くらいに思っておかないと。
>>474 Raspberry Piってニッチすぎる質問だな・・・
X11で日本語フォント使えるならQtでも漢字使えるんじゃないの?
とりあえず↓やってみたら?
$ sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese
>>470 デストラクタにセーブとかみたいに確実に終わらない処理を書かせること自体はナンセンスだ。
誰かがexitを呼んでmainがreturnしないかもしれないから、そういうのは終了イベントか、atexitに書かないと駄目だね。
Qt5でQTextCodec::setCodecForCStrings()が無いみたいなんですが代わりになるようなもの無いですか?
478 :
デフォルトの名無しさん :2012/12/28(金) 04:30:12.40
無いです
マジかYO!?
じゃあ文字化けどうするんですか?
よく分からんけどUTF-8使えよってことじゃないの?
UTF-8でもだめだった、BOM付きでもダメ QString::fromLocal8bit();使ったらちゃんと表示された
483 :
デフォルトの名無しさん :2013/01/01(火) 14:25:58.05
fromLocal8bit() はいらない。BOM なし UTF-8 で表示されるよ。
484 :
デフォルトの名無しさん :2013/01/01(火) 14:50:15.92
BOM 付き UTF-8 でも表示された。
485 :
482 :2013/01/01(火) 15:41:54.65
>>483-484 環境はなんですか?
自分はQt5とVC++なのですが文字化けしちゃいます
486 :
デフォルトの名無しさん :2013/01/01(火) 16:25:27.44
馬鹿には無理
488 :
デフォルトの名無しさん :2013/01/01(火) 17:06:58.95
>>488 いや、ちゃんと
>>147 のレスにも目を通してるんだが。
結局こういうのやらんと無理なん?
バカは死ぬまで SJIS 使ってろ
>>489 んにゃ、wstring使うかはともかく、VC++の場合は文字列はSJISエンコーディングになるから
fromLocal8bitで表示できるんだろうし、特におかしくないんじゃないかなってことね
setCodecForCStrings() の代わりがあるかは
Qt5に手を出してないし帰省中だしでちょっとわかんないわすまん
492 :
デフォルトの名無しさん :2013/01/01(火) 20:17:47.41
493 :
デフォルトの名無しさん :2013/01/01(火) 21:22:09.00
>>485 英語Windowsにすれば表示されるはずだが、ASCIIにして翻訳した方がいい。
VC++2005から日本語WindowsではコンパイルするとSJISになってしまうという仕様になった。
コンパイラへのオプションで変えることはできない。
>>491 setCodecForCStrings()の代わりはない。
494 :
デフォルトの名無しさん :2013/01/01(火) 22:09:49.15
横から質問だけど、SJISで表現出来ない文字が含まれていたらどうなりますか?
>> 493 >VC++2005から日本語WindowsではコンパイルするとSJISになってしまうという仕様になった。 へ?
496 :
デフォルトの名無しさん :2013/01/02(水) 09:25:42.01
>>495 ソースコードで"UTF-8"と書いてコンパイルするとバイナリは"SJIS"になってしまうということだよ。
英語Windowsでコンパイルすればバイナリは"UTF-8"のままで"SJIS"への変換はされない。
497 :
デフォルトの名無しさん :2013/01/02(水) 09:26:34.40
MSのVC++のダメ仕様。
ダメというかキチガイ仕様
まあ、今時入出力のコードぐらい指定できるようにしろよとは思うわな。
エディタじゃなくてコンパイラレベルで変換されるの?
>>500 そうだよ。
gcc でも -finput-charset と -fexec-charset で変換することが出来る。
VC++ の凶悪なところは、,勝手に UTF-8 ⇒ SJIS に変換してしまうところ。
#define UNICODE
wchar_tじゃだめなの?
今後はこれでやろうと思う QtextCodec *codec = QtextCodex::codecForLocale(); QString str = codec->toUnicode("日本語");
反論ははっきり書いた方がいい
MeeGo→Ubuntu
初歩的な質問でしたらすみません。 PushButtonの上にカーソルが乗った(MouseHover)時に処理をしたいのですが、どのように書けばいいんでしょうか? MouseHoverのSignalが無いようなのでボタンのRectで判別しようとしたのですが レイアウトに入れてるせいかx,y値が0のままになってしまい使えませんでした
>>508 setMouseTracking(true) してるの?
>>509 >>510 ありがとうございました。求めていた処理ができました
書き忘れてたのですがデザイナだったので大変助かりました
MouseTrackingは変更済みだったのですが、肝心のボタン上のカーソルを取得する方法がわからず・・
デザイナで選択できるシグナルの種類が増えればもっと楽でいいですね
proファイルってBOM付きだとエラー出るのかよ・・・
Windows7+MingGWでQt Creatorの2.4.1を使ってるが コンパイルしたexeで日本語の"ソ"を正しく表示するにはどこを設定したらいいんだ? プロジェクトの辺りに見当たらない
ごめんなさい。 setWindowTitle ( QString::fromLocal8Bit("ソフトウェアのタイトル") ); ここからfromLocal8Bit()を取り除いたら上手くいきました。 ありがとうございます。
てかQt5が来たのになんでこんなに盛り上がってないんだ? Wikipediaでも日本語での最新版は4.8.3のままだし
Qt4愛用者にとっては特別嬉しいことがないからね Qt5が成功すれば新規が増えて盛り上がっていくんじゃないかな
519 :
デフォルトの名無しさん :2013/01/07(月) 19:34:46.69
Qt5.1あたりが出て、英語でもいいから書籍が出たりすれば 盛り上がるかも。
Ubuntu phone キター Qt5でアプリ作って公開出来るで
KDE5マダー
522 :
デフォルトの名無しさん :2013/01/10(木) 10:59:26.35
Windowsメインで Macも対応する(Linuxは必須ではない) ソフトの内容はグラフィックツール Boostや C++0xの機能もある程度使いたい 使い慣れたVisualStudio使うのが希望なんだけど 実際に開発された方、Win Mac用の開発に どの環境がオススメとかありますか?
wxWidgets
AdobeCS2祭やQt製アプリのFireAlpacaがある今 どうしてそんなことをしたいのだ まあFireAlpacaの作者に聞いてみたら?経験者だろうし
525 :
デフォルトの名無しさん :2013/01/10(木) 14:40:17.73
>>524 OpenGL使った3Dのツールなんだ。
ゲーム制作に使うユーティリティーで 独自仕様になる
(マップ作ったり当たり判定入れたりの)
WinとMacがメンバーにいるので両対応させたい。
LGPLで開発しようと思ってて VisualStudioプラグイン使えるとか使えないとか・・・?
誤爆?
527 :
デフォルトの名無しさん :2013/01/10(木) 14:42:19.05
どうして馬鹿はいつも情報小出しにするのはなぜ?
どんな情報を出せば必要十分かを判断できないから
このスレに来た以上、Qt以外の選択肢はなかろうものを。 取り敢えず、WinのQtCreatorで作ったOpenGLアプリを Linuxで動かせることは確認済み。Macは現在Qtインストール中w
530 :
デフォルトの名無しさん :2013/01/10(木) 15:38:43.52
>>529 そう Qtにする予定だけど WinMac両対応するのに
VisualStudioで作って簡単にMACに移植できるのか
QtCreatorで作るべきなのか
そういうのを聞きたかった
他人の話を聞いてどんどんどんどん最初に言ったこととは違う「実は」が出てくる
Cmake使えよ
>>530 Qtだから、開発環境がなんでっても、コード自体は共通化できるはず。
でもVisual StudioとXCode(Macの標準開発環境)両方でプロジェクトメンテするのは、
プロジェクト規模が大きくなってくるとちょっとめんどいから、
Qt Creator使えばいいんじゃないかな。
Qt Creatorって使い方簡単だし、覚えるの難しくないよ。
>VisualStudioで作って簡単にMACに移植できるのか >QtCreatorで作るべきなのか >そういうのを聞きたかった 最初からそう聞けば良いと思うの
535 :
529 :2013/01/10(木) 18:26:46.47
おーし、Macでも無事QtCreateでビルドできたよ。 準備がちょっと面倒だった。
こういうのは小出ししてるんじゃなくて、自分でもよく分かってないんだよ 分からないところが分からないから自分で問題を解決できない だから人から色々ヒントを貰って次第に何が分からなかったのかが分かってきて、「実は」と切り出してくる 一番たちが悪いのは分からないところが分からないことを分かってないタイプで、 このタイプは手取り足取り問題を解決してやっても、最後の回答以外は全部的外れの馬鹿回答だと思ってる
なにこれ
538 :
デフォルトの名無しさん :2013/01/10(木) 18:51:31.29
ちらしは日記の裏で
チラシ裏返したら知らん人の日記が書いてあるとか面白すぎる
えっと 馬鹿には無理 こうですか? わかりません
解る人だけレスしてください。うざいだけです。
相手が分かってないことを分かってないのだと分からせるのが、コミュ力の高い人
意地悪しないで、質問来たら答えてあげりゃいいじゃん。 まぁ、質問者も礼儀は必要だけど。
そうは言っても礼儀正しければ何やっても許されると思ってる訳じゃないだろう やっていいことと悪いことの境界が人によって違うだけ 問題の本質を見極めてから出直して来いって人も居るさ
馬鹿は有害
>>543 >意地悪しないで、質問来たら答えてあげりゃいいじゃん。
>まぁ、質問者も礼儀は必要だけど。
その手の質問者は「そんな答えは求めてない」とか言い出すからなぁ。
はてなとかに入り浸ってるとそういう感性になってくるよな あそこは質問者のほうが立場上だから
eNprdGhEhnH6XMi8RgcFfQj71L1t6+FS Cvr6jXc0G/c3BgLhfriwvl5No4NejUJz LpIZQVwwPY0OQOkaBSBnDlRujgKYC4ZQ ZfoKYGVzkkEcDYX4xjnxmo0OzXUKU/L6 1jadbDo7bfP0uVwwA8FqG4MgjH01YAMa A7kgNND1LQtgroC6Kb4xDiyr1BiAAjP1 9JpzFQBRXmeP
タイーホ
>>550 遠隔操作ウイルスの指令コード in base64
かもしれない。
553 :
552 :2013/01/12(土) 23:39:28.05
に見せかけたただの荒らし 同じようなのがあちこちに貼られている
だれかデコードプリーズ こっちは現在もしもしなんでできん
base64で16進デコード。意味のある内容なのかは知らね 78da6b7468448671fa5cc8bc4607057d 08fbd4bd6debe1520afafa8d77341bf7 370602e17eb8b0be5e4da3835e8d4273 2e9219415c303d8d0e40e91a0520670e 546e8e02980b865065fa0a6065739241 1c0d85f8c639f19a8d0ecd750a53f2fa d6369d6c3a3b6df3f4b95c3003c16a1b 83208c7d3560031a03b92034d0f52d0b 60ae80ba29be310e2cabd418800233f5 f49a731500515e678f
どうせ暗号化されてんだろ。
P2Pのファイルハッシュか何かじゃね
558 :
デフォルトの名無しさん :2013/01/13(日) 11:39:09.81
いつまでスレ違いやってんだボケが
>>553 の言う通りじゃまいか
78daでぐぐると色々出て来るな。
zlibで展開するとしょうもないAA
561 :
デフォルトの名無しさん :2013/01/16(水) 18:44:12.90
ubuntuphoneが念願のQtスマホだな
どのみち、QMLみたいなjavascriptの親戚でUI弄るんだろ
アプリ終了時にiniファイルにgeometryを書き込んで、起動時にsetgeometryで復元してるのですが、 ウィンドウを最大化して終了して再起動すると、ウィンドウの上の部分がちょっとずれます。 解決方法があったら教えて下さい。
うちはならんな
俺の環境だけかな? ・・・
566 :
デフォルトの名無しさん :2013/01/18(金) 19:32:35.88
ならぬことはならぬものです
GUI環境によりけりじゃね?
環境に寄るだろうね うちはWin7だけどそうなる 原因は一部の環境ではウィンドウを最大化するとウィンドウのposが負値になるから ユーザが最大化したまま終了したなら、ちゃんと最大化した状態で再起動してあげましょう
趣味でGUIを作りたてqtの勉強を始めようと思うんですが WindowsのGUIアプリを作るのにはJavaScriptの知識が必須なんでしょうか?
JavaScriptの知識があっても良いし無くても良い Qtやりたいならもちろん無関係
573 :
デフォルトの名無しさん :2013/01/21(月) 09:05:13.83
日本語で ok
Qtのコード自体を修正して使うって良くあるの? 組込向けで少し気になる挙動があったから、ちょこっといじる事になった
改変したら公開しないといけないんじゃないっけ
さすがに商用版っしょ
web業界が普及すると組み込み辺りは何だか修羅道に見える
580 :
デフォルトの名無しさん :2013/01/23(水) 05:12:04.12
>>577 見覚えある
TypeScriptがモドキじゃなく本来の意味で型安全になったら使いたい
ダウンキャストやRTTI使ったら、c++だって安全じゃないだろ
>>580 結局現在のJavaScriptに変換されるなら、モドキの域を抜け出すのって無理そうだよね。
JavaScript自体が完全な型安全に進化しないかぎり。
質問です。 VirtualScrollBarを使用した状態で、アイテムが30行あるQTableWidgetを配置したとき、 常に10行分だけ表示範囲領域に表示する、というふうにするには どうすればよろしいでしょうか。 setResizeModeと何かを組み合わせればなんとかなる???のか…?
>>577 これすげえな、実用レベルになるまで時間かかりそうだけども
ネイティブコード吐くから意味があるのに こんなことしてパフォーマンス落として 何が嬉しいの
作ったネイティブアプリがボタン一発でブラウザでも動くようになるなら 俺は普通に嬉しいけど
なんで? ネイティブで動いてんのに
>>583 VirtualScrollBarが何のことか分からんけど、
Widgetの大きさを指定したいならQWidget::setFixedSizeがオススメ
大きさは変えずに指定した10行だけ表示させたいならQTableView::setRowHiddenが便利
最近のJavaScriptは、しっかりチューニングすればネイティブ並の速度が出せますし。ブラウザのレンダリングが追いつかないけど
>最近のJavaScriptは、しっかりチューニングすればネイティブ並の速度が出せますし はいはい、お馬鹿さん 自分の無知をさらけ出さなくていいよ
>>590 いやいや、せいぜい数十分の1がせいぜいだろ。
それでもスクリプト言語としては十分速いとは思うけどね。
>>592 単純な計算処理なら2〜3倍だぞ。
実際にC++とjavascriptで同じコード書いて確かめた。
ちなみにV8だけど、想像以上に速いよ。
確かにV8は爆速だねV8は でも世界中のみんながチョロメ使ってるとでも思ってるの? 火狐やIE()の方がシェア高い
で?
すいません質問です。 QString str;に "test (100)"という文字列が入っているのですが"(100)"の部分を削除するために str.remove(QRegularExpression("\(.*\)"));というコードを書いたのですがうまくいきません。 Qtで"(100)"にマッチする正規表現のパターンはどう書けばいいのでしょうか?
QRegularExpression("\\(.*\\)") QRegExpのドキュメントを一度じっくり読もう
>>595 そこまで言ったら何が言いたいかわかるでしょアスペでない限り
みんなが高速なブラウザ使ってるわけじゃないから
一部のブラウザでネイティブに近い速さでWeb版Qtが動いたとしても大部分のブラウザではそうでないから普及の観点からいうとあまり意味ない
ブラウザで動作する場合の問題は速度よりサンドボックスだろ JavaScriptベースだと制限多すぎる
Webアプリケーションから砂場の外をいじりたくなることってある?
>>599 ブラウザの競争上、JavaScriptエンジンの高速化は至上命題だから、
解決は時間の問題だとも思うけどね。
こっちにもいるな
>>601 最初からWebアプリとして作ってたらあまりないけど
ネイティブの移植ってことだとありすぎるんじゃないかなあ
ネイティブを移植ってどこへ?
>>603 本来の質問とこっちで質問したほうがいいかという質問両方スルーされたからこっちで聞いたのだが
まぁあっちのスレで質問取下げなかったのも悪かったけど
>>607 がたがた言い訳する前に、「質問を取り下げずにすまん」位のことは言えないのかな?
つーか、高々半時間も待てないなんて早漏でどうするんだよ。
>>608 お前何様だよwww
なんで質問スルーしてマルチマルチ言ってるだけの馬鹿に謝らなくちゃいけないんだよwww
また面倒なやつが紛れ込んできたな……。
ここまで漏れの自演
正規表現が作れない上にヘルプも読めない馬鹿がなんか言ってるな。
そういやQMLってV8 coreになったんだっけ?
V8だろうが遅いものは遅い C++の10分の1程度の速度しか出ないよ 最適化オプションつけ忘れたんだろ
>>588 用途によっては、ウェブ上でデプロイできると楽
さらにウエブ上で動作させたあと、ボタン一発でクライアントのネイティブアプリに戻してDLできればもっと楽
いまだにネイティブ云々言ってる奴は技術者としては終わってる
みんなそう言うんだよ…そしていつのまにかはしごを外されて消えていく
誰でも使えるオープンソース使ってたんじゃ誰でも作れるもんしかできねえ
必要であれば使う それ以上でもそれ以下でもない
車輪の再発明すら出来ない奴が偉そうだなw なにか新しいモノ産み出したことあるのか?
安全で小さくて速いのがいいのだ。そういうのにカネをだす
新しいバグを日々作り出しています
624 :
デフォルトの名無しさん :2013/01/26(土) 21:35:47.98
創造性のない奴にはオープンソースを活用するのは無理。
おぷそに求められてるのは、既存商用製品のコピーの類似度を上げて、それをタダでばらまくことだから イノベーションとかまったく不要だよ。創造はプロプライエタリなものを作ってる連中がやる。
プロプラのコピーなんか氷山の一角
一般的に一般人はプロプラのコピーかP2Pクライアントしか使わない
628 :
デフォルトの名無しさん :2013/01/27(日) 09:12:24.07
zipもいまは久美子済だしな
cppcheckで自分のプログラムのソースコードを調べたら、 QListのiteratorでポストインクリメントではなくプリインクリメントを使った方が効率的と言われたんだが 大抵、前の値がコピーされて、少し余分なコードが追加されるとも言われた そんな違うの?
うん
どれくらい?
前の値をコピーして、少し余分なコードを実行する分
>>629 C++についての基本的な知識が欠けていると思われます
ここで質問する前にもう少し自分で勉強しましょう
>>632 STLでもソースを読むとそんな感じになってたわ。
>>629 程度は重要じゃないでしょ
重要なのは、言語レベルにおいて、プリは必ずポストより効率的にできると言う事実でしょ
どちらでも選べるなら、わざわざ不利かもしれない方を選択する必要はないわけで
程度は重要だよ? 充分に小さいなら、わざわざ考慮する必要がない。
グダグダ言わずにコンパイラから吐き出されるオブジェクトコード読んでみれば?
>>636 そう、程度なんて考える必要がないの
同程度の手間で、同程度の記法で書けるるんだから、わざわざ不利な方を選ぶ必要ないでしょ
それは非最適化だよ
程度を考える必要があるのは、トレードオフがある場合のみな
++i の書き方しかしねーわ。後置する場面なんてほとんどないし まあC++って言語名が失敗だったよね++C言語にするべきだった
641 :
デフォルトの名無しさん :2013/01/27(日) 20:04:15.87
C+1
必ず前置しておけば何も気にすることは無い 使い分けなど不要
意味がちがうやん
普通に必要に応じて i++ と ++i 使い分けるだけ。 中でも、副作用だけ必要なら ++i の方が前の値を保存する必要がないから効率が よくなる可能性があると言うだけのことだろ。 今時のコンパイラでそんな最適化もしないような奴があるかどうかは知らないけど。
オーバーロードされてる場合は勝手に後置を前置に変えたりしないよw
Effective C++すら読んでない奴がQt使ってるとか… 世も末だな
>>644 使い分けが必要な状況は無くした方がいいな
インクリメント/デクリメントは常に単独で使う
こすれば前置だけ使えばいい
値をインクリメントしつつ前の値をコピーして返して欲しいときにポストインクリメントより綺麗なコードはない 機能さえちゃんと理解していればそんな危険な代物じゃないよ
おっけーおっけー スタイル議論になりそうだからこの辺にしとこーぜ
こんな基礎的なことでスタイルとか言わんでくれ
>>649 綺麗に見えるけど、オーバーロード時には複製が行われる
>>652 その複製が必要な時はって話だろう
ちなみに一応誤解が無いように補足しとくと、
QList::iteratorの後置は値のコピーじゃなくてポインタのコピーしかしません
Qtはそんな残念設計じゃないから安心してね
Qtかどうかで細かく前置後置を切り替えるとかありえなーい
>>649 そんな当たり前の事は誰も議論してないだろ
>>615 もちろん最適化オプションつけてだよ。
単純な計算処理っていってんだから試してみればいいだろ。
QListをiteratorで使わなければいい indexベースのAPIでiteratorは互換性の為に付けてるにすぎない 前置後置以前にQListはiteratorよりdirect indexのほうが速い
indexにしたってインクリメントはするわけだが 前置か後置かの話をしてるのに…
インデックスの前置後置は最適化されるだろ イテレータは無理だが って話だよ
まあどちらにしろ前置を使えば何も気にする必要ないじゃんって話だけどな なんで頑に前置を使いたくないんだろう?
>>660 FAだな
前後どちらでも良い文脈なら、
反射運動で前置
まあ、後置の方が、多くの場合において直感的な気がするがな 慣れるまで前置は若干違和感がある気もする いずれにせよ、慣れの問題だな
単項演算子はむしろ前置の方が普通では? マイナスにしろsizeofにしろnewにしろdeleteにしろキャスト演算子にしろ
>>663 そうなんだが、+=1 の糖衣構文って考えちゃうと、後置の方が違和感無くね?
えっ?
>>660 俺には頑に後置を使いたくない人達が居るように思えるんだが。
使い分ければいいという当たり前の話が出ているのに、何故前置を使えばいいという結論にしたがるのか。
とりあえず○○を使っておけばいいって発想は、結局別の問題を引き起こすのがオチだろう。
あ〜、分かった〜 本当は後置を使うのが怖いんでしょ〜?
668 :
デフォルトの名無しさん :2013/01/29(火) 18:42:08.88
Qtはじめて触るんだが 5.0 LGPL使おうと思ってる 開発環境が色々あって ちょっと悩んでる。 出来れば Win&Macでどちらでも開発出来るようにしたいが 不可能ならMacで開発できるようにしたい 開発環境それぞれ メリットデメリット教えてほしい Qt-eclipse使えば Win&Mac出来るとおもったが メンテされてない? QtCreatorは使いにくそう? Win版インストールしたが キットが無いと怒られた←調査中 VS pluginは ちゃんと動いたが Macで(rt XCODE pluginあるの? よろしくおねがいします。
エディタ使えばどんな環境でもいけるよ。
671 :
デフォルトの名無しさん :2013/01/29(火) 22:01:35.05
PCゲームのGUIコンフィグソフトにQt使ってみたいんだけど、 ゲームの方までGPL適用になる? コンフィグソフトはどうでもいいからオープンソースでいいんだけど ↓こんな感じで同梱 game.exe (config.iniを読み込む) config.exe (config.iniを書き出す)
スタティックリンクだったらなっちゃう
ならないよ
商用ライセンス勧めろや 開発が安定してみんなハッピーだろ?
1ライセンス1開発者1プラットフォームで1400ユーロぐらいかかるって話もあるし、 企業じゃなければ難しいだろ。
個人開発者向けの安め設定プランとかあれば買うのに。
Qt5 Windows インストール出来た人おらん? どうやったら 64ビット使えるの?
みんなチャレンジャーだなぁ... 俺は当分4.8でいいや。5じゃなきゃならない理由は特に無いな。 4.8はまだバグFixリリースが予定されてるみたいだし。 最低でも一年くらい経って安定してからでもよさそう。
普通にインスコしてそのまま使えるけど
>>681 ダウンロードサイトで 32ビット版しかなかったんだが・・
いや64ビットでも動くから
>>662 値が必要なときは、後置の方が多いからじゃね?
条件判定する時は前置が多い
>>679 整理して質問して〜ね
(1) OSは32bit版か64bit版か
(2) Qtライブラリは32bit版か64bit版か
(3) Qt Creator は32bit版か64bit版か
(4) ビルドしたいのは32bitアプリか64bitアプリか
687 :
679 :2013/01/30(水) 02:10:47.96
>>686 テンプレさんくす
1、OSはWin7 64ビット & VisualStudio2010
2、Qtライブラリは 32ビット版しかDLサイトになかった
3、QtCreatorは、VisualStudioで動くなら使わない予定
4、ビルドしたいのは 32ビット、64ビット 両方。
とりあえず 32ビット版のライブラリってかいてたが、64ビットでもコンパイル出来てるきがする
64bit版のQtライブラリは自分でビルドする必要があったはず ビルドは時間かかって面倒だし、32bit版Qtライブラリに比べると多分デバッグも甘いと思うよ Qt5でしかも64bitとなると自分が人柱になる覚悟がいるかも Qt4なら「qt 64bit build」とかでググればいいんだけどね
689 :
679 :2013/01/30(水) 11:18:40.16
>>688 なるほど、やっぱ人柱ならないとだめか。
Qt4はコンパイルした事あるから やってみっか・・
QTのGLとWebKit対応は5からなんでしょうか・・・。 各デスクトップOSや携帯端末OSの対応状況表とかどこかにござますでしょうか。 ご紹介していただけましたら幸いです。
>>690 QtCreatorでQtOpenGL使ってます。QtCreatorは2.4.1、QtSDKは4.7.4です。
>>691 ありがとうございます。
参考になりました!
あ、忘れてた。>691はWindows7での話。 MacOSXの方はQtCreator2.6.1, Qt4.8.3(64bit)でした。
Designerで作ったuiをCreatorで読み込むことは出来ますでしょうか? せっかく作ったのにイチから作り直すのが勿体無くて…
win64はqtwebkitのビルドが面倒。かなりいろいろなlibとexeを要求してきてる。たちなみに5.0.1のビルドね。
いや駄目でした。規定のコンストラクターが無いとか言われて。 諦めてイチから作り直します…
win、macで実行ファイルを作りたい場合は、Qt Creatorで プロジェクトを作って双方でコンパイルってのが一番手軽なのかな?
普段はdesignerで*.ui書いて、editorで*.pro書いてある程度完成してから debugの時にcreatorで読み込ませることが多いけど、ui含めて一度も問題に なったこと無いな Linuxのdesignerで作ってWindowsのcreatorで読ませたりしてるが
>>697 普通に考えてダメな理由はないでしょ? 何かが間違ってる。
規定のコンストラクターが無いってんだから引数の問題じゃないのか
それ、Designerの問題なんだろうか。
ネット上の動画ファイルを再生したいのですがPhonon以外にありますか? Phononだと、動画再生後にフリーズしたりマウスカーソルが消えてしまったりで・・
すいません質問です。 下記のコードはインターネットからファイルを取得し、それを表示するというものなのですが、 get_file()は非同期で行われるため、ファイルがまだ取得できていない状態でdisplay_file()が呼ばれエラーになってしまいます。 ここでget_file()の終了を待つための良い方法があればご教授願います。 void func() { get_file(); display_file(); }
なんでここで聞く? get_fikeが成功したらsignal発行してdisplay_file実行するようにすれば? ってこと聞きたかたの?
706 :
デフォルトの名無しさん :2013/02/07(木) 08:13:52.47
QNetworkAccessManager
VCコンパイラでqt creatorを使ってますが、compile output を英語にするにはどうすればいいのでしょうか?
chcp 437
>>709 やりたいことがQt5をソースからビルドしたいということなら、cmakeを
インストールしたら、Qt5ソース付属のINSTALL読めばいい
>>710 Qt5を使った「自分の」プログラムソースを、
CMakeを使ってビルドしたい、という事です。
言葉が足りず、すいませんでした。
>>711 そういうことか。
そういえば、Qtのビルドにcmakeは使わないね。最近Qtとcmake使うライブラリ
ビルドしたので、勘違いした。すまん。
*.cmakeファイルってのはcmakeが自動的に作成するものじゃないの? qt4ならcmake-qt-guiとかいうパッケージを入れておけば(@debian)、普通にビルドできると思うけど qt5は知らん
>>713 すいません、Windows です。
[CMakeのインストールディレクトリ]\share\cmake-2.8\Modules 内に、
Find***.cmake というファイルが色々あります。
自分のプロジェクトの CMakeLists.txt で例えば find_package (OpenGL)
と書いておくと、OPENGL_INCLUDE_DIR に OpenGL のインクルードパスが書き込まれ、
OPENGL_LIBRARIES に OpenGL のライブラリパスが書き込まれます。
あとは、それらを include_directories や target_link_libraries に指定すれば、
インクルードパスやライブラリパスがメイクファイルに書き込まれます。
非常に便利です。
(もちろん、include_directories などに直にパスを書き込んでもいいですが、
環境が変わればそのパスもその都度書き直しになって不便です)
これができるのは上記のディレクトリに FindOpenGL.cmake ファイルがあるからです。
CMake は find_package を処理する時に Find***.cmake を探すのです。
FindQt.cmake や FindQt3.cmake、FindQt4.cmake もありますね。
Cmake の作者が予め作っておいてくれたからです。
他にも色々なライブラリ用の Find***.cmake が予め作られていますが、
無いものは自分で作るか、ネットからDLしてくるかします。
私も例えば GLEW 用のものは他の Find***.cmake の記述を参考に自作しました。
比較的簡単でしたから。
ただ、Qt 用のは大きすぎて(複雑で)、とても自分では作れません。
なのでネットで探したのですが、使い方マニュアルはあるのに、
肝心の Find***.cmake ファイルのありかが分かりません。
使い方から推測するに、FindQt5Widgets.cmake や FindQt5Declarative.cmake など、
モジュール毎に Find**.cmake ファイルが分かれている形だと思うのですが・・・
こちらの環境も書いておきます。
Windows7 64bit
MinGW (tdm64-gcc-4.7.1-3)
Qt5 は
http://qt-project.org/wiki/MinGW-64-bit ここの下の方に Qt-builds の Binary builds へのパスがあり、
そこから Qt-5.0.1-x64.7z をDLして展開し、
bin へのパスを環境変数 PATH に追加しました。
そして、bin ディレクトリにある qt.conf ファイル内の prefix を
展開したパスへと修正しました。
>>714 http://doc-snapshot.qt-project.org/5.0/qtdoc/cmake-manual.html > In order for find_package to be successful, Qt 5 must be found below the CMAKE_PREFIX_PATH,
> or the Qt5<Module>_DIR must be set in the CMake cache to the location of the Qt5WidgetsConfig.cmake file.
> The easiest way to use CMake is to set the CMAKE_PREFIX_PATH environment variable to the install prefix of Qt 5.
この通りにしてもだめなんですか?
>>716 できました。
cmake 関係のいろんなページで Find**.cmake ファイルと
find_package コマンドとの関係を学んでいたので、
Find**.cmake ファイルが無ければ find_package コマンドは使えないと
思い込んでいました。
ありがとうございました。
http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries > The find_package() command will look in the module path for Find<name>.cmake,
> which is the typical way for finding libraries. First CMake checks all directories in ${CMAKE_MODULE_PATH},
> then it looks in its own module directory <CMAKE_ROOT>/share/cmake-x.y/Modules/.
>
> If no such file is found, it looks for <Name>Config.cmake or <lower-case-name>-config.cmake,
> which are supposed to be installed by libraries (but there are currently not yet many libraries which install them)
> and that don't do detection, but rather just contain hardcoded values for the installed library.
これの後半ですね
http://www.kdab.com/kdab-contributions-to-qt-5-0-part-1/ > ‘CMake Config files’ are now generated as part of the build-process of Qt itself and shipped in packages
とあるように、Qtで用意するようになったっぽいので
cmakeのmodulesでFind***.cmakeを使うのではなく、
パスを追加して、Qtの***Config.cmakeを参照するようになったという感じ?
Qtとcmakeの力関係の変化が如実に現れた変更…
QtCreator2.6.2、Qt4.8.4、Visual Studio 2010です コンソールアプリケーションを閉じた後 もう一度ビルドして実行しようとしたら :-1: エラー: LNK1104: ファイル 'debug\hoge.exe' を開くことができません。 となってビルドに失敗する事があります エクスプローラーからexeを削除すると、消えたように見えますがリロードするとまだ有ります。 コマンドプロンプトからexeファイルの削除を試みても「アクセスが拒否されました。」と出てきてしまいます。 それでもしばらく待つと、exeファイルが消えている事があります。 ちゃんとコンソールのウィンドウは閉じているのに、何故だろう
721 :
720 :2013/02/17(日) 23:58:57.63
Application Experience無効にするとビルドに影響が出るという情報を今見つけました 多分私のせいです VSの問題のようだし最初からスレチだったか
どうもどうも 昨晩から使い始めて、サンプルのNotepadを動かしているのですが utf8のtxtファイルを読むと文字化けしてしまいます。 どうもQtがファイルをshift-jisと解釈して表示している挙動です。 Qtはデフォルトのエンコーディングがutf8になったと聞いていたので 鼻水が出そうになったわけです。 確かに、Notepadに適当に日本語を打ち込んで保存したらshift-jisのtxtファイルができたわけですが。 これは、ひょっとして内部ではutf8のつもりでstringを引き回して shift-jis時代のwindowsAPI(TextOutA等)にそのまま渡していると言う奴なのでしょうか? 自分のアプリでshift-jisをサポートするつもりはないので ちゃんとunicodeで動作するようにしたいのですがなんか方法はあるのでしょうか? 先達の教えをいただけたらと思います。 とりあえず、setCodecForCStringsがQt5で無くなったと言うことは把握しています。 環境は win7日本語 QtCreator2.6.2 Qt 5.0.1 for Windows 32-bit (MinGW 4.7) です。 よろしくお願いします。
馬鹿には無理
デフォルトではUnicode検出オンになっているそうだから
BOMが付いているUTF8テキストならフツーに読めると思うけど
BOMがついていなかったらShift-JISとして読み込む
Qt3にはBOMがなくてもエンコードを自動検出する機能があったらしいが
信頼出来ない精度なので削除されたようだ
自動検出は実装が難しい機能ってことだから
エンコードは手動で設定するようにした方が良いと思うよ!
デコードに失敗したかどうかを検出する方法は分からない
Qt-interest Archive - How to detect a file's encoding and safely convert?
http://lists.trolltech.com/qt-interest/2007-11/thread00270-0.html
727 :
722 :2013/02/23(土) 21:23:20.31
>723 すまんが>3は把握している。 >725 >726 トンクス ファイル開く度にutf-8を指定しないといけないのね。 >BOMが付いているUTF8テキストならフツーに読めると思うけど >BOMがついていなかったらShift-JISとして読み込む 初めて見る仕様だわ。 新しいパターンだったから戸惑った。 自動検出なしでデフォルトutf-8で開く仕様なのかと思ったわ 一応 QTextStream in(&file); in.setCodec("UTF-8"); ui->textEdit->setText(in.readAll()); で解決。トンクス
BOMが付いていれば確実にUTF-8って分かるけど、他は確実に判別する方法がないよな。 日本だってShift-JIS?で書かれた文書が未だに多いのだから 分からなかったらロケールのエンコーディングを使うこの仕様は別に変じゃないでしょ。 一応ロケールに使うエンコーディングもutf-8に設定してしまう事もQtでは可能。
親切に解説ありがとん。 >分からなかったらロケールのエンコーディングを使うこの仕様 アリはアリだと思いますよ。 今までMFCや昔のrubyのように内部がユニコードになっていないシステムだと ロケールのエンコーディングでしたしね。 それでutf8化されたあとのシステムは大体デフォルトutf-8になので 驚いたわけよ。 確かに最近はマ界隈ではUTF-8にしておけって感じだけど ちまたではshift-jisもまだまだ多かったしね。 > 一応ロケールに使うエンコーディングもutf-8に設定してしまう事もQtでは可能。 調べてみた。これでいいかな QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); にしても久々にC++でUI作りますわ。
Windowsのシステムロケールをutf-8にすりゃ解決するんでね?
732 :
デフォルトの名無しさん :2013/02/24(日) 19:03:23.43
自演乙。 誰も相手にしてくれなかったからって、 そこまで卑屈にならんでもええのに。
LGPL の商用利用に関してですが、これは
- アプリを社内で開発し、社内で利用
に該当しますかね。。。
また、仮に該当するにしても、動的リンク
- winでdllを実行ファイルと同じフォルダにいれる
- mac で frame-work をパッケージにいれる
をすれば例外条項を守る限りは勝手に開発して使っても
OKって認識で問題ないですか?
SDK などに手をいれる予定はなく、あくまでも Qt4 を
ライブラリとして使って開発するだけです。
>>1 のライセンスの話や 本家の ライセンスページ見る限り問題ないようですが、
念の為にお聞きしたいです。
ここで聞いたこと信用するのかカス? 問題あったら2chでそう言ってたって言い訳するのか池沼 ライセンス問題なんて法律の専門家ですら意見別れるのに どこの誰かも知らない奴の書き込みなんて参考にすることすら危険 そういうことがわからないからゆとりって言われんだよウマシカ野郎
>>733 > LGPL の商用利用に関してですが、これは
> - アプリを社内で開発し、社内で利用
> に該当しますかね。。。
日本語が変じゃないか?
「アプリを社内で開発し、社内で利用するのは商用利用に該当しますか?」って
聞きたいの?
LGPLは守れよ? Qtの派生版を作ったら、Qtのオブジェクトファイルを公開する必要があるそうだが 普通はQtを改造したりしないからダイジョーブ
いやいや、LGPL版では
スタティックリンクしたらアプリケーションのオブジェクトファイル(かソースコード)も公開しないとダメってわけか。
ダイナミックリンクで使うならアプリケーションのソースコードもオブジェクトファイルも公開義務なし、と。
Qtの改造はQtのソースコードを公開する必要があるね
・Qt LGPL 版をスタティックリンクした際には、独自開発部分のソースコードを配布するか、
独自開発部分のオブジェクトを配布する必要があります。
http://www.sra.co.jp/qt/licence/index.html#n002
レスありがとうございます。 すいません、LGPL に関して途中で書き足したので、ちょっと日本語が変になっていましたね。。。 認識に間違いなさそうで、よかったです。 問題なく開発を継続できます。 ありがとうございました。
分割ボタンじゃなくて、ボタンのどこを押してもメニューが表示されるボタンってどうやったら作れますか? Qt5でツールバー上のボタンです
741 :
740 :2013/02/26(火) 11:27:21.42
QPushButtonのsetMenuでできました 失礼しました
>>738 ん?
そんな事は無いはずだが。
だとしたらglibcとか使うだけで、全ソース公開になってしまうぞ。
そうだよ gccは例外条項でセーフだけどLGPLスタティックリンクは完全アウト
あ、
>>738 にオブジェクトでも良いと書いてあるね。
ソースコードだけに反応して先走った。
スマソ。
オブジェクトって、gcc なら -c オプションで吐く奴だよね。 ソースなら分かるけど、公開されたオブジェクトを活用する人ってどんな人?
オブジェクトがあればリンクできるのが普通のOS。
実際問題としては、オブジェクトだけじゃなくもソース出さないと発狂されるだろうね 無視すりゃいいんだろうけど
>>746 リンクして実行ファイルを作るのが目的なら、
普通に実行ファイルを手に入れるだけでよくね?
>>748 実際の例だと、インストーラーでディストリごとのライブラリや
PlugInみたいなオプション機能のライブラリを本体のオブジェクトとリンクするのがあった。
バージョンアップや機能追加するたびにリンクし直しになるんだよね。
Qt CreatorってGitにも対応しているけど コミット予定に追加が1つずつしか出来ないじゃねーかこれ コミット時はステージされていない変更もコミットできるので良いのだが スタッシュで退避時には使えない 面倒だからTortoiseGitやGitBashを使うことになる
Git利用は計画的に
git使うならWindowsならcygwin LinuxとMacならオリジナルのコンソール版を使うことだ それが幸せになる近道
WindowsでmsysGit(UTF8)版とtortoiseGit(UTF8)版使用 充分幸せ
msysgitは既に公式版でもUTF8でファイル名を扱うようになっているだろ? TortoiseGitも日本語ファイル名で問題はなかった Mercurialはいつまで経っても対応しないしfixutf8は正常に動かなかったりするし Windowsではその辺がクソ
bitbucketがgit対応したから、いちいちmercurialを使う理由ももうないな
以前はどっちかというとMercurial派だったMSもVSでGitをサポートするらしいね
necessitas入れてみた。 Qtでゴリゴリ書いて実機ぶっ刺すだけでAndroidで プログラム動かせるなんて面白すぎ。
>>757 > プログラム動かせるなんて面白すぎ。
だよなー
EmscriptenでQtのデモがブラウザで動くんだけど 読み込み長すぎだった 日本語は入力できない
qt-iphoneなんてのもあるみたいだけど これライセンス的に実機で動かせないよなw
Qt5.01 mingwインストールできない vcredistってとこでとまってしまう
それおいくら万円するんです?
764 :
デフォルトの名無しさん :2013/03/08(金) 23:58:54.37
apple側が許してないんじゃなかったっけ?
Appleの規約がどうとかUnityでなんか揉めてたよね
AppleのライセンスってObjectC以外じゃ開発しちゃだめってやつ あれはとっくに撤回されただろ
QThreadを継承したクラスを作って、そのrun()メソッドを void MyThread::run(){ // webからデータ取得 getData(); // トークン分割 token(); exec(); } と記述したんだけど、このオブジェクトを250こくらい作って同時にstartでスレッドを走らせると、いくつかのスレッドが途中までは進行するが、途中で停止して 応答が無くなっているみたいです。 全てのスレッドが終了するのを待っているんだけど、毎回いくつのスレッドか終了せず、mainスレッドが待機のままになってしまいます。 この問題の回避方法や、そもそもの間違えが有ったら教えてください。
×間違え ○間違い
>>767 webからでなく、ディスクか何かからで試してみた?
QThreadは継承禁止
ログを取ったりデバッグ実行したりして何処で止まっているか見たらいいじゃん。
250個同時実行ってそれなんか意味あんの? CPUのコア数といっしょにするのが普通じゃないの QtはQThread::idealThreadCountで理想的なスレッド数(普通はCPUコア数と同じ)が分かる QThreadを直接使う他に QThreadPoolとQRunnableを使う方法もある QThreadPoolはデフォルトで最大スレッド数にidealThreadCountを使う
webから250個のデータを一斉に取得とか危険な香りがするな
>>767 なんでexec読んでるの?
イベントループ使うならQThread継承する必要無いだろ
QThreadのヘルプにも最後にexec()でイベントループに入るコードあるね 終わったかどうか知りたいだけなら finished()のシグナルを使うかisFinished()を呼べば分かるからあまり要らなそう
MyThread::run()の中で exec()を呼んでイベントループに入ることで 例えばQTextEdit::textChanged()のシグナルと MyThread::doSomething()のスロットを MyThread::run()の中でexec()する前にconnect()しておいて QTextEditのテキストが変わった時に何かバックグラウンドで処理を行うとか そういう事が出来るのかも
またこの流れか…
>>778 それならQThreadを継承する必要ないじゃん
きっとmoveThread()呼んでないんだろうなぁ
moveToThreadだろ
>>780 時間がかかる処理はメインスレッドでやっちゃいけないだろ
785 :
デフォルトの名無しさん :2013/03/10(日) 18:17:16.51
つまりどういうことです?
あー本物か 馬鹿には無理
どちらでもお好きな方法でどうぞ
>>767 は別なところに問題ある気がす
QThreadを継承するのは間違いではない
Mandelbrot ExampleやQThreadのドキュメントで使ってる
QObject::moveToThreadは親オブジェクトの設定されていないオブジェクトの所属するスレッドを(カレントスレッドから別のスレッドに)変えるメソッド
これを使って別スレッドで処理を行うことも可能
QObjectのタイマーを使っていると暫く停止した後別スレッドで再開するそうなので一緒に使う時は注意
同じオブジェクトのスレッドを断続的に変えていたら永遠に時が止まるということも有り得る
QThreadを継承するのもmoveToThreadを使うのもそれぞれ使い所があるが QThreadを継承しつつexec()呼ぶのは何がしたいのかわからない
それ公式ドキュメントでもやっている方法だろ シグナルとスロットはスレッドを超えて接続できるが イベントループはスレッド毎に作る必要がある 別スレッドで起きたイベントの処理に必要なんじゃないか QThread::exec()はProtectedだから派生クラスからしか呼べない moveToThread法?でシグナル使う場合は別スレッドで動き続けるQEventLoopがあればいいんじゃね
きっと本人も何がしたいのかわからないはず
イベントループ別に持ちたいだけならmoveToThreadでいいじゃん 公式のサンプルは悪い例だから真似してはいけない
どのへんが?
わからないのならまだまだ初心者だな 仕事で何年か設計や変更した経験があればわかりそうなものだが
前回のQThreadの時もまともな答えは出せずに逃げたな
QThreadはスレッド操作用のクラスだから、 継承したクラスにそれとは関係ないコードを突っ込むのはよろしくない 例のmoveToThreadを使う方法はこれを簡単に分離できるので推奨されている でもスレッド機能そのものを拡張したい場合はQThreadを継承するのが定石で、 この場合継承したクラスでexecを呼ぶのはごく自然なこと イベントループを使わない場合は上のように綺麗に分離することはできないので、 余計なことせずに継承したクラスのrunにゴリゴリ書いてしまえばいい
きゃりーぱみゅぱみゅのように100% 自分のやりたいようにやれ
800
スレッド機能そのものの拡張なんてする? 例えばどんな?
moveToThreadを使う方法の方がややこしくてオーバーヘッドが大きいのは間違いない
Qt5のドキュメントで問題とされていたのは、QThreadの所属するスレッドがそれを作ったクラスだから? QThreadを作ったスレッドがメインスレッドなら、QThreadの子オブジェクトも何もしないとメインスレッドの所属になるな
なんでWindows64bit配らないの?
自分でビルドすれば済むからな
ビルドに糞長い時間がかかる上、途中でエラーで止まるんだけど
オープンソースでQt使うと、Qtのビルドの時点でみんな帰っちゃうんだよ
自分がやるとエラーで止まるんだけど 公式で配っているのはどうやってビルドしているわけ?
64bitOSでbuild
>>810 はまさか32bitOSでビルドしようとしていたのか
814 :
813 :2013/03/14(木) 16:05:33.33
連投すみません Qt4.8.4で試してみたらできました。 取りあえずこちらでやっていこうと思います。
Qt5はOpenGL ESに移行しちゃったから 今のところ固定機能やGLEW拡張とか使う方法はないんじゃないかな
なるほど dd
817 :
813 :2013/03/15(金) 01:14:48.94
>>815 それは見落としてました…
Qt5以降でやろうと思ったらまずESを使えるようにならないとダメなんですか…
やはり4でやっていきます。
ありがとうございました。
818 :
デフォルトの名無しさん :2013/03/15(金) 08:02:17.13
>>817 LinuxとMacならこうすれば使えます。
ソースに追加
#if defined(Q_OS_MAC)
#include <GLUT/glut.h>
#elif defined(Q_OS_LINUX)
#include <GL/glu.h>
#endif
.proに追加
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
unix:!macx:LIBS += -lGLU
デスクトップならESを使えるようになる必要はありませんよ。
4系はもう脆弱性とかあっても、LGPL版のほうは オプソなんだからてめえらで自己解決しろやって感じでもうサポート無いんだろうか
820 :
813 :2013/03/15(金) 19:27:04.96
>>818 残念ながらWinなのです
一応試してみましたがダメですよね
GLUTに慣れてるので使えたら助かるんですが
821 :
デフォルトの名無しさん :2013/03/15(金) 21:31:02.87
>>820 ソースの#includeと.proのLIBSをWindows用に修正すればできるはずですよ。
GLUTは以前はインクルードされリンクもされていたのに、されなくなったから自分でやればできるはずなんです。
試してみてうまく行ったら教えてください。
822 :
デフォルトの名無しさん :2013/03/15(金) 21:34:01.82
>>819 LGPLは、ただなのだから自己解決か何かコントリビューションするのが当たり前。
Qt5はまだ未完成でQt4から移れない。
コンテナを使う場合、STLのコンテナを使わずに Qtのコンテナを使うメリットってなんだろう?
デストラクタん
825 :
813 :2013/03/16(土) 21:01:14.45
>>821 試した限りでは、
QGLWidgetとglut.hのインクルードでGLdouble等の再定義のエラー、
かといってQGLWidgetのインクルードをやめると
QGLWidgetを継承することができなくなりますし。
現状ではこの辺りで手詰まりになってます。
4.8からだっけ?GLUT外されたの 前試した時は何か簡単に対処できた気がするんだけど どうやったっけな
Qt5って別に今から移っても良いよね 互換性も大体維持されていて 新バージョンのQt Creatorでは既にQt5を使っている
>>826 つまりOpenGL ES 2.xではなく
通常のOpenGLを使いたいなら自分でビルドしろと・・・何という事だ!
>>828 完成度はどうなのかな?
一年くらい生暖かく見守ってからにしようと思うんだが。
4.8のバグ修正もまだ続いてるようだし。
>>830 5.0の日本語の書籍が出てくるまで使うの待とうと
思っている軟弱なオレが通りますよ。
>>830 一年くらい生暖かく見守ってから、完成度を質問すれば良いのでは?
5.0の日本語の書籍を書くのは吝かではないからオファーが来るまで待とうと 思っている能天気な私が通りますよ。
あれだけ充実したwikiやフォーラムがあるのに本なんて必要?
一人の人間がちゃんと一貫したストーリーを考えて解説した紙の本の利便性も捨てがたい。 (ここで言うストーリーというのは、章立てや、解説する内容や順番のこと)
836 :
デフォルトの名無しさん :2013/03/17(日) 11:12:06.11
>>828 Qt Creatorで使う機能はそこそこ動くようにしている。
でもよく落ちるので使うのを止めて、Q5で作るときもQt4のQt Creatorを使っている。
Qt5のexamplesを一通り動かすとおかしいのがぼろぼろある。
837 :
デフォルトの名無しさん :2013/03/17(日) 11:22:07.20
>>823 QtはSTLよりメモリ使用量が少ない。速度はSTLがQtより速い。機能はSTLがQtより豊富。
ただし、QtのQListはSTLのstd::listより速い。
838 :
デフォルトの名無しさん :2013/03/17(日) 11:25:06.34
>>833 QMLもよろしく、特にC++で拡張する部分とパフォーマンスチューニング。それとドキュメントがないQPAも。
>>837 > ただし、QtのQListはSTLのstd::listより速い。
QList と std::list は対応するクラスではないと思うぞ
QLinkedList が std::list に対応するクラス
QtQuick2ってiOSで使えないの?
QPAって何ができるの?
842 :
デフォルトの名無しさん :2013/03/17(日) 16:12:27.42
>>840 Qt Quick1のみで、Qt4のと違う動作をしたりバグも多いよ。
844 :
デフォルトの名無しさん :2013/03/17(日) 17:04:30.47
ソース読めなんて書いてなくね? ブログ読めって書いてあるように見えるが
846 :
デフォルトの名無しさん :2013/03/17(日) 19:06:20.73
>>845 書いてあるよlook at the other plugins、The minimal [qt.gitorious.net] plugin is a good starting point.
ブログ読めとも書いてある。
導入難しすぎワロエナイ
VS2010とQtDesignerでやってるんだけど、 2つ以上のQDockWidgetを最初からタブ状態にしておくのって、 Designer上では設定できない? あと起動時はDockWidgetは無くて、 ボタンを押すとDockWidgetが表示される って感じにしたいときDockWidgetの中身はDesigner上でなく 自分でコードを書くしかないんだろうか
俺はどっちもソースでやってる たくさんドック作るとメインウインドウにずらっと並んで邪魔だよーなんか方法あるのかな
MDIには無理
>>849 やっぱソースでやるのが基本か
良い方法あったら良いんだけどなー
ウィジットの縦横比の固定ってdesignerじゃ無理?
853 :
デフォルトの名無しさん :2013/03/22(金) 23:36:44.09
細かな操作はコードを直接書いた方がいい。
>>854 Qtユーザー会ができたん?
前にも似たようなのなかったっけ・・と思ったがあれはQtユーザーフォーラムか
ダウンロードページが本家より断然見やすいのがいいね
個人的に、デザイナの使い方はビデオで説明されないと理解できない部分があると思うんだよね
YouTubeの外人のビデオもイマイチだし時間があれば自分でビデオ作ろうかとも思ってるんだけど
なんか見た目のセンスいいからユーザー会で作ってくれないかにゃあ
いま勉強会やってる時間なのかwww
デバッグするとき、VisualStudioだと配列の中身を見る時に 変数名, 要素数 って入力すれば、変数がポインタでも中身が見れたけど、QtCreatorの場合はどうすればいいの?
は? 意味がわからんのだが、 普通のポインタの扱いと一緒でしょ?
連中は結局「ファイル」→「書式」→「フォント」のように暗記してるだけだから どんなUIだろうとあまり関係ないんだよ リボンは覚える手数が少なくなるけどアイコンだけのコマンドが多くて暗記しにくいからどっちもどっちだな
860 :
859 :2013/03/24(日) 19:29:42.22
すまん誤爆
どのスレだ
Windows64bit版も公開してくれ コンパイル途中でエラーで止まるんだよ
馬鹿には無理
トライアーゲィン♪トライアーゲィン♪トライアァーゲィン♪
馬鹿だから無理なんで ビルド済のを配ってくれ
>>865 確かビルド済みのバイナリ(qmakeなど)には、パス情報が埋め込まれてしまって、フォルダ構成が完全に一致してないと
そのまま配るだけでは動かなかったと思う。
以前にそれでqmakeが動かなくてはまった。
エラーはググれば回避方法が出てたと思う。フォーラムの情報だったかな?
古いバージョンはビルドできたから そっち使うわ
Qt4.8.xについてくるmingwのバージョンを上げて
「キットを管理」からMinGWのコンパイラバージョン選べるっぽいけど 試してないが4.4と4.7どっちも選択肢にでてる
誰かQtで2ch専ブラ作ってよ
Javaアプリから簡単に移植する方法ないの?
だからJavaはやめておけと
Qt Jambi・・・
Qt Jambiってどうなの?
とっくに開発放棄されてるんじゃなかったっけ
オープンソース化されてて開発は続いてるんじゃないっけ
Qtで2chブラウザ作ることで実現出来る機能。結構魅力的だと思うけど QtScriptで機能拡張 dbusでコマンドラインから制御。情報取得。外部アプリ連携 QMLでUI変更可能 QtSqlで複数マシンでのログ、状態共有 マルチプラットフォーム ・linux ・windows ・osx ・blackberry10
QtScriptというか JavaScriptも使えるよな
>>876 オープンソースベースで開発するってことは永遠にLGPLから逃れられないってことだぞ
企業が支援してくれることもないだろうし、労力をドブに捨てるようなもん
趣味だけでは難しいか やはり金が絡まないと開発も進まないってことだぬ
オプソっていってもでかいのは 資本主義的な企業からの金や人材の支援でなりたってるからなあ
オープンソースベースで開発するのとオープンソースとしてリリースするのは全く別だ Linuxみたいな極端な例外を除き、Qt含め企業が関わるOSSのほとんどは後者
>>877 > Qtで2chブラウザ作ることで実現出来る機能。結構魅力的だと思うけど
実はおいらもそれ考えてた。
まじめに作り始めてみようかな・・・
2chブラウザって機能アホみたいに多くて、あんまりQtだからどうのっていうもんじゃないからなあ どうせコードのほとんどは特にQtと関係ないんで
まあWinMacLinuxで別々の使うのだるいから 同じUIで各OSで使えるならいいかもね 設定ファイルはdropboxとかで共有できるようにしてほしい
それJavaで(ry
21世紀にもなってJavaはないだろ・・・インストールしないし
つv2c
Javaでさえなければ…と言われまくってる一番の例じゃないかw
ただ使ってみるとぶっちゃけ速度とか重さは気にならない Qtももっさり具合もMFC製とくらべるとかなり目立つし 今のSwing知ってると、どうもC++で書ける以外はアピールしづらいんだよな
たしか、Swingもオワコンじゃなかったっけ。今はJavaFX? Javaの世界も最近ついていけへんわ。
Linuxで使うとQtの方が遥かに高品質だよ さらに ・Swingは開発終了。終わった技術である。 ・Javaはセキュリティ面で危険! 後者は詐欺に近いがネットの情報に踊らされてるだけのバカは騙せるだろ
Swingの開発終了ってどこ情報よ? ソースはよ
JavaFXってなに?
>>892 MFCはフレームワークというより、ただのラッパーだからなぁ
Qtならではの機能というと877を実装することだと思う
Qt5を昨日セットアップしました。 このスレッドを一通り眺めてみました。 OpenGLを使いたいのですが、 GLES2.0が標準対応されているAPIでよいのでしょうか?
はい
お返事ありがとうございます。 GLES2.0の方を勉強してみます。 ありがとうございました。
Qt5から始める場合、スレの冒頭にある Qt4関連の入門書は利用可能でしょうか? かなり勝手が違いようでしたら購入は控えておこうかと思っておりいます。
現時点でQt5はまだ使い物にならない
Qt5のまともな本はあと数年は出ない
ウィジットの見た目は好きに変えられる?
はい
>>902-904 レスありがとうございます。
入門Qt4を本屋で眺めてみたいと思います。
英語はAPIマニュアルをさらっと読む事くらいしか出来ないので、
日本語版の本にあたってみたいと思います。
>>897 開発効率を考えたらMFCはないなあ。
ただ速さを求めるならMFCを使った方がいいけど。
MFCに対するQtの遅さというのは、どこら辺に現れてくるの? サブメニューを開く時にワンテンポ遅れるわけでもないし、 今まで特に遅いと感じたこと無いんだけど
アプリのロード時間とかじゃないの。QtのDLL結構でかいし まあMFC製アプリなんて最近見かけないから比べようがないが・・・
MS Officeとか未だにMFCっぽい気がするけどね。 そういえば、Mayaって今はQtなんだよなぁ。 あれくらい大規模なソフトでQt使ってるのはそれくらいかな。
起動はやっぱりもっさりしてるな。MFCとJava系や.NETの中間くらい バイナリやらテキストエディタみたいな起動速度も重視されるものはちょっと作りにくい 逆に言えばそういうの以外はどうでもいいんだけど
Widgetのアスペクト比を固定したいんだが resizeEventをオーバーライドしてサイズ変更されるたびに書き換えるのが普通? Qt::KeepAspectRatioなんてあるし固定するための設定とかあるんだろうか
>>911 大規模アプリならKINGSOFT Officeがあるアルよ
あとそこそこ知られてるのだとこの辺とか
MotionBuilder、RealFlow、Nuke、LuxRender
Mathematica、Kindle、VirtualBox
ディレクトリのTreeViewをネットワークドライブで開いてると タイムアウトが異常に長くてfreezeしたように見えることが多い 気がするかもしれない
テキストボックス(QPlainTextEdit)が二つあるウインドウのうち アクティブな方を見分けるにはどうすればいいんでしょーか。 アクティブってのは要するにキャレット(カーソル)が点滅してる方ってことです。 focus関係のsignalがあるのかと思ったらなんか違うっぽい。
hasFocus()とかqApp->focusWidget()で見分けられそうだけどなんでシグナル?
>>909 たとえばフォルダ内に大量なファイルやフォルダを検索した時とか結構遅いね。
あと、コンテナ関係も大量にデータがあると、Qtは弱い感じがする。
と言う事は2ch専用ブラウザを作成したときに datファイルが大量にある場合動作が遅くなるのかな
となると、これは試してみるしかないなw
>>919 qvector使わずにqlist使ってるとかコストの高いクラスやメソッドを間違えて使ってるパターンな気がする
QDirModelってそんなコスト高いんか
QVectorはよく使うけど、QListはあんまり使わないな。
>>918 あーごめんなさい。自分でもよく理解できてなかった。
順序立てて言うと、いくつものQPlaineTextで編集してる状態で
たとえマウスで他のどこをつついていても、
セーブとなると最後にフォーカスのあったQPlainTextEditの内容をセーブできるようにしたいと。
なので、QPlainTextEditにフォーカスが来るたびにそのIDをどこぞに記録しときたかったんです。
なのでSIGNALとかが出て来る。
今フォーカスのあるWidgetは調べられるけど、移ってしまってれば意味ないし
かといって常に記録しておくのはアレなので
フォーカスが来た!というイベントをきっかけにしたかったのですが、
それっぽかったQFocusEventのreferenceには
Focus events are sent to widgets when the keyboard input focus changes.
とかあって、キーボード(ていうかTab?)のeventっぽい。
書いててまたよくわからなくなってきたんですが、なんか思い当たるヒントだけでもあったら
おながいします。
今現在フォーカスがあるQPlainTextEditの状態を保存したいんじゃなくて、 フォーカスが移ったタイミングで直前までフォーカスがあったQPlainTextEditの状態をセーブしたいってこと? そうならQWidget::focusOutEventを使うのが一番簡単じゃないかな
>>926 まさかconnectしてないだけというオチ?
>>919 > あと、コンテナ関係も大量にデータがあると、Qtは弱い感じがする。
QVector が遅いなら std::vector 使えばいいんじゃないか
tableの任意の1行だけコンテキストメニューが出るようにしたいがどうしたものか…
932 :
926 :2013/04/03(水) 13:59:34.81
できました!ありがとう。
データが大量だとコンテナが遅いってのはdeep copyの話だよね [ ]演算子しか使ってないとかじゃないの 同じコードなら遅くなる可能性はあるけど、 Qt用に最適化すればGUIレベルにまで影響は出ないと思うんだけど
インストールするときにminGWのとこでg++ not foundってでるんだけどコレ誰でも出るものなの?
出ないよ
ありがとうございます
>>916 そんなのがあったのかサンクス
取りあえず上のサイトの例をやってみたらこれではダメみたいだな
色々試してみる
普通QListだろ
QVectorを使ったほうが速いケースのほうが限られている
QVectorを使った方が早いケースは予め配列のサイズが決まっている時ぐらいのものだ。
(連続した領域に1回でメモリを確保できるので)
リストの中央に挿入することを頻繁にするならQListよりQLinkedListを使え
Container Classes | Documentation | Qt Project
http://qt-project.org/doc/qt-4.8/containers.html
939 :
デフォルトの名無しさん :2013/04/05(金) 23:09:31.65
>Qt5から始める場合、スレの冒頭にある >Qt4関連の入門書は利用可能でしょうか? オライリーの入門 Qt 4 プログラミングの例題プログラムはほとんどがわずかな修正で動きます。 その第5刷の付録には、Qt4からQt5への書き換えやQt4とQt5の両方で動かす方法が簡単に説明されていて、 両方で動かせるように書き換えたコードがダウンロードできるようになっています。 MDIの説明で使われているクラスが削除されてしまっているけれど、 英語の改訂版の方はQt5にもあるクラスで書き直してありますね。
940 :
デフォルトの名無しさん :2013/04/07(日) 20:10:11.70
じぇじぇじぇ Qt-project.org experienced a severe crash starting on April 4th 19:30 UTC. The site has now been restored, but unfortunately we are having some issues restoring backup data between April 4th 04:02 UTC and April 5th 07:59 UTC. We are deeply sorry for any lost content.
あうあうあう…
クラッシュしたんか。フォーラムやWikiの記事とかなくなったのかね まあリポジトリが無事ならそんなに気にしないけど
Qt Createの左側ってうざいね
Qt便利すぎワロタ
Qt最高やw
Qt Creater便利やwww
Qt様〜
ウィンドウの外枠(タイトルや最大化のボタンがあるとこ)はどうやって消せる?
setwindowflags
framelesswindowhint
>>946 本当のファンなら名前を間違えたらイカン
Qt Creature
Qt 5.0.2
BOMなんかつけんな
分かってつけない人は別にいいよ。Windowsで初心者が混乱しないための話だから
Qt5.0.2のWindows版バイナリめちゃ増えてる GL ES版、フルGL版、あと64bit版もある このスレで困ってた人には朗報だな
openGLがきたなら俺も乗り換えよう。 もしQt4で作ったプログラムをQt5に変えたい場合なにか注意することってある? どのファイルを持って行けば良いんだろ。 .uiファイルってそのまま使える?
5.0.2, VS2010の64bitがないとか微妙な感じ。
5.0系列になってからビルドが通るようになったから別にいらないけどね。
>>958 既出とは思うが、glu*などのglutを排除すれば動くんでねーの。
4.7.2で動いたprojectを5.0.1にインポートしてもそのまま動いた。
一部、intを表示するwidegtがつぶれるとかあるんだけど。
2010のExpressは、SDKいれないとx64作ることができないから無いのかな
Qt CreatorでLinuxのパッケージみたいな感じでboostとかのライブラリを簡単にインストールできるようにして欲しい
ゆとりもプログラム作る時代か
>>957 Oh, vs2008版が無くなってる。。。
>>964 VS2010より2008の方が軽くて使いやすいと思うけど
QtCreatorからコンパイラ呼び出すだけなら2010の方がよくね?
VSアドオンでやってるならご愁傷様だが
QNetworkAccessManagerで取得したデータをqDebug()で表示したいのですが、何も表示されないです なんででしょ? void Text::hellow(QNetworkReply* nr){ const QByteArray ba = nr->readAll(); QTextStream ts(ba); ts.setCodec(QTextCodec::codecForName("Shift-JIS")); QString text = ts.readAll(); qDebug() << text;
デバッガ使えゆとり
969 :
966 :2013/04/14(日) 21:21:22.44
すまん やっぱり、質問アホすぎるんで取り下げる
おい勝手に俺に成り代わってレスするなカス さっさと答えろよ低能ども
2点確認してからもう一回聞いて ・ネットワーク応答の内容をファイルに書き出して正常に読める ・自分で作ったQByteArrayをqDebug()に正常に表示できる
qDebug()にデバッグ出力できないバグをデバッグ中ってことは 本来やりたいプログラミングからどれだけ乖離してるかを一度は検討するべき
プログラミングする時間が少ないorz
昨日、やっと5.0.2のwin64のvs2010のビルドが終わったよ。おれのハコだと一日かかるよ。とくにwebkitがヤバい。
C:ドライブにVS2010置いたマシンでは簡単に5.0.2をビルドできたのに D:ドライブにVS2010置いたマシンではconfigすら通らない (´・ω・`)
WindowsでビルドしたQtを別のPCにフォルダコピーでそのまま持っていくと Qt Creatorとかで正しくインストールされていないのでmake installしろと言われますけど パスがバイナリか何かに埋め込まれてるんですかね?それとも何か動かすのに必要な設定ファイルがあるんでしょうか?
qtをapacheが面倒みる時代とか来るかな? というか、javaみたく各企業が参加して開発するGUIがないの不思議
KDE…
KDEとは別に、今までGTKべったりだったubuntuの次世代UIのUnity NextはQt5ベース モバイル版(スマホ・タブレット)は10月のリリースで移行 デスクトップ版は来年4月の予定
981 :
デフォルトの名無しさん :2013/04/17(水) 20:28:59.97
質問させて下さい。 色々省略していますが、以下の様なプログラムがあったとしたとき class Player { playMudic() { // (すでにGUIは起動している) //音声再生。終わるまでに10秒かかるとする boost::thread thread_(boost::bind(&Player::play_pool, this)); thread_.join(); // 終了 (GUIは起動したまま) } } 10秒かかるplay_poolを実行中、GUIを操作できるようにしたいのですが、 終了のところに行くまで全く操作できなくなるのです。 (windwos7の、◯型のアイコンが回転している待ち状態になってしまいます) スレッドを分ければバックグランドで再生処理を実行しつつ、 プログラムが終了のところまでplay_poolの実行終了を待たずに 一気に行ってGUIを操作できるようになるのではと思って boost::threadを使ってみたのですが、駄目でした。 どのように実装すれば音声再生中もGUIを操作できるようになるでしょうか?? 教えていただけると嬉しいです。
join()呼ばない
便乗だけど、QThread使った方良いことはあったりする?
984 :
981 :
2013/04/17(水) 22:09:39.00 自己解決しました。 Qthreadというクラスがあるのですね。 ありがとうございました