1 名前:デフォルトの名無しさん [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】 toro.2ch.net/test/read.cgi/tech/1313727889/
231 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/05(木) 07:58:01.23 ] >>229 Qt 4ではドライバがあっても問題が多過ぎて満足に使えませんでした。 問題を報告したら、今のアーキテクチャではもう無理なので、Lighthouse迄待ってくれと言われました。 Qt 4.8のLighthouseのOpenGLドライバは、問題がまだあるけれどそこそこ動きます。
232 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 11:05:12.73 ] みなさんって Qt4 を Windows か Mac、Linux もしくは 複数のどれで利用しています? アプリケーションの大枠としてはだいたい同じ挙動になりますが、OSごとに若干GUI系のレスポンスが違いませんか。。。 Windowsだけ、このWidget_Aが遅くてアップデートがうまく動かないとか、 Macだけ、このWidget_Bが遅くて、もっさりしているとか。 Windowsだけ、QLineEdit(コピペしたときの見た目が更新されない), と QTreeWidget(1クリックでフォーカスが表示されない) のアップデートが遅く、 Mac だけ QTreeWidget の plasticStyle がもっさり(カクカク)しています。 解消したいんですが、OS特有なんで原因がよくわからないんですよね。。。
233 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 22:26:04.52 ] >>232 ここ数年こういったQtの実装の不十分さが目立って来ています。 報告しても、古いからもう改善しないとクローズされるのが何度もあって、言う気も失せています。
234 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/08(日) 00:50:31.53 ] そのへんはしかたないと思うけどね。 Javaとかと違ってネイティブで動くことに意味があるんだし。
235 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/08(日) 00:55:01.74 ] QMLの不具合は報告するとすぐさま修正されるよ QWidgetは放置されるけど
236 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/08(日) 11:16:36.41 ] 馬鹿には無理
237 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/08(日) 11:44:19.69 ] オプソは総じて、過去の遺産のメンテみたいな面白くもないことはしたがらないからな 自分で直すか有償サポート申し込めってことだな
238 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 12:35:16.58 ] オープンソースといってもNokia関係者が8割だそうだ。
239 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/09(月) 12:59:20.02 ] NokiaはQMLで何がしたいんだろう?
240 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 17:20:24.03 ] Qtで作ったMeeGoを捨てて、Windows Phoneに寝返ったNokiaに、 もう一度Qtの開発者達へ目を向けさして、Nokiaのメインストリームにして欲しいんじゃないかな。
241 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 22:51:02.32 ] Qtの GUI 系のアップデートって、メソッドの呼び出し順序で挙動が変わりますね。 QPlainTextEdit を拡張して、左側にラインナンバーを表示させているのですが、 再定義を以下のようにすると paintEvent(QPaintEvent *e){ lineNumberArea->repaint(); <--- (1) QPlainTextEdit::paintEvent(e); <--- (2) } Editer本体の描画がうまく動かなかったのですが、 この(1)(2)を逆にしたら問題なく動くようになりました。 重要なイベントを先に動かしたほうがいいみたいですね。
242 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:06:09.30 ] 単に理解できてないだけなんじゃね
243 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:11:35.16 ] それは単純に、(2)が上書きしているからじゃないの? Widget が透ける設定じゃなけりゃ、塗りつぶすでしょ。
244 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:33:02.87 ] >>243 PlainTextEditの描画を少し右寄せして、空いた隙間にライン描画のための QWidget を配置しています。 両者は重なっていないので、塗りつぶしは発生しないです。 ペイントイベントが半動きのようになっていて、以下のような症状がでていました。 - スライダーを動かすと、上下 20 % が空白になる - 停止すると Editer が真っ白 - クリックすると、描画され文字が確認できる - カーソルを動かすと、現カーソル行だけが空白 - 左側 30%ほどしか描画されない 上記は全て同時に発生するのではなく、このうちのいくつかが複合的に起きていました。 Win/Macともに問題なかったコードを、Macでコードをリファクタリングしたあとに、 Windowsで動かすと急に上記のような症状が現れて焦りました。 きちんと両方で検証しながらコードの修正変更を加えないと危ういですね。。。
245 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 00:28:09.75 ] >>244 >PlainTextEditの描画を少し右寄せして どのようにして右寄せにしていますか。
246 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 14:09:33.70 ] なんでupdateじゃなくてrepaintなの? あと qt-project.org/doc/qt-4.8/qwidget.html#paintEvent の > Generally, you should refrain from calling update() or repaint() inside a paintEvent(). > For example, calling update() or repaint() on children inside a paintevent() > results in undefined behavior; the child may or may not get a paint event. は関係あるのだろうか
247 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 23:00:20.51 ] >>245 setViewportMargins(x, 0, 0, 0); ですね。 >>246 QPlainTextEdit の 継承クラスの中に QWidget(ライン番号表示)を持っていたのですが、 両者のアップデートのタイミングが異なっており、「行番号がアップデートされずに、 実際の行と食い違いがある」という状態になっていました。 なので、継承クラスで PaintEvent をオーバーライドし、 「本来のPaintEvent + 同時にアップデートされなかったWidgetのアップデート」 を行うようにしています。
248 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 23:01:56.89 ] 伝え忘れましたが、行番号はSQroll範囲全てにあるわけではなく、 現在見ている Window範囲にしか存在せず、必要に応じて行番号を アップデートする仕組みで動作しています。
249 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 23:04:30.55 ] >>246 どっかのドキュメントで 「update ではなく、repaint を呼び出すべき」というのを見かけ、 それを盲目的に信じていました。 申し訳ないですが、一ヶ月近く前の話なので覚えていないです。ごめんなさい。
250 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 23:14:29.07 ] lineNumberArea実装の例はQtのサンプルに含まれてるよ 俺はそれ参考にして実装してる
251 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 23:20:05.39 ] >>244 >塗りつぶしは発生しないです どうやって確認したの?
252 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 23:21:17.23 ] Code Editor Example | Documentation | Qt Developer Network qt-project.org/doc/qt-4.8/widgets-codeeditor.html
253 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 23:45:22.15 ] >>250 ,252 私もこれを参考にしました。 LineNumberAreaの行番号表示のアルゴリズム と、QPlainText の共存方法自体はほぼ同じです。 ただ、描画イベントの処理系はサンプルのままだとうまく動かなかったので、変更を加えています。 あと、他機能との実装の兼ね合いもあるので。。。 >>251 エリアがかぶっていないからです。 <--LineNumberArea-> <----(blank)--------------|----QPlainTextArea--------------> というような感じですね。
254 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 23:48:57.16 ] 結局、Qtのせいではなくて理解が足りなかったということでおk?
255 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:04:59.07 ] >>254 私はエキスパートはおろか、本業プログラマですらないので、 Qtの問題性を疑うより私の理解不足を疑うほうが妥当だと判断します。 ただ、文脈を持たないその指摘に、なんの意味があるかがよく分かりません。 低レベルな質問でスレ汚しをするな、という指摘なら謝ります。
256 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 08:29:10.49 ] >>255 > 私はエキスパートはおろか、本業プログラマですらないので、 > Qtの問題性を疑うより私の理解不足を疑うほうが妥当だと判断します。 以下の文章は自分の理解不足を疑った方がいいと判断している人の 文章には思えないのだが 理解不足の人が知ったかぶって不完全な知識をひけらかしているように読めた > Qtの GUI 系のアップデートって、メソッドの呼び出し順序で挙動が変わりますね。 > QPlainTextEdit を拡張して、左側にラインナンバーを表示させているのですが、 ===中略=== > 重要なイベントを先に動かしたほうがいいみたいですね。
257 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 20:21:10.84 ] 煽るより正しい情報を書き込めよ
258 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:10:03.60 ] 実践 Qt 4プログラミング www.oreilly.co.jp/books/9784873115078/ 目次 推薦のことば 序文 本書で使用されている表記規則 意見と質問 謝辞 1章.デスクトップ用ハイブリッドインターネットアプリケーション 1.1 インターネット指向ウィジェット 1.2 WebKitの適用 2章.オーディオとビデオ 2.1 QSoundと QMovieの適用 2.2 Phononマルチメディアフレームワーク 3章.モデル /ビュー.テーブルモデル. 3.1 Qtのモデル /ビューアーキテクチャ 3.2 テーブルに対する QStandardItemModelの使用 3.3 カスタムテーブルモデルの作成
259 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:10:25.48 ] 4章.モデル /ビュー.ツリーモデル. 4.1 ツリーに対する QStandardItemModelの使用 4.2 カスタムツリーモデルの作成 5章.モデル /ビュー.デリゲート 5.1 データ型固有のエディタ 5.2 データ型固有のデリゲート 5.3 モデル固有のデリゲート 6章.モデル /ビュー.ビュー 6.1 QAbstractItemViewのサブクラス化 6.2 モデル固有の可視化を行うビュー 7章.QtConcurrentを用いたスレッド化. 7.1 スレッド内での関数実行 7.2 フィルタとマップによるスレッド分散 8章.QThreadを使ったマルチスレッドプログラミング 8.1 独立データの処理 8.2 共有アイテムの処理 9章.リッチテキストエディタの作成 9.1 QTextDocumentの概要 9.2 カスタムテキストエディタの作成 9.3 リッチテキスト単一行エディタ 9.4 複数行リッチテキスト編集
260 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:10:54.60 ] 10章.リッチテキストドキュメントの作成 10.1 QTextDocumentから書き出したファイルの品質 10.2 QTextDocumentの作成 10.3 ドキュメントの書き出しと印刷 10.4 ページを描く 11章.グラフィックス /ビュー.ウィンドウの作成 11.1 グラフィックス /ビューアーキテクチャ 11.2 グラフィックス /ビューウィジェットとレイアウト 11.3 グラフィックスアイテム入門 12章.グラフィックス /ビュー.シーンの作成 12.1 シーン、アイテム、アクション 12.2 QGraphicsViewの拡張 12.3 ドックウィジェットツールボックスの生成 12.4 カスタムグラフィックスアイテムの作成 13章.アニメーションと状態マシンフレームワーク 13.1 アニメーションフレームワーク入門 13.2 状態マシンフレームワーク入門 13.3 アニメーションと状態マシンの結合 終わりに 精選参考文献 索引 オライリーの新刊は内容的に入門書ではないね。 マルチメディア系てんこもりで期待大。
261 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 22:21:57.74 ] エディタの所のカスタムテキストエディタは、1行エディタとかやってるとこからして IME周りからやってくれるのかな?だとしたらほしいなあ。よくわかんないし
262 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 01:23:36.35 ] 翻訳元これかな、サンプルコード見るとそこまで凝ったエディタでもなさそう Advanced Qt Programming www.qtrac.eu/aqpbook.html
263 名前:デフォルトの名無しさん [2012/04/12(木) 01:35:00.34 ] QTextEditの使い方の説明だよ
264 名前:デフォルトの名無しさん [2012/04/12(木) 08:36:37.86 ] Mac OS-X Lion 10.7.3 に Qt SDK 1.2.1 をインストールしようとすると、 C++ コンパイラが無い、Xcode の最新版をインストールしろと言われます。 Xcode 3.2 を既にインストール済みだったので uninstall-devtools で消し、 Xcode 4.3.2 を App Store からインストールしました (/Application/Xcode.app が出来、空の Cocoa プロジェクトがビルド出来る ことを確認しました) しかし、Qt SDK 1.2.1 をインストールしようとすると、以前と同様に C++ コンパイラが無い というダイアログが表示されます。 どうしたら SDK をインストール出来るのでしょうか?
265 名前:264 mailto:sage [2012/04/12(木) 08:38:46.24 ] すみません訂正です。 誤:/Application/Xcode.app 正:/Applications/Xcode.app
266 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 08:56:20.72 ] >>264 頑張ってこのスレ読み返せば解決する
267 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 09:25:27.01 ] >>266 > 頑張ってこのスレ読み返せば解決する 情報ありがとうございます。xcode で検索して >>166 を発見しました。 >>166 > 需要は無さそうですが、解決したので念のため。 いえいえ、需要大有りです。大変助かりました。 ありがとうございます。 今、Qt SDK 1.2.1 をインストール中です。C++ が無いというエラーダイアログ は出なくなりました。
268 名前:デフォルトの名無しさん [2012/04/12(木) 13:58:42.21 ] Mac で QTextEdit に(フォントはデフォルトのまま)日本語の文字を入れると、 行が下に少しずれるのですが、これはそういうものなのでしょうか? ずれないように対処する方法がありましたら、ご教授ください。 よろしくお願いします。
269 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 22:22:44.26 ] Threadの継承クラス以外で sleep 関数に類似する関数は使えないのでしょうか。 QMainWindow を close する際に、child thread (無限ループ)を終了させたいです。 closeEvent を継承して、その中で以下のような形で実装するつもりだったんですが、 QThread::sleep() は protected だとコンパイラに怒られてしまいました。 アドバイスいただけないでしょうか。 thread->terminate(); while(true){ sleep(100); if(thread->isFinished()) break; } QTest に sleep があったのですが、これはとりあえず保留しています。
270 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 22:46:34.89 ] sleep の問題の解決になっていないのですが、threadの終了を待つには thread->terminate(); while(!thread->isFinished(){ QCoreApplication::processEvents(); } で十分でした。 マシンによると思うのですが、うちのやつだと100回以内にループを 抜けていたので sleep するレベルではありませんでした。
271 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 22:53:29.53 ] wait()だろ普通
272 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 23:09:12.95 ] >>271 wait() って、そのインスタンスに走らせたスレッド(runが動いているやつ)を止めるのではなく、 呼び出し元のを止めるんですね。。。 wait()を使うことにします。 ありがとうございました。
273 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 23:17:50.70 ] wait()はメインスレッド止まるけど、while使うとQCoreApplication::processEvents()呼ぶから画面がぬるぬる動くんじゃね
274 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 07:31:31.12 ] >>270 QTimer::singleShot()で呼び出されるスロットで、スレッドの終了判定をするというのはどうでしょうか。 スレッドが終了していなければ、singleShot()を再度呼び出す。 ビジーループにならず、wait()でメインスレッドが固まるのも避けられます。
275 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 09:40:19.86 ] >>269 >Threadの継承クラス以外で sleep 関数に類似する関数は使えないのでしょうか。 QTest::qSleep()は別として、メインスレッドでsleep関数に類似するものを使うとGUIが固まるので、 敢えて用意していません。
276 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 13:22:55.99 ] QTimerだとかで小細工しなくても、こんなんで十分じゃね? while(!thread->wait(300)) { qApp->processEvents(); }
277 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 00:11:59.16 ] 270です。 >>273 確かにそうですね。挙動として問題がないので、結局この実装のままにしています。 >>274 closeEvent 内部で終了を待ちたかったので、今回の処理はそれは利用しませんでした。 その方式が一番 GUI に負担が少なくていいですよね。 >>275 sleep に関わらず main thread で時間がかかる処理はやらせないほうが無難みたいですね。。 入門書にあった基本中の基本ですが、頭から抜けていましたw >>276 wait()のみと、while 方式の両方のいいとこをとったような実装ですね。 while内の判定がスマートw
278 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 00:54:10.88 ] Macでアプリの配布ってどうやります? Deploying an Application on Mac OS X qt-project.org/doc/qt-4.8/deployment-mac.html という記事を見つけましたが、もっと簡単にやる方法があったら教えてもらえないですか? できれば Qt Creator からそのまま出力したいです。
279 名前:デフォルトの名無しさん [2012/04/14(土) 03:57:34.72 ] 質問させてください。 QtCreator のアクションエディタで生成したQAction(button1)をQToolBar(toolBar)の 部分にドラッグアンドドロップして、 toolBarからそのbutton1を取得したいのですが、 QAction* button1 = toolBar->findChild<QAction *>("button1"); としてもヌルポインタが返ってきてしまうようです。 QtCreatorのデザイナーの右にあるパースペクティブでは、 ツリー構造でbutton1はtoolBarの子供のような感じになっているのですが、 uiファイルのxmlを見てみると親子関係になっていないようでしたので これがfindChildで取れない理由だと思うのですが、 どのようにすればbutton1のactionを取得できますでしょうか。
280 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 09:03:04.90 ] countとかすると、0じゃない値が帰ってくる? ワンラインで取ろうとせず、どの行程でコケてるか調べてみたら。 しばらく使ってないから忘れたけど menubar -> menu -> action って親子関係じゃなかったっけ?
281 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 09:04:22.15 ] あ、ごめん。menubar じゃなくて toolbar か。
282 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 09:17:00.41 ] ui->button1とかでアクセスできるだろ
283 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 10:52:39.37 ] 馬鹿には無理
284 名前:デフォルトの名無しさん [2012/04/14(土) 11:42:54.59 ] AccessとQtは同じくらい面白い。
285 名前:279 [2012/04/14(土) 12:36:13.14 ] レスありがとうございます。 uiを色んなモジュールで引き回しまくるのが嫌なので、できればtoolBarから取得したいのですが、なんとかならないものでしょうか。 QTでは普通、どのモジュールからもuiオブジェクトから個々の部品オブジェクトにアクセスするものなんでしょうか
286 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 12:38:25.90 ] 他のMacで動くか試していないですが、以下のコマンドを使うと Mac で アプリをデプロイできそうです。 # which macdeployqt /usr/bin/macdeployqt # cd /usr/bin/ # ./macdeployqt /PASS_TO_APP/myapp.app ※ myapp.app は Qt Creator で作ったアプリ これをやると、myapp.app が 1M ぐらいから 35M ぐらいに膨らんで、 パッケージの中にライブラリが色々と入っていたました。
287 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 12:46:35.96 ] >>285 その部分だけ ui じゃなくて、コードを使って GUI を作ったら? そしたら、toolBar から簡単に子供を取れるんじゃないかな。
288 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 13:39:19.28 ] じゃあ、toolbar->actions()から自分で検索すれば?
289 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 14:11:50.67 ] スレチかもしれんが、286のついでに。 Mac で Qtで作ったアプリにアイコンをつけたければ、 myapp.app/Resources/ に xxx.icns を追加。 info.plt を 開いて、追加したアイコンを icon に設定。 アイコンのファイル icns を作るには、Img2icns というアプリが便利だった。 www.macupdate.com/app/mac/18369/img2icns
290 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 14:13:37.19 ] ちなみに、286 の方法なのですが、snow leopard でコンパイルしたものは、 qt4 をインストールしていない lion で動きました。 10.5 はよくわからんです。
291 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 14:57:30.19 ] QT Creatorには新しいファイルの追加でC++ソース、ヘッダの追加は可能ですが 新しいフォルダの追加というのが見つかりません。 ソースファイルを下位フォルダを作成し仕分けする、というようなことは できないのでしょうか
292 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 15:12:45.71 ] できますよ
293 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 15:15:07.65 ] >>291 そんなもの下位フォルダ作ってソースをそこに置いて.pro書き換えればいいだけ。 何でもRADツールの機能に頼らないで、.proを手で編集することくらい覚えないと 使いこなせないよ。 つーか.proを直接編集する方が早いし、自由も利く。コメントも書けるし。
294 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 15:17:20.81 ] よく解らなくて、すいませんありがとうございました。
295 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 15:40:33.93 ] 291です。 >>292 >>293 レスありがとうございます。 今までは既存ファイルの追加で新しいファイルを追加していたので 新しいフォルダの作成は気に留めていませんでした。 .proの編集はライブラリ追加等で触っているので出来なくは無いのですが、 可能であればGUIから追加したいと思っていたのですが・・・。
296 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 16:37:06.65 ] 新しいファイルの追加で出てくるダイアログで右クリックしたらディレクトリくらい作れるだろ
297 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 16:49:14.93 ] Qtで作成したアプリケーションってデバッガ上じゃなきゃ動作しないのに なんで人気なの?
298 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 16:55:12.51 ] >>297 ha? Google EarthやPhotoshop Elementsがデバッガー上で動いてたか?
299 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 17:04:09.99 ] >>297 んなわけないだろ? QtのbinディレクトリにPATH通してないんじゃないのか?
300 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 17:06:15.77 ] >>295 ヤレヤレ。 やたらにソース嫁ってのもどうかと思うが、こういうのはやっぱりゆとりなのか?
301 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 18:27:02.18 ] >>293 ようやく理解できました。 フォルダがツリーに表示されている時はそこから追加、 フォルダが表示されるのはフォルダが必要になった時、なのですね。 先にフォルダだけ作ってからそこから新規作成するのだと思ってました。 >>300 申し訳ないです。出来れば煽りだけではなくソースの提示をお願いします。
302 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 18:30:12.52 ] >>255 と同じ臭いがする…
303 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 19:02:13.24 ] 馬鹿には無理
304 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 19:22:14.51 ] 286です。 このコマンドを利用したあとで、何度かコンパイルをしていたら QWidget: Must construct a QApplication before a QPaintDevice というエラーが出るようになりました。 コード的に問題はなく、きちんと new しているWidget にたいして GUI イベントを呼ぶタイミングでエラー起こっており、 ぐぐったら、どうやら - release と debug のコードが混ざっている - 実行ファイルとライブラリのバージョンが違う などの原因があるようです。 特定のコンポーネント(渡しの場合はQProgressDialog)でのみ発生する可能性があるので、 気をつけたほうがよさそうでした。
305 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 19:26:01.46 ] macは糞
306 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 19:27:03.60 ] >>304 馬鹿には無理
307 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 19:29:01.55 ] QWidget: Must construct a QApplication before a QPaintDevice QWidget: Must construct a QApplication before a QPaintDevice QWidget: Must construct a QApplication before a QPaintDevice QWidget: Must construct a QApplication before a QPaintDevice QWidget: Must construct a QApplication before a QPaintDevice QWidget: Must construct a QApplication before a QPaintDevice QWidget: Must construct a QApplication before a QPaintDevice QWidget: Must construct a QApplication before a QPaintDevice QWidget: Must construct a QApplication before a QPaintDevice QWidget: Must construct a QApplication before a QPaintDevice
308 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 19:30:06.78 ] なんで素人ってエラーメッセージ読まないんだろうな
309 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 19:39:10.41 ] エラーメッセージからは 「QPaintDevice を 使う前に QApplication を作れ」 とだけしか読み取れないのですが。。。 問題が発生するアプリケーションを破棄し、リビルド -> デプロイ用にコマンド呼び出し としたら直りました。
310 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 21:23:02.15 ] 既に Deploy したものを Qt Creator が上書きするのがよくないかもしれないですね。 毎回デスクトップにコピーしてから、それを Deploy 用にすることにします。
311 名前:285 [2012/04/14(土) 22:17:28.95 ] レスありがとうございます >>その部分だけコードで そうすれば多分解決すると思うのですが、デザイナでポトペタでやると うまくいかないというのが釈然とせず・・ デザイナで置いたアクションをうまくコード側で取得するすべはないものかと。。 >>actions() こんなメソッドあるんですね。 ただ複数actionあった場合は複数返ってきて、 それぞれ別の処理を加えたい時に面倒臭そうですね toolBar->serachAction('playButton'); みたいなことが出来ればいいのですが、 こういうメソッドはないのでしょうか?探しても見つからないです。 あまり需要がないということでしょうか。 コードでActionを生成しましょうということなのですかね・・
312 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 22:22:59.77 ] ないときはつくれよ
313 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 23:08:28.81 ] >>311 自分でsearchActionとやらを作れ 余裕だろ
314 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 00:25:29.22 ] >>311 デザイナで作ると、アプリが複雑になるにつれて、機能を作り込むのがキツくなりませんか? コードでGUIも作ると、「この Widget 周りの処理が複雑になってきたなぁ」 -> 「継承 Widget に仕事を集約するか」 という流れが簡単にできると個人的には思っています。
315 名前:デフォルトの名無しさん [2012/04/15(日) 01:12:10.32 ] PyQt4で最近GUI開発を始めたのですが、わからないところがあったのでご教示願います。 SpinBoxの値などの変更と連動してWidget(PushButtonなど)の追加、削除を動的に行いたいのですが、なかなかうまくいきません。 TestWidgetというクラス(QWidgetを継承)にself.spinbox(QSpinBox)と、self.buttons(QPushButtonの配列)、self.buttonPanel(QWidget、self.buttonsをこの上に配置)、を持たせ self.spinbox.valueChanged.connect(self.setButtons)とし、 値が変わるごとにself.buttonPanelを作り直してみたり、 self.buttonPanelのlayoutをTestWidgetに持たせ、同様にしてlen(self.buttons)とspinboxの値に応じて layout.addWidgetやremoveWidgetで調整してみたり自分が思いつく限りのことはやってみましたがだめでした。(かなり的はずれなことをしているかもしれません) どうすればいいかわかる方がいらっしゃればお教えください。
316 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 01:25:16.19 ] それでいいよ
317 名前:デフォルトの名無しさん [2012/04/15(日) 01:30:23.82 ] >>315 です。説明不足な点があったので補足しておきます。 self.setButtonsは自作のメソッドで、 def setButtons(self,num): self.buttons=[] layout=QVBoxLayout() for i in range(num): self.buttons.append(QPushButton(parent=self)) layout.addWidget(self.buttons[i]) self.buttonPanel=QWidget(parent=self) self.buttonPanel.setLayout(layout) と言う感じにspinboxの値が変わるごとにbuttonPanelを作り直しています。 別インスタンスになっているから変更が反映されないのかとおもい、TestWidget全体のlayoutを再びセットしなおそうとしたら今度は別のところがうまく行かなくて...と言う感じでこの方法は断念しました。
318 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 01:32:12.61 ] それでいいよ
319 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 09:15:55.10 ] >>317 qtに限った話じゃないが、一気に作ろうとせず、ちょっとずつ挙動を 確認しながら作ってみたら? どっかでイベントが呼び出されていないとか、間違った変数を使っているとかさ。 あと、見た目じゃなく qDebug() などでwidetの構成を出力してみたりとか。 本当は追加されているのだけど、paintイベントが走らず見えていないだけかもよ。 まずは問題箇所を切り分けないと。
320 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 10:41:35.00 ] >>317 PySideだけどこんな感じで出来た pastebin.com/vT7YTcwX
321 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 12:51:06.84 ] 馬鹿には無理
322 名前:デフォルトの名無しさん [2012/04/15(日) 13:58:48.98 ] 他の部分のウィジェットにアクセスしたくなる度に渡す引数増やすのが大変そうなので 結局ui引き回しで実装することにしました。 アドバイスくださった方々ありがとうございました!
323 名前:デフォルトの名無しさん [2012/04/15(日) 14:45:22.27 ] >>319 >まずは問題箇所を切り分けないと おっしゃる通りです。しかしそうしようにもまだ何がどう動いているのかもわかっていない(したがって何が問題の原因となり得るのか適切に判断できない)状態なので、ちゃんと本などで勉強します。 >>320 できました!!ありがとうございます。 buttonPanelのlayoutをTestWidgetに持たせて追加・削除を行う方法は、試してみたといいったもののあまり真面目にやっていませんでした(その頃には疲れ果てていて...)。 ボタンの削除をしたときにウィンドウのサイズが縮小しませんでしたが、setButtonsが呼び出される度にself.resize()で大きさを直したやったらまだ少し挙動不審ではあるもののいけそうなので頑張ってみます。 ありがとうございました。
324 名前:デフォルトの名無しさん [2012/04/15(日) 14:52:53.68 ] QSignalMapperでスロットに2つ引数を渡したいのですが どう書けばよいでしょうか??
325 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 17:25:29.87 ] >>322 馬鹿の考え休むに似たりってやつか…
326 名前:デフォルトの名無しさん [2012/04/16(月) 21:30:16.10 ] せやから、AccessとQtは同じくらいおもしろい言うとるヤンか!
327 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 21:57:23.61 ] なんのはなしやねん
328 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 16:46:43.11 ] Qt 4.8.1のビルドに挑戦してます。 Windows7 64bit + VC2010Pro 64bit + ActivePerl 5.14.2 (32bit)の 環境です。しかし、ビルドがエラーで終了してしまいます。 configの指定次第でビルドが成功するのでしょうか。 ちなみに別のマシンのMingw32でも4.8.1のビルドは失敗してしまいます。
329 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 16:55:33.56 ] エラーメッセージ貼れ
330 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 01:49:52.57 ] エラーメッセージに原因が書かれてる そこを直せばコンパイルできる
331 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 02:05:07.91 ] 文字コードについて質問です ウェブからとってきたデータがEUC-JPなので、 QTextCodec* euc=QTextCodec::codecForName("EUC-JP"); QTextDecoder *dec = euc->makeDecoder(); としてデコーダー通して変換しても、どうもQtがEUC-JPに対応していないようです リファレンスにはEUC-JPもあるのですが・・・ どうすれば変換できるでしょうか。 環境は windows7, QtCreator2.4.0, Qt4.7.4 です