トップページ⇒tech
1001コメント311KB

【RAD統合環境】 Qt 総合スレ 13 【Win/Mac/Linux】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/02/18(土) 11:01:17.97
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 総合スレ 12 【Win/Mac/Linux】
http://toro.2ch.net/test/read.cgi/tech/1313727889/
0002デフォルトの名無しさん2012/02/18(土) 11:02:08.68
■リンク

・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/02/18(土) 11:02:51.00
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。配布上の制限はない)
0004デフォルトの名無しさん2012/02/18(土) 11:03:14.36
■インストール方法:MinGW版Qt & Qt Creator

(1)「Qt SDK for Windows」をインストール
 http://qt.nokia.com/downloads/sdk-windows-cpp

■インストール方法:VisualC++版Qt & Qt Creator

MinGW版との違い:Phononが利用可能。VC版の方が速いらしい

(1)「Microsoft Visual C++ 2008」(Express Edition 以上) をインストール
(2)「Microsoft Debugging Tools」をインストール
 http://www.microsoft.com/japan/whdc/devtools/debugging/installx86.mspx
(3)「Qt libraries for WIndows(VS 2008)」をインストール
 http://qt.nokia.com/downloads/windows-cpp-vs2008
(4)「Qt Creator Binary for Windows」をインストール
 http://qt.nokia.com/downloads/qt-creator-binary-for-windows
(5)環境変数PATHを設定(もともと入ってたパス;Qtインストールパス\bin)
(6)Qt Creator を起動して、「ツール」→「オプション」
 「Qt4」→「Qt Versions」を開いて自動検出された「PATH に含まれる Qt」をクリックし「MSVC バージョン」を 9.0 にする
 「デバッグヘルパ」が×印になっていれば「リビルド」ボタンをクリックしてリビルド
 もし失敗したら「プロジェクト」→「ビルドして実行」→「nmake の代わりに jom を使用する」のチェックを外してリビルド
0005デフォルトの名無しさん2012/02/18(土) 11:03:38.09
■Qt Creator 日本語化プロジェクト

Qt 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も使ってみてください(><;)

では、どうぞ!
0006デフォルトの名無しさん2012/02/18(土) 12:10:37.82
>>1おつ
0007デフォルトの名無しさん2012/02/19(日) 08:47:03.65
QDialog内でのQTextbrowserを使って、テキストデータを表示しているんだけど、すごく表示が遅い。
別にコードを書く必要もないと思うけど、こんな感じで、ただテキストファイルを読んで
表示させてるだけ。

QTextBrowser b;
QFile f(filename);
f.open(QIODevice.ReadOnly);
QString text = f.readAll();
f.close();
b.setText(text);

ファイルはまあそれなりに大きいといえば大きんだけど、1Mbyte程度。
だけど、ダイアログの移動さえ遅くなる。

QTextBrowserが遅いのか、ファイルの読み込み方が悪いのか、QDialog自体に問題があるのか
よくわからなくて困っています。処理を速くするにはどうしたら良いんでしょうか?
Qtって小さいシステムでしか使えないんじゃないかと疑っているんですが、そんなことはない?
0008デフォルトの名無しさん2012/02/19(日) 09:36:08.76
コピーが3回
0009デフォルトの名無しさん2012/02/19(日) 09:37:31.39
QString &text = f.readAll();
0010デフォルトの名無しさん2012/02/19(日) 09:41:20.86
1MB位のコピーなんてたいしたことないだろ
それよりsetPlainTextにしたほうがいいんじゃね?
0011デフォルトの名無しさん2012/02/19(日) 14:16:25.92
>>8
QStringはimplicit sharedなので、QStringの文字列データ部分のコピーは0回です。
>>9
同じ理由で、&の有無は影響しません。
0012デフォルトの名無しさん2012/02/20(月) 03:43:40.73
1Mバイト程度のテキストファイルを表示させるのが遅いのか。
Qtには速度、メモリ消費に決定的な欠点があるのかもな
0013デフォルトの名無しさん2012/02/20(月) 04:02:40.41
QWebView使ったら?
0014デフォルトの名無しさん2012/02/20(月) 07:42:58.56
>>7
まず、プロファイルを取って、どこで時間がかかっているかを特定する。

>>12
憶測で判断しない。
0015デフォルトの名無しさん2012/02/20(月) 08:10:16.27
Qt 解説書

■ 入門 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プログラミング入門―使いやすいフレームワークを基礎から解説
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で簡単 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
0016デフォルトの名無しさん2012/02/20(月) 10:37:19.01
>>7
環境とソース(全部)を貼れ
大抵は素人が関係ないと思ってるところに原因がある
0017デフォルトの名無しさん2012/02/20(月) 10:38:26.33
まちがえた

x 素人
o 本人
0018デフォルトの名無しさん2012/02/20(月) 14:20:11.50
ダイアログの移動さえ遅くなるってのが問題だな
そのコードは処理終わるまで制御返さないから、どんなに重くてもダイアログの移動には影響を及ぼさないはず
ユーザのコードに原因があるとすれば、Event系で重い処理をさせてるんだろう
0019デフォルトの名無しさん2012/02/20(月) 14:33:15.32
と思ったけどそういえばQtは仕様違ったような気がして試してみたら、
setTextに大きなデータ表示させると一部だけ表示して一旦制御を返してからバックグラウンドで残りを処理してるね
この処理中は確かにスクロールもダイアログの移動も重いわ
うちのデスクトップでは5MのHTMLファイルでも3秒未満で終わったけど
0020デフォルトの名無しさん2012/02/20(月) 14:39:22.37
ファイル選択ダイアログを表示するので重くなった経験ならあるけどな。
多分選択ダイアログ表示の時に何かをダイナミックリンクをしているからだと思うけど。
同じような理由で、plug-inは、初回は重い。

あと、OpenGLのコンテキストの切り替えで重くなる。chromeがWebGLに対応して、
積極的にGPU使うようになってOpenGL使う他アプリとの切り替えが重くなった。

それから、間違ってバイナリファイルを開いた時のように、改行が殆ど無いときは、
スクロールが重くなる。
0021デフォルトの名無しさん2012/02/20(月) 23:03:10.26
>>19
ああ、これっぽいかも。
表示領域ではすぐに表示されるけど、スクロールも受け付けないし、
ダイアログの移動も受け付けないって状態。

そうかあ、setTextはそういう処理をしてるんですか。
もしかしてQtのソースを読んだんですか?

うまく処理できる他の手はあるんだろうか?
0022デフォルトの名無しさん2012/02/20(月) 23:05:37.36
あ、ちなみに、私はプアなマシン(WindowsXP、Pentium4、2Gバイトメモリ)では、結構きつい。
0023デフォルトの名無しさん2012/02/20(月) 23:18:34.18
QPlainTextEditは、単純には断言できないけど
少なくともGTK+より格段に速い動作だった。
50MBくらいのテキストファイルをほぼ一瞬で開いてたぞ。
0024デフォルトの名無しさん2012/02/20(月) 23:47:25.82
QTextBrowserはリッチテキストやらの特殊なテキスト表示用
QTextEdit とその派生クラスは実装された時期が古いので
QPlainTextEditよりかなり遅いかも
0025デフォルトの名無しさん2012/02/21(火) 00:04:20.15
>>23
QPlainTextEditは大丈夫?

最初の「表示領域にだけは」すぐ表示されても、
スクロールやダイアログの移動を受け付けないってことが問題なんだけど。
スクロールやダイアログ移動もちゃんとすぐに受け付けてくれるのかな。
0026232012/02/21(火) 00:24:55.80
>>25
スクロールバーもダイアログも>>19のようにはならない。
テキストエリア真っ白のまま一瞬待たされたあと
一気に表示される。スクロールバーは表示された時点でほぼ縮まりきっているし
表示が済んだあとは普通の挙動。
で、なんで挙動がちがうんだと思ったら、setTextじゃなくて
setPlainText使ってたわ。あとメモリ8GBのi7マシンなのも影響してるかも。
役に立ちそうもなくてスマソ
0027デフォルトの名無しさん2012/02/21(火) 00:52:18.93
いえいえ。

ちなみに、QTextBrowser でも、スクロールバーは最初から縮まりきってるんだけどね。
だから、一見、全部読み込んでしまってるのかな、と勘違いをしてしまうけど、
>>19の言ってるように、処理が完全に終わってないから、
表示エリアのスクロールバーをクリックしても、ドラッグしても、すぐには受け付けない状態。

0028デフォルトの名無しさん2012/02/21(火) 02:15:58.04
根本的な解決じゃないけど
ハイパーリンクがあるドキュメントとかでQTextBrowserをどうしても使いたいなら
QTextBrowser::setText()の前でカーソルを砂時計にするとか特定のWidgetをDisableにするとかしちゃって
QTextBrowser::document()で取得したQTextDocumentオブジェクトのcontentsChanged()シグナルで元に戻せば
テキストの成形中の操作をさせなくはできるかも
0029デフォルトの名無しさん2012/02/22(水) 02:31:08.58
PySide楽しすぎワロタ
0030デフォルトの名無しさん2012/02/22(水) 11:27:03.63
それはよかった
0031デフォルトの名無しさん2012/02/22(水) 22:37:42.73
Qtで作ったアプリを配ってるんだが(Windows)、最初の立ち上がりが結構遅いみたい。
ライブラリのロードに時間がかかってるのかなあと思ってるんだけど、
立ち上がりを速くするにはどうしたら良いんだろう。
あと、例えば、最初にファイル選択ダイアログを表示する時にも、ちょっと遅いよね。
あれってどうしようもないのかな。結構、欝になる。
0032デフォルトの名無しさん2012/02/22(水) 23:13:09.22
俺の実装がまずいのかと思ってたら、似たような問題抱えてる人いるんだな
0033デフォルトの名無しさん2012/02/22(水) 23:30:00.97
.NET系やJava系よりはずっと早いんだけど
DelphiとかMFC製のネイティブアプリと比べると、体感できるくらい遅いよな
0034デフォルトの名無しさん2012/02/22(水) 23:53:06.76
UPXで圧縮すれば多少早くなるかもしれない
CPUが遅いと余計遅くなるかもしれないけど
0035デフォルトの名無しさん2012/02/23(木) 00:31:35.06
>>31
必要なライブラリを使うダミーのプログラムを作って
サービスとして登録しておけば委員で内科医
0036デフォルトの名無しさん2012/02/23(木) 00:45:22.54
遅いってどのくらい遅いの?自分は体感できないな
最小限のプロジェクトでQWidgetをshowするだけのプログラムでも遅いの?

使うライブラリによっては、mingwコンパイルするよりvcコンパイルしたほうが立ち上がりが早いことはある
0037デフォルトの名無しさん2012/02/23(木) 01:44:16.98
QtCreatorの立ち上げからしてもっさり
0038デフォルトの名無しさん2012/02/23(木) 02:13:13.89
インストールも時間かかりすぎ
170Mのファイルインストールで1.5GBってでかすぎ
0039デフォルトの名無しさん2012/02/23(木) 09:32:55.57
あれはadobeがする
0040デフォルトの名無しさん2012/02/23(木) 10:04:03.07
GTK+みたいにGUI部品のツールキットとして始まってるわけだから
Win32ネイティブなGUI部品をそのまま使うやつに比べれば重いし
ファイル容量が大きくなるのは当たり前。(それでもDelphiより重いかなあ)
無意味に.NETなアプリケーションが増えている現在速度はあまり気にしてなかったが
同梱しなきゃなんないdllのサイズは頭が痛い。
けどファイルダイアログなんかはWindowsのをそのまま使ってるんじゃなかったっけ?
0041デフォルトの名無しさん2012/02/23(木) 10:42:40.15
>>31
そんなに重いか?
VS2008のコンパイラでビルドしたexeだけど,PC起動して最初に立ち上げても
2〜3秒でメインフォームが表示されるよ。フォーム上に何十個かのウィジットが
あるけど。

起動時に何か処理が入ってない?
そもそも組み込み用途でショボイCPUでも使われてるわけで,PCでやたらに遅かったら
組み込みでは使い物にならないと思うが。

>>40
ファイルダイアログは,Windowsネイティブのものと,Qt独自のものが選択できる。
>>31の話はどっちかな?
0042デフォルトの名無しさん2012/02/23(木) 10:43:57.32
実際に使用する部分だけをdllにしてくれるようなツールがあればいいのに
0043デフォルトの名無しさん2012/02/23(木) 21:57:49.40
VCで静的リンクすると、ただフォーム出すだけのアプリでどんくらいのサイズになるのかな
0044デフォルトの名無しさん2012/02/23(木) 23:31:01.39
>>41
> ファイルダイアログは,Windowsネイティブのものと,Qt独自のものが選択できる。

選択できる?

オンラインマニュアルには、Windowsの場合、スタティックな関数

  QFileDialog::getExistingDirectory
  QFileDialog::getOpenFileName
  QFileDialog::getOpenFileNames
  QFileDialog::getSaveFileName

では、nativeのファイルダイアログが使われるようになっている
って書かれてある。
選択できるとは書かれていない。

もともと、普通に使っていれば、nativeなファイルダイアログが表示されるはず。
0045デフォルトの名無しさん2012/02/23(木) 23:47:51.63
QFileDialog *dialog = new QFileDialog;
dialog->show();
これはQt独自
0046デフォルトの名無しさん2012/02/23(木) 23:50:35.36
スタティックな関数でないほう(インスタンス作ってexec())を使うと
常にあの微妙なダイアログが出てるから選択できるんじゃないのか
0047デフォルトの名無しさん2012/02/24(金) 00:13:05.06
QFileDialog::DontUseNativeDialog
使ったことはないが。
0048デフォルトの名無しさん2012/02/24(金) 01:08:16.03
オブジェクト指向なライブラリは重い気がする
0049デフォルトの名無しさん2012/02/24(金) 01:32:06.02
キモオタニート
0050デフォルトの名無しさん2012/02/24(金) 01:48:15.59
>>45-46
ああ、そういうことか。
わざわざそっちの方を使う人もいるのかな?
0051デフォルトの名無しさん2012/02/24(金) 02:16:34.05
がっつりカスタマイズしたいときとか、クロスプラットフォームなソフトだと便利なこともある
0052デフォルトの名無しさん2012/02/24(金) 03:13:50.59
ソフトの挙動がOSごとに異なるのはサポートが面倒な場合があるかもね
0053デフォルトの名無しさん2012/02/24(金) 04:08:02.24
FireAlpacaが話題だねぇ
0054デフォルトの名無しさん2012/02/24(金) 05:39:46.19
こんなところまでステマか
0055412012/02/24(金) 06:06:34.62
>>44,>>50
ドキュメントの読み方が浅いよ。>>47が正解。
QFileDialog::getOpenFileName()とかのスタティック関数でも,最後の引数
(Options)に指定できる。

だいたいさぁ,やってみたことあるから書いてるに決まってるじゃないか。
良く調べもせずに噛み付いて恥ずかしくないか?
0056デフォルトの名無しさん2012/02/24(金) 08:48:34.99
C++でプログラム書くのを覚えるとCでプログラム書くのは無理
Cを読むくらいならできるけど、Cで書くなんてバカらしくてやってらんない
0057デフォルトの名無しさん2012/02/24(金) 08:50:08.30
How To Become A Hacker
http://cruel.org/freeware/hacker.html

もしコンピュータ言語をなにも知らないなら、まず Python から始めることを
おすすめします。設計がきれいだし、ドキュメントもしっかりしているし、
初心者にもそこそことっつきやすくできています。でも入門言語として最適でも、
おもちゃではありません。強力で柔軟で、大きなプロジェクトにもじゅうぶん
対応しています。

Java もプログラミングを学ぶにはよい言語です。 Python よりはむずかしい
ですが、できるコードは Python より高速です。二番目の言語としてはとても
すぐれていると思います。

本気でプログラミングをするなら、C を勉強するしかありません。これはUnix の
中核となる言語です。C++ は C と密接な関係にあります。片方を知っていれば、
もう片方を学ぶのはそんなにむずかしくありません。が、どっちも真っ先に
勉強しようとするのには向いた代物ではありません。
0058デフォルトの名無しさん2012/02/24(金) 10:19:20.15
c++なんてどこまでいっても便利でカオスなCじゃん
Cでキッチリかけないやつなんてわかってないだけ
0059デフォルトの名無しさん2012/02/24(金) 12:19:54.39
C++使わないでCでプログラムをするのは
足を使わないで自転車に乗るようなもん
出来ないことはないが馬鹿らしくてやってられない
0060デフォルトの名無しさん2012/02/24(金) 22:36:32.70
CとC++の話は別にどうでもいいですん
0061デフォルトの名無しさん2012/02/25(土) 01:07:15.57
すん
0062デフォルトの名無しさん2012/02/25(土) 01:11:27.53
>>41
ずいぶん偉そうな言葉遣いだな。
プログラムの前に日本語を覚えなw
0063デフォルトの名無しさん2012/02/25(土) 02:02:32.48
CとC++のどっちがいいかなんて無意味。
目的のためなら利用できるものは何でも利用するべきなんじゃないのかな。

でも、はっきり言って、Cでまともなプログラムが書けない人は
やっぱりC++でもまともなプログラムを書いてないよね。
危なっかしいプログラムを平気で書いてる。
0064デフォルトの名無しさん2012/02/25(土) 02:04:13.52
ってか、Qtは大抵の人が安全に使えるから人気があるんだろうね。
そのぶん、パフォーマンスが落ちてるような気がするけど。
0065デフォルトの名無しさん2012/02/25(土) 09:35:19.25
>>62
どこが? で、本題はどうしたの?
0066名無しさん2012/02/26(日) 11:58:23.71
検索エンジンも業務効率の改善にいそいでいる。
0067デフォルトの名無しさん2012/02/26(日) 12:38:25.94
>>31, >>32, >>33
同じく。QtFileDialogのスタティック関数を使ってるけど、最初使うとき体感できるほど遅いね。
dllのロードに時間がかかってるんだろうな。
0068デフォルトの名無しさん2012/02/28(火) 21:56:56.07
ウインドウを不活性にして読み込み中・・・みたいなダイアログ?を表示したいんですけどどうしたらいいでしょうか
0069デフォルトの名無しさん2012/02/28(火) 23:55:04.69
adobeはflashの役割をhtml5にとられるだろうけど、
そのうち、photoshopをarchemyで実装しだすと思う。
javaもc#もクロスプラットフォームなRIAとしては今一な感があるし、
コアなロジックなんかはc++で書いた方がよほどコードをつかいまわせる。
余ったflash技術者にプレゼンテーション層をまかせるとなれば、
今後はqtの採用が減るんじゃないだろうか
0070デフォルトの名無しさん2012/02/29(水) 04:07:43.01
なんか最近見るスレ見るスレで
フォトショ関係のオナニー長レス見かけるんだけど…
0071デフォルトの名無しさん2012/02/29(水) 23:43:05.67
>>69
Qt 5の開発が遅れ気味で、安定するのにも時間がかかるだろうから、新機能は当分使えない。
Qt 4の改良は止めてしまっていて、同じく目新しいことはない。
Qtが停滞している間に、他のものを使うようになる。
0072デフォルトの名無しさん2012/03/01(木) 01:28:24.99
qt5はコアな部分から最適化のためにかなりいじってるみたいね
0073デフォルトの名無しさん2012/03/01(木) 01:29:34.46
他のものの候補ってナニ?GTK位しか知らないんだが
0074デフォルトの名無しさん2012/03/01(木) 18:59:49.51
どーせいつものアンチNokiaの粘着だろ
0075デフォルトの名無しさん2012/03/01(木) 22:53:50.90
>>68
だれかしりませんか・・・
0076デフォルトの名無しさん2012/03/01(木) 23:12:23.00
>>75
要するにボタンのないモーダルダイアログを表示して、プログラムのコードで閉じたいって
ことだよね?

それならQDialog::open()を使えば良い。この関数はダイアログをモーダル表示して
すぐにリターンする。閉じる時はclose()で閉じる。
0077デフォルトの名無しさん2012/03/01(木) 23:40:02.48
>>76
ありがとうございます
やってみます
0078デフォルトの名無しさん2012/03/02(金) 10:30:42.57
VS11のExpressEditionはWin8専用で、Metroアプリしかビルドできないみたいだぞ
競合IDEメーカーがいなくなったからPro以上を売りたいのかも知れないが
Qt Creatorの存在をお忘れだったようだな!
0079デフォルトの名無しさん2012/03/02(金) 13:35:41.65
いいかげん板違い。マ板にでも行って分かったようなこと語っててくれ
0080デフォルトの名無しさん2012/03/02(金) 23:12:23.11
Nokiaの腰巾着よりまともだな。
0081デフォルトの名無しさん2012/03/03(土) 12:41:07.43
ソースから特にオプションをつけないでビルドしたら30GBになってしもた
気をつけてね
0082デフォルトの名無しさん2012/03/03(土) 12:57:09.69
サイズを小さくするには
どんなオプション付けるん?
0083デフォルトの名無しさん2012/03/03(土) 15:43:00.32
QT初心者だが、
qmake -project
qmake
make
ってやったら don't know how to make 'FORCE' と出たんだが。
0084デフォルトの名無しさん2012/03/03(土) 16:38:25.08
qbs の紹介
http://labs.qt.nokia.co.jp/2012/03/03/introducing-qbs.html
何年もの間、qmake とは愛憎の入り混じった関係を育んできました。
ちゃんと仕事はしてくれるのですが、うまく行かないこともあり、
多くの人がメンテナンスは不可能だと考えています。
0085デフォルトの名無しさん2012/03/04(日) 01:56:06.39
noDebug
0086デフォルトの名無しさん2012/03/04(日) 02:14:48.29
>>82
pdbファイルがでかいので-nomake samplesなのかも
0087デフォルトの名無しさん2012/03/05(月) 23:44:22.01
Qt初心者です。
resizeEventに関して質問があります。
QPlainTextEditにでかいファイルを読み込ませた状態で
「MainWindowのサイズを変更したことによる
リサイズイベント」が発生すると、非常に処理が重いです。

- イベントの発行数を減らす
- qsplitの子ウィジェット感のサイズ変更のように、
サイズ変更が終了した時だけ描画する

などで対処したいのですが、何か良い方法はありませんか。
現在の第一候補はQPlainTextEditの resizeEvent のオーバーライドで、
イベント発行数を1/5ぐらいにする方法です。
(親クラスのリサイズの呼び出し回数を減らす)
ただ、問題もありそうなので、もっと良い方法を探しています。

アドバイスいただけないでしょうか。
よろしくお願いします。
0088デフォルトの名無しさん2012/03/06(火) 08:10:51.62
>>87
> QPlainTextEditにでかいファイルを読み込ませた状態で
> 「MainWindowのサイズを変更したことによる
> リサイズイベント」が発生すると、非常に処理が重いです。
リサイズイベントハンドラのソースは以下のようになっています。
if (e->oldSize().width() != e->size().width())
d->relayoutDocument();
たぶん、relayoutDocument() で右端で折り返す処理を行なっているんだけど、
行数が多いとこれに処理時間がかかってしまうんだと思う。

表示されている部分だけをレイアウト処理して、それ以外はマルチスレッド化
するといいとは思うけど、対処はかなり難しいと思う。
0089デフォルトの名無しさん2012/03/06(火) 15:05:57.99
初心者質問ですんません
エンターを押下したら特定のプッシュボタンをクリックしたのと同じ効果となる方法ってありますか?
0090デフォルトの名無しさん2012/03/06(火) 15:24:06.43
>>89
> エンターを押下したら特定のプッシュボタンをクリックしたのと同じ効果となる方法ってありますか?
keyEvent() で エンター かどうかを判定し、そうなら プッシュボタンの clicked() シグナルを
エミットすればいいんじゃね?
0091デフォルトの名無しさん2012/03/06(火) 17:48:41.87
>>90
clicked()シグナルのエミットのみでは、クリックしたのと同じ効果にはならないし、
エンターの判定には、どこにフォーカスがあるかどうかも考慮する必要があります。

>>89
プッシュボタンのanimateClick()を呼べばクリックしたのと同じことになります。
例えば、どこでもよいからエンターを押したのを判断するならば、QApplicationにイベントフィルターを設定して、
エンター押下を判断して、特定のボタンに対して、animateClick()を呼べばよいでしょう。
0092デフォルトの名無しさん2012/03/07(水) 09:25:07.05
>>89
QDialogだけかもしれないけど、QPushButtonのdefaultをtrueにすれば良さそう。
0093デフォルトの名無しさん2012/03/07(水) 19:39:54.77
>>92
QLineEditなどがあったらダメでしょう。
0094デフォルトの名無しさん2012/03/07(水) 21:33:35.28
Qtwebkitの開発停滞してんなあ
0095デフォルトの名無しさん2012/03/07(水) 23:06:48.54
ちょっと質問。
QListとかQHashなどのコンテナってスレッドセーフにできてるんですか?
自分の作ったものじゃないウィジェッドを使ってプログラムを作ってる最中なんですが、
スロットの中で、QListのメンバ変数にデータを追加する時に、
アクセスエラーと言われて落ちてしまいます。
0096デフォルトの名無しさん2012/03/07(水) 23:24:15.12
基本的にドキュメントにスレッドセーフってわざわざ書いてないものについては
自動で排他制御したりはしてくれないので
別スレッドからインスタンスに触るときは、QMutexLockerなりなんなりで保護しないとダメです
0097デフォルトの名無しさん2012/03/08(木) 00:14:47.45
ありがとうございます。なるほど・・・。
QMutexLockerってものがあったんですね。
0098デフォルトの名無しさん2012/03/08(木) 03:28:15.66
オープンソースのものをとりあえずコンパイルしてみたいという段階の初心者なのですが、

CMake Error at c:/CMake/share/cmake-2.8/Modules/FindQt4.cmake:575 (MESSAGE):
It appears you're trying to use Visual Studio with Qt built by mingw.
Those compilers do not produce code compatible with each other.
Call Stack (most recent call first):
CMakeLists.txt:52 (FIND_PACKAGE)

これはどう言ったエラーでしょうか

mingwとgccでcmakeしろと書いてあったのでやってみています。
エラー文でclがないとエラーが出たのでvisual studio expressを入れて、
次はqtがないとエラーが出たのでqt sdkを入れてみました。
エラー文はqtとvisual studioは競合しているように言ってるように思うのですが・・
0099982012/03/08(木) 05:21:04.47
qt sdkでないqtを入れてみたら先に進みました
失礼しました
0100デフォルトの名無しさん2012/03/08(木) 07:55:37.66
ありがとう
0101デフォルトの名無しさん2012/03/08(木) 11:20:27.25
Designerへのプラグインの登録についての質問です。

Linuxで自分の作成したプラグインをDesignerで使用するには
/usr/lib/qt4/plugins/designerに放りこめば使えるようになりました。

ただこれにはroot権限が要る為、
一般ユーザがそのユーザのみで使用する場合は
どのようにDesignerにpluginを登録すれば良いでしょうか。

何かパスを通すなどで解決するのでしょうか。
■ このスレッドは過去ログ倉庫に格納されています