1 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 04:29:47 ] Qt(キュート)は C++ ベースの GUI ライブラリです。 フォーム、ボタンなどの各種ウィジェットからネットワーク、マルチスレッド、グラフィックス(OpenGL)や 各種コンテナ、XMLパーサー、組み込み JavaScript など、ライブラリの機能は多岐に渡ります。 また、「Qt Creator」という GUI ビルダ付きの専用 IDE が用意されています。 ■対応プラットフォーム(デスクトップ用途の場合) Windows 98, Me, NT4, XP, Server2003, Vista Mac OS X 10.3, 10.4, 10.5 Linux ■ライセンス ・オープンソース版(Open-source version) LGPL 2.1 または GPL 3.0 のうちどちらかを利用者が選べます。 LGPL を選んだ場合は商用利用が可能です(いくつか制限あり)。 ・商用版(Commercial version) こっちはQt Softwareか日本の代理店(SRA社)とライセンス契約(年間30万くらい?)を結んで使います ■Qt を使って作られたソフト例 KDE、Adobe Photoshop Elements、Google Earth、Skype、DAZ Studio など ■前スレ [KDE/Qt]Qtについての疑問を教えあうスレ 3 pc11.2ch.net/test/read.cgi/tech/1194158506/
369 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 06:09:25 ] QNetworkReplyHandler.hのmocに失敗してるみたいだね これエラーメッセージ >platform\network\qt\QNetworkReplyHandler.h(0): Warning: No relevant classes found. No output generated. でもQNetworkReplyHandler.hは4.5.1と中身一緒だから原因はさっぱり
370 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 08:50:57 ] >>364 つttp://calmlight.s2.zmx.jp/Qt4Note/qt4_note_top.html
371 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 10:44:34 ] >>369 QT4.5.2からVS2008に変えたんだけど、QT4.5.1はVS2008で問題なくビルドとおった? 少なくともQT4.5.1をVS2005でビルドしたときは問題なくビルドとおったけど。
372 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 10:51:54 ] >>371 VS2008そのものではないけれど、Windows SDKつかって win32-msvc2008 でコンパイルは 4.5.1 では問題なかった。 webkit もコンパイルできた。 4.5.2 はまだトライしてなかったのでわからないけれど。
373 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 11:26:04 ] >>371 全く同じやり方で通った さっき4.5.1に戻したから間違いない
374 名前:364 mailto:sage [2009/06/28(日) 13:32:43 ] >>370 Qt4 Note は分かりやすそうなんだけど、内容の正確さが結構心配だわ。 同じサイトの C++ Note ttp://calmlight.s2.zmx.jp/CppNote/cplusplus_note.html この辺が今ひとつ怪しい。Qtの解説は大丈夫なのかと。
375 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 13:37:01 ] >>373 Forumでも既に問題になっているね。 返信がないから、原因はいまだ不明。 ttp://labs.trolltech.com/forums/topic/859 とりあえず、webkitをビルドしないように、-no-webkit付けて しのぐとするか。
376 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 14:25:09 ] >>374 触りもしないでごたくばっかり並べてるお前みたいなカスよりもよほどマシ 目障りだから消えろクズ
377 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 14:38:21 ] >>376 まあまあ、そんなすぐ発火するなよ。 ごたくってどの辺が? 残念だが消える気は無い。
378 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 20:30:32 ] 死ね 氏ねじゃなく死ね
379 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 20:38:57 ] >>378 ・・・。 タイ━━━━||Φ|(|゚|∀|゚|)|Φ||━━━━ホ!!!
380 名前:デフォルトの名無しさん [2009/06/28(日) 23:43:06 ] >>374 英語のドキュメントを読めばいいじゃないの。 ソフトウェアを仕事や趣味にしているならば、英語のドキュメントを読んだ方が早く分かって楽しいですよ。
381 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 19:52:16 ] 最近Qt始めました ネットワーク処理が良くわからんっ! もう少し勉強しよう…
382 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 23:39:42 ] >>380 同意ですな。 英語のマニュアルも読めないような奴が新しいことに手を出すな、って。
383 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 05:35:40 ] そうやってすぐ排斥しようとするクセは直したほうがいいぞ Unixコミュニティにありがちだけど
384 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 05:49:22 ] 自分の人生から英語を排斥してる人が まずその排斥をやめろという話。
385 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 09:51:54 ] 説明文なんて単語の意味さえ分かればいいわけで、 機械翻訳でもOKさ。
386 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 09:57:56 ] VS2008 Professionalでwebkitを含めて問題なく4.5.2をビルド出来たぞ。
387 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 10:22:36 ] >>368 に返信ついてるな >Problem is in src/3rdparty/webkit/WebCore/tmp/moc/{debug,release}_shared/mocinclude.tmp >which produced empty moc_QNetworkReplyHandler.cpp file. > >Just remove it and then rebuild QtWebkit again. だそうだ
388 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 12:56:14 ] >>384 ムチャ言うなよw
389 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 13:15:26 ] 無茶なのかよw
390 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 13:15:31 ] 中高レベルの英語すら他人に頼る奴がプログラミングに挑戦する方が無茶だよ
391 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:19:15 ] 敷居を下げるためにも日本語のリファレンスはあったほうがいいと思うけどね
392 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:33:35 ] 俺は英語読めてすごい まで読んだ
393 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:42:59 ] 読むだけなら馬鹿でもできるってことだろ そんな真っ赤になるなよ
394 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 16:45:20 ] 「恐らくコイツは、英語ができる自分を凄いと思っているのだろう」 という発想自体があり得ないよね。どんだけ低学歴なのかと。
395 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 18:32:14 ] 日本語リファレンスがあるとユーザーが増えるのは確かなわけで ユーザーが増えないとQtの先行きも不安だから 英語で読んでる俺も和訳を応援したいと思いつつ 「じゃあお前も手伝え」とか言われたら面倒だし しかも手伝ったら「お前和訳へたくそ」とか「なにこの超訳wwこいつ読めてねえwww」とか言われて ショックで立ち直れなくなったらイヤなので あえてここは「そのくらい英語で読めよwww」と煽られる前に煽っておく
396 名前:デフォルトの名無しさん [2009/06/30(火) 19:56:13 ] >>391 ざっと数えてみると2万ページ近く。翻訳会社に出すと1億。 162億も出して買収したNokiaに是非翻訳してもらいたい。
397 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 20:39:41 ] try{ MainWindow w; w.show(); return a.exec(); } catch(char* err) { QMessageBox::warning(0, "System Error", err, QMessageBox::Ok); } としたら、エラー時突然死してしまいます。 Qtの場合catchはどこで取ればいいんでしょうか?
398 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 21:54:59 ] pushButtonのクリックでは、SLOTを動かせるけど pushButtonにフォーカスがあるときEnterでSLOTを動かすには?
399 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 00:18:21 ] >>397 Qt自体は例外を使ってないから、自分でしっかりエラー処理しろ。
400 名前:デフォルトの名無しさん [2009/07/01(水) 02:24:23 ] >>398 多分 pushButton->setAutoDefault(true);
401 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 03:48:49 ] >>335 それが正解
402 名前:397 mailto:sage [2009/07/01(水) 11:01:33 ] >>399 了解
403 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 20:12:09 ] >>400 できまいした。ありがとう
404 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:46:51 ] I got it!
405 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:08:09 ] >>387 おお、VS2008でQtWebkitのビルドが上手くいった。 公式サイト以外で、海外サイト(英語)でもいいんだけど、 QTのTipsみたいなのを纏めてる所って知ってる? QTDemoのソースを参考にすれば、大抵のことはわかるんだけど、 纏まった資料としてどこかにないかなと。 もし無いようなら、wikiでも作って管理しようかなぁなんて思ってみたけど。
406 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:14:25 ] 今の段階ではLinux+GCC+Qtは採用する価値なしと判断しかけている。 なんとかWindows+VCの方向で解決したい。
407 名前:デフォルトの名無しさん [2009/07/02(木) 05:41:51 ] >>406 その理由は?
408 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 06:20:45 ] >>406 なぜ?
409 名前:デフォルトの名無しさん [2009/07/02(木) 09:53:08 ] >>405 ここはどうですか。 www.qtcentre.org/ www.qtforum.org/
410 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 09:59:47 ] >>406 mingw は ?
411 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:52:02 ] Qt4.5 ItemViewとItemWidgetはどう違うの?
412 名前:デフォルトの名無しさん [2009/07/02(木) 23:26:45 ] >>411 Q{List,Table,Tree}ViewとQ{List,Table,Tree}Widgetの違いのことですか。
413 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 23:32:44 ] >411 Q*ViewはQ*Modelと対で使う。Q*WidgetはQt3以前のアイテムベース。 リファレンスのModel/View Programmingくらい読んでおけ。
414 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 00:40:40 ] >>410 pc12.2ch.net/test/read.cgi/tech/1221233882/
415 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 00:59:57 ] >>414 >>410 じゃないが、おまいさんは何が言いたいのだ
416 名前:デフォルトの名無しさん [2009/07/03(金) 09:03:29 ] >>412 そうだったらQ{LIst,Table,Tree}Widgetは、最初は簡単に使えます。 しかし、拡張は低いです。例えば、 内部に独自モデルを抱えていて 差替えができないので、機能を追加できなくなって行き詰まります だから、最初からQ{List,Table,Tree}Viewを使うようにした方がよいです。 Qt4になったときにQ*Widgetを入れなければ後で困ることは減ったで しょう。
417 名前:411 mailto:sage [2009/07/03(金) 09:32:34 ] >>416 >>413 そうか、View勉強します ありがとう
418 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:25:25 ] Windowsの、メッセージループ見たいにQtのイベント監視ルーチンを修正することはできますか? 具体的には、シリアルポートの着信を監視したいんだけど、今はタイマーイベントで 見にいってるんですが。 Qtのイベント監視ルーチンに、ポート監視ルーチンを追加できないかと
419 名前:デフォルトの名無しさん [2009/07/03(金) 12:53:35 ] >>418 カスタムなイベントをハンドリングしたいということですね。 それならば、イベントフィルターを使えば可能です。 参考:doc.qtsoftware.com/4.5/eventsandfilters.html
420 名前:デフォルトの名無しさん [2009/07/03(金) 12:55:16 ] >>418 Windowsでシリアルポートならこれを見てみてはどうですか。 sourceforge.net/projects/qextserialport/
421 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 12:55:28 ] >>416 日本語で桶
422 名前:419 [2009/07/03(金) 12:57:58 ] >>419 QObject::event()をオーバーライドする方法もあります。 同様に419の参考に書いてあります。
423 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:41:41 ] >>421 オレも云いたかったが、親切心を無下にできんと思って触れなかったのに 貴様KYだろ
424 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 18:07:15 ] Widgetがシングルクリックされた時だけ処理を実行したいのですが、 ダブルクリックでないことを確認するにはどうすればいいのでしょうか?
425 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:28:13 ] >>421 自動翻訳か何かを使ってわざわざ書き込んでくれている外人さんと予想したが
426 名前:デフォルトの名無しさん [2009/07/04(土) 04:17:51 ] >>424 こちらの環境では、ダブルクリックをしたときは、mousePressEventが発生し、 さらにmouseDoubleClickEventが発生しているので、そちらもその状況にあると仮定。 まずタイマーを作り、シングルクリックイベントハンドラー内でそのタイマーをスタートさせ、 ダブルクリックの時間間隔より少し大きめの時間がたったときにシグナルを発するようにする。 このシグナルにハンドラーとなる別のスロットを接続する。 そしてその中で、ダブルクリックイベントが発生していないか確かめてから シングルクリックに対する処理を実行すればよい。
427 名前:デフォルトの名無しさん [2009/07/04(土) 04:19:42 ] 426つづき 実装例 (ヘッダーファイル.h) class QTimer; //... // データメンバー QTimer* m_Timer; bool m_IsDoubleClick;
428 名前:デフォルトの名無しさん [2009/07/04(土) 04:21:58 ] 426つづき (実装ファイル.cpp) #include <QMouseEvent> #include <QApplication> #include <QTimer> // コンストラクターなどで m_Timer = new QTimer(this); m_IsDoubleClick = false; m_Timer->setInterval(qApp->doubleClickInterval() + 10); connect(m_Timer, SIGNAL(timeout()), this, SLOT(handleSingleClick()));
429 名前:デフォルトの名無しさん [2009/07/04(土) 04:22:46 ] 426つづき void MainWindow::mousePressEvent(QMouseEvent* event) // オーバーライド { m_IsDoubleClick = false; // ダブルクリックではないと仮定する。 m_Timer->start(); } void MainWindow::mouseDoubleClickEvent(QMouseEvent* event) // オーバーライド { m_Timer->stop(); m_IsDoubleClick = true; // ここにダブルクリックのときの処理を書く。 } // スロット定義 void MainWindow::handleSingleClick() { if(!m_IsDoubleClick) { m_Timer->stop(); // ここにシングルクリックのときの処理を書く。 } } もっといい実装方法があるかもしれない。 なぜか少しもたつく。
430 名前:デフォルトの名無しさん [2009/07/04(土) 04:47:19 ] >>425 Bingo!
431 名前:デフォルトの名無しさん [2009/07/04(土) 04:47:26 ] >>429 訂正 プログラム実行中にユーザがダブルクリックの間隔を変える可能性があるので、 mousePressEvent()内でタイマーをスタートする前に m_Timer->setInterval(qApp->doubleClickInterval() + 10); を実行したほうがいいかも。
432 名前:デフォルトの名無しさん [2009/07/04(土) 05:17:47 ] >>426 427 428 429 431 ごめん。mouseReleaseEventに対応していなかった。
433 名前:デフォルトの名無しさん [2009/07/04(土) 11:45:59 ] >>429 >なぜか少しもたつく ダブルクリック間隔よりも長く、シングルクリックでの動作が待たされるため、 シングルクリック操作時の動作がぎくしゃくしてしまいます。 従って、シングルクリックのときにのみ処理させることはできません。 416 の外人です。日本語を勉強しました。よくなったでしょうか。
434 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 11:50:58 ] シングルクリックと仮定して動作して、ダブルクリックだったら取り消すって設計にできればそっちの方がいいね 実際そういう実装方法は多いと思う
435 名前:デフォルトの名無しさん [2009/07/04(土) 12:01:34 ] >>434 >シングルクリックと仮定して動作して、ダブルクリックだったら取り消すって設計にできればそっちの方がいいね でもそれだと、ダブルクリックだけ取得したいときに、さきにシングルクリックの処理が実行されてしまうのでは?
436 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:05:48 ] QSystemTrayIconはシングルクリックかダブルクリックかのイベントを 区別して渡してくれるんだけど、あれってWindowsやDEからのイベント だからなのかな?
437 名前:435 [2009/07/04(土) 12:22:16 ] >>435 取り消します。 常に、ダブルクリックを無視するのではなく、そういう状況の時だけ無視するということですね。
438 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:49:07 ] そもそもシングルクリックとダブルクリックで全く挙動が違うUIは 作りとしてマズいんじゃないか?人間は間違うものだし。 Windowsのexplorerにしても、 シングルクリック: 選択 ダブルクリック:(選択後に)実行 という一連の流れになってる。
439 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:54:28 ] 単純にダブルクリックイベントは無効にして 前回のシングルクリックからの間隔を判定して 動作を分けたらいいんでね?
440 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:56:09 ] >>439 が一番妥当だろうな
441 名前:デフォルトの名無しさん [2009/07/04(土) 12:59:22 ] >>439 シングルクリックのときだけ処理をさせようとすると、 シングルクリックがもたついた動作になるんじゃないの。
442 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 13:02:11 ] >>426 のは、 ダブルクリックイベントは有効にしておいて、 シングルクリックイベント側で、ダブルクリックと同等のものを作り ダブルクリックと思われる間隔だったらダブルクリックイベントに渡してる というものじゃないの? そりゃもたつくとは思う
443 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 13:04:14 ] >>441 ダブルクリック時にシングルクリックイベントが発生しないような APIを使っていない限り、それは必然ではないか?
444 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 13:09:12 ] >>443 そのAPIの中でダブルクリック待ち受け時間終了までシングルクリックの イベントの発生を遅らせる必要があるから結局同じことだと思う。
445 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 13:25:50 ] >>439 ってmouseDoubleClickEvent使うのと全く一緒じゃないのか?
446 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 13:28:10 ] >>445 ダブルクリックイベント発生した際、 シングルクリックイベントを取り消せるなら、ね
447 名前:デフォルトの名無しさん [2009/07/04(土) 13:33:07 ] >>442 シングルクリックでコントロールキーが押されていたら、シングルクリックの処理をする。 ダブルクリックのときにコントロールキーが押されていたら何もしない、 コントロールキーが押されていなかったらダブルクリックの処理をする。 こんなようにしてもたつきを避けた方がよいのでないでしょうか。
448 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 13:37:19 ] >>446 ダブルクリックした場合、mouseDoubleClickEventがオーバーライドされてれば mousePressEvent mouseDoubleClickEvent の順で呼び出される。 オーバーライドされていなければ mousePressEvent mousePressEvent と呼び出されるだけだからmousePressEventで分けるのは無意味では?
449 名前:デフォルトの名無しさん [2009/07/04(土) 13:43:53 ] 状況1:シングルクリックイベントだけ処理したいとき 状況2:ダブルクリックイベントだけ処理したいとき 状況3:シングルクリックとダブルクリックの両方に対してそれぞれの処理をしたいとき 状況1のとき ダブルクリックイベントを無視。 状況2のとき シングルクリックイベントを無視。 状況3のとき どうあがこうとダブルクリックが発生する時間だけ待たないと、 最初のクリック時にダブルクリックが発生するか判断できない。 よって、このときはどうしてもシングルクリックに対する処理は遅れる。 よって、状況1と状況3があり、シングルクリックに対して処理を遅らせることができないときは、 それぞれの状況に合わせて処理を切り替えるしかない。 と思うけどあってる?
450 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 14:20:47 ] >>449 だね で、 >シングルクリックに対して処理を遅らせることができないときは、 >それぞれの状況に合わせて処理を切り替えるしかない。 これは>>447 の案 >>439 は シングルクリックイベントの処理は 1回目クリックで一定間隔待機、 2回目クリックが一定間隔内に来たらダブルクリックの処理 一定間隔過ぎても2回目クリックが来なければそのままシングルクリックの処理 >>426 は 毎回シングルクリックから時間計測し ダブルクリックイベントと別にダブルクリックだったのか判定(2重判定?) なのかな? >>448 んー、いまいちよくわからない 解釈間違ってるかもしれないけど、 初回クリックがシングルなのか、ダブルのための1度目なのかそれで判定できる?
451 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 14:52:11 ] 多分、>>439 と>>448 は単に実装方法の違いだけだよ >>439 は、 mousePressEventが呼び出されたらタイマースタート timeout前にmousePressEventが再度呼ばれたらダブルクリック timeoutしたらシングルクリック >>448 は、 mousePressEventが呼び出されたらタイマースタート timeout前にmouseDoubleClickEventが呼ばれたらダブルクリック timeoutしたらシングルクリック どっちでも実装できると思うけど、前者の方が多少コードが複雑になるから、 わざわざmouseDoubleClickEventを外す必要はないって話だと思う 全然関係ないこと言ってたらゴメン
452 名前:デフォルトの名無しさん [2009/07/06(月) 01:22:27 ] Skypeって昔Delphiで作ってるって話だったけどいつの間にかQt/C++に変わってたんだね
453 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 01:39:26 ] かなり前からQtだったと思うが。
454 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 09:47:17 ] QtCreater入れて試してみた 若干コンパイルが遅い気がしたんだけどこんなもんだっけ?
455 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 12:03:11 ] SkypeのWindows版はまだDelphiじゃない?
456 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 14:25:55 ] うちだと若干どころかはっきりと遅いんだけど
457 名前:デフォルトの名無しさん [2009/07/06(月) 15:28:40 ] >>454 mocが実行されるからその分遅いとか?
458 名前:デフォルトの名無しさん [2009/07/06(月) 18:30:29 ] ダブルクリックが必要なソフトってエクスプローラ以外に何かあったっけ?
459 名前:デフォルトの名無しさん [2009/07/06(月) 19:01:01 ] >>458 ゲームとか?
460 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 19:08:15 ] どちらにしてもダブルクリックの場合はシングルクリックの処理をした後 ダブルクリックの処理をしてるよな
461 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 19:13:44 ] 何かしら一覧表示のできるソフトはシングルクリックで選択、ダブルクリックで操作ってのが多いね マルチメディアプレイヤーのプレイリストとか、エクセルとか
462 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 19:19:39 ] 俺も昔、シングルクリックとダブルクリックの処理をわけたいと思ったことがあったんだけど 何しようとしてたんだろう。今になると全然思い出せないから、発想がおかしかったんだろうな
463 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 00:30:27 ] >>457 mocって一言で言って何?
464 名前:デフォルトの名無しさん [2009/07/07(火) 06:20:31 ] >>463 Meta-Object Compplier QtのQObjectクラス(Qtのウィジットなど)のためにメタオブジェクト情報を生成する。 標準C++に対しての、付加機能。 ソースをmocに一度通して機能を付加して、C++のコンパイラーが許容するC++コードを生成する。 Qt開発ではこのプロセスが余計に必要になる。 標準C++ではない拡張をしていることに対して拒否反応を示す人がいるけれど、 ライブラリーに依存している以上そのライブラリーの付加機能があろうとなかろうと あまり問題ないような気がする。 個人的な意見だけど。 参考 qt.linux-life.net/4/doc/ja/object.html
465 名前:デフォルトの名無しさん [2009/07/07(火) 06:23:41 ] >>464 >Qt開発ではこのプロセスが余計に必要になる。 Qt Creatorなどをつかっていれば(qmakeのお陰?)、mocを自動的に実行してくれるので mocを意識しないで済む。
466 名前:デフォルトの名無しさん [2009/07/07(火) 06:53:53 ] >>464 >Meta-Object Compplier ごめん。typoした。 Meta-Object Compiler
467 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 06:57:13 ] Qt Creatorコンパイル遅すぎる
468 名前:デフォルトの名無しさん [2009/07/07(火) 07:51:47 ] >>467 moc,Qt, Qt Creatorなどをソースからビルドして最適化オプション指定すれば速くなるとか? 調べてないまま言っているけど。
469 名前:デフォルトの名無しさん [2009/07/07(火) 08:27:20 ] >>467 どのコンパイル方法と比べてどれくらい遅いですか? Qt Creatorそのものは、コンパイルのための外部処理を呼出しているのだから、 Qt Cretaorでコンパイルが遅いならば、Qt Creatorなしでもコンンパイルが遅いはず。
470 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 08:42:10 ] 逆にLinuxネイティブだともっと速いのだろうか
471 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 09:39:39 ] Qt Creator はコンパイルの実行前にプロジェクトをチェックしてるので (たぶん、進捗表示用) コンパイルを開始するまでが大きなプロジェクトだと時間がかかるな。 コンパイルが始まってからは普通にmakeするのとあまり変わらないだろうけど。
472 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:10:29 ] ダブルクリック、シングルクリックの話だけど、 なんでイベント-アクセプタを使用するの? signal-slotじゃだめなの? 教えてください偉い人
473 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:24:34 ] >>472 どっちも同じだから
474 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 13:32:28 ] MOCレベルでの実装が同じ、という意味なの??
475 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 13:43:34 ] 同じだったら統一されてると思う
476 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 14:22:52 ] >>472 signal-slot は point-to-point な配線だ。親子関係を無視する。 それに比べ、イベントはどこかで捕まるまで階層構造を伝播する。 たとえば、ダイアログボックスの中にラベルがあったとき、ラベル上で ダブルクリックすると、ラベルがダブルクリックを捕まえない限りは 自動で親のダイアログボックスにダブルクリックイベントが飛ぶ。
477 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 23:01:03 ] VC2005で勉強中ですが以下の点を確認させてください。 ・Qtデザイナーで任意のウィジェットのシグナルと QDialog 内に新規作成したスロット名をコネクトしても 自動的にダイアログ.h とダイアログ.cpp 内に同じ名前のスロットは 作成してくれない。ので、自分で関数名から記述する必要がある。 よろしく
478 名前:デフォルトの名無しさん [2009/07/08(水) 07:24:02 ] >>477 Qt Creatorを使えば、.hと.cppにスロットが自動的に作成されます。
479 名前:472 mailto:sage [2009/07/08(水) 11:10:56 ] なるほど。 イベントだとクラスの階層構造を辿っていくのですね。 signal-slotだと、親なら親、子なら子でインスタンスを指定する、と。 ・signal-slotの方がセーフティー ・イベントの方が実装として適している ・どちらでもあまり違いはない の3つ場面がありうるということだと理解しました。
480 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 13:23:55 ] 遡上の途中でイベントを握り潰すケースもある
481 名前:デフォルトの名無しさん [2009/07/08(水) 14:38:43 ] EclipseつかってQtアプリ開発してる人っていらっしゃいます?
482 名前:デフォルトの名無しさん [2009/07/08(水) 15:56:56 ] Qt用のプラグイン追加すれば、GUIデザインも出きるし、 スケルトンやMakeファイルも自動生成されるから始めて使ったが、簡単だったよ。
483 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 21:58:10 ] QtCreaterあるのにわざわざEclipse使うメリットって?
484 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 22:00:55 ] Javaマンセー そんなやつがQt使うメリットないか
485 名前:デフォルトの名無しさん [2009/07/08(水) 22:42:38 ] 作成されたスケルトン見ると、C++なんだけどな。
486 名前:477 mailto:sage [2009/07/08(水) 22:55:25 ] >>478 ありがとさんです。
487 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 00:43:15 ] >>483 eclipseって激重なのにね
488 名前:デフォルトの名無しさん [2009/07/09(木) 00:44:44 ] そんなに遅いPC使って恥ずかしくない?
489 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 00:50:01 ] eclipse使って無いけど使いたい気持ちは分るぞ 使い慣れた環境とかプラグインとかは重要だろ 俺もQtCreator使わずにEmacs使ってるし
490 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 00:55:42 ] 俺はvi派だったけど QtCreatorにFakeVimがついてて飛びついた けど、QtDesigner使わずゴリゴリ書いちゃう派だから あんまり意味のないことに気がついた
491 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 07:00:12 ] >>490 FakeVimってなぁに?
492 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 07:30:06 ] >>491 viエディタと同じキー操作で編集できるようになる機能。
493 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 07:51:45 ] >>492 vimはviを拡張したもの。
494 名前:デフォルトの名無しさん [2009/07/09(木) 14:22:44 ] ユーザとのフロントエンドにQtを使い、実装するロジックの作成に複数の言語を適材適所で使い分けて 一つのプロジェクトで管理するようなことが出来そうだからEclipseを選んでみた。 開発に使えるプラットホームも選ばないし。
495 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 14:25:45 ] >>494 で、それは達成出来たのか?
496 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 14:26:27 ] それは聞いちゃダメです><
497 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 14:44:27 ] 俺たちってなんか、それなりにフォーエバーだよな。
498 名前:デフォルトの名無しさん [2009/07/09(木) 14:45:22 ] 一緒にすんな
499 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:06:54 ] オープンソースのライセンスってソース開示しなかったらなんかペナルティあるの?
500 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:13:01 ] >>499 >オープンソースのライセンス もうちょっと勉強しようぜハニー! Category:オープンソースライセンス - Wikipedia ttp://ja.wikipedia.org/wiki/Category:%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9 面白いのは以下のものかな。 GNU General Public License - Wikipedia ttp://ja.wikipedia.org/wiki/GNU_General_Public_License GNU Lesser General Public License - Wikipedia ttp://ja.wikipedia.org/wiki/GNU_Lesser_General_Public_License BSDライセンス - Wikipedia ttp://ja.wikipedia.org/wiki/BSD%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9 NYSL - Wikipedia ttp://ja.wikipedia.org/wiki/NYSL
501 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:15:29 ] おまい優しい奴だな
502 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:22:24 ] >>499 開示義務のあるやつはな。 GPLモノだとときどきFSFに訴訟されてるケースがある。
503 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:28:47 ] >>499 逆のイメージも想像した方がいいかもな。 自分がオープンソースにしたコードが自分の自由にならなくなった場合とか。 作った奴がライセンスを決められる。使う奴はそれに従う。 最終的にはそういったこと。
504 名前:デフォルトの名無しさん [2009/07/10(金) 00:04:35 ] でも、このライブラリ使ったとか言わなくてもバレるものなの?
505 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:20:53 ] オプソ陣営にはバイナリハッカー部隊がいて、日夜いろいろなソフトを解析比較して GPL違反してる奴を探してるからバレる
506 名前:デフォルトの名無しさん [2009/07/10(金) 00:30:19 ] なるほど、謎が解けたよ ありがと
507 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 07:06:03 ] >>505 > バイナリハッカー部隊 フイタ。 その知識を別の方面に使ってくれれば。。。
508 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 08:09:52 ] ていうかか… strings と grep でばれちゃうようなことしてるやつが見つかっちゃうんよ…
509 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 10:20:24 ] 同じバグがあって見付かることも多いみたいだけどな
510 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 10:55:44 ] 本気で隠そうとしたら多分見つからないだろうね。 見つかってないライセンス違反もかなり多いと思う。 それこそ関数ごとにアセンブリコード比較したら分かる可能性もあるが 最初からそこまでやるような暇人はいないと思う。
511 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 12:44:08 ] そもそも、適当なうpロダにバイナリだけ置いてこういう掲示板に貼って配布するだけでもライセンス違反なの? ソース付きならセーフ?
512 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 13:07:49 ] スレチもいいところだな 他行けよ
513 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 21:47:07 ] >>511 ライセンスによるんじゃない? ライセンス読まないとわからね。
514 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 22:12:00 ] LGPL っつーかスレち
515 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 22:24:45 ] 実際に作ったもののうpを2chに晒してみる事を想定するとライセンス関係がちょっと気になったんだ スレチスマン
516 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 22:47:14 ] それにしてもgtkスレ過疎ってるな
517 名前:デフォルトの名無しさん [2009/07/11(土) 11:07:06 ] >>516 www.google.co.jp/trends?q=Qt www.google.co.jp/trends?q=gtk
518 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 11:17:27 ] そりゃgtkは面倒くさいからな。
519 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 13:34:58 ] 4.5.1から4.5.2へのマイナーバージョンアップは 手動で古い方アンインストールしてから新しい方インストールするんですか?
520 名前:デフォルトの名無しさん [2009/07/11(土) 20:24:17 ] >>519 アップデートというのはないですね。Mac OS X SDKは、uninstallのスクリプトが入っています。 WindowsやLinuxはどうなんでしょう。
521 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 20:40:51 ] >>520 Windows、LinuxともSDKには、アンインストーラーが入っています。
522 名前:519 mailto:sage [2009/07/12(日) 00:35:12 ] >>520 >>521 ありがとうございます。アンインストールしてからインストールします。
523 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 01:25:27 ] Constants.h public: static const QString str0 = "str0"; static const QString str1 = "str1"; のように各種定数を集めたクラスを作成したいのですが、このような宣言は許されないのでしょうか? 型がintやdoubleの場合はコンパイルできるのですが、QStringになるとエラーを吐かれます。 何か解決方法があればよろしくお願いしますm(_ _)m
524 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 01:57:11 ] >>523 定数ならcharでいいんじゃないか
525 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:03:50 ] >>523 おいおい、Qt関係ないぞ。C++の基本だろ? 整数型以外のメンバをクラス定義内で初期化するのは不可能。 doubleもエラーになるはずだが。 以下のように、メンバの定義時に初期化すべし。 const QString Constants::str0 = "str0";
526 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 07:48:04 ] >>523 定数を定義したいんだったら #define HOGE "str0" とかすれば、いいんじゃないでしょうか?
527 名前:デフォルトの名無しさん [2009/07/13(月) 08:13:57 ] >>526 プリプロセッサによる置き換えは、エラーのとき分かりにくいから定数にしておいたほうがいいのでは。
528 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 08:27:15 ] >>527 訂正 ○constなオブジェクト ×定数
529 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 08:34:51 ] >>525 から読み取れるけど、補足すると const QString Constants::str0 = "str0"; を実装ファイル(.cpp)に書けばよい。
530 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 09:35:35 ] >doubleもエラーになるはずだが。
531 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 13:04:36 ] >>530 馬鹿か?日本語使えないならレスするなよ
532 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 13:38:48 ] 最小化やタスクトレイに収納しても使える、グローバルホットキーの設定は 一体、どこの関数でやったらいいのでしょうか?
533 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 16:30:09 ] すみません教えてください。 QTextEdit使って、ログ表示しようとしてます。 append()使うと、最終行に追加していけるんですが、必ず改行が追加されてしまうので、 代わりに、moveCursor(QTextCursor::End)でカーソルを最終行に持っていき、 insertPlainText()をする方法にしました。それ自体はうまくいきました。 ですが、スクロールバーが最終行に移動しないので、関数呼び出して移動させようと思うのですが、 そういう関数が見当たりません。どなたかご存知ないでしょうか。 また、よりよい方法がありましたらご教授お願いします。
534 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 19:19:51 ] >>532 Qtライブラリには無いのかな? Qt Centreのスレッド「Grabbing a key in X11」の中のリンクより LibQxtライブラリのQxtGlobalShortcutが使えるみたい。 doc.libqxt.org/latest/classQxtGlobalShortcut.html でも、プラットフォーム独自のショートカットでアプリケーションをアクティブに してもらってもいいような気がするんだけど、それだとダメなの?
535 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 20:30:32 ] >>533 #include <QScrollBar> QScrollBar* vScrollBar = m_Editor->verticalScrollBar(); vScrollBar->setSliderPosition(vScrollBar->maximum());
536 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:03:21 ] >>534 ありがとうございます。 頑張ってみます。 わざわざアクティブにするのは、色々面倒だったので。
537 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 01:11:00 ] ttp://labs.trolltech.com/blogs/2009/07/03/win9xme-no-more/ Windows 9x 終了のお知らせ
538 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 01:21:31 ] 仮りに9xいまでも使ってるとして HDD寿命で壊れないか心配になったりしないのだろうか
539 名前:デフォルトの名無しさん [2009/07/14(火) 06:59:33 ] >>538 新しいHDDにインストールすればいい話では。
540 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 17:08:38 ] 新しくインストールするのにわざわざ(r
541 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 18:05:29 ] まあそんなこんなで実際に使ってる人が少ないからサポートから外される訳で
542 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 20:37:31 ] Qtで録音関係のライブラリ?API?ってないのかな
543 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:11:18 ] y
544 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 00:48:35 ] WindowsでQt Creatorの埋め込みデザイナにカスタムウィジェットを組み込みたいと思い Qt Creatorを使ってQt\examples\designer\customwidgetpluginをビルドし Qt\bin\designerディレクトリに入れてみたんですが、デザイナがロードしてくれません。 Qt DesignerではちゃんとQt\qt\plugins\designerに入れれば使うことができます。 調べたところ、Qt CreatorのプラグインはVCで作らないとダメだというような情報があり 実際に試してVCで作ったプラグインならちゃんとQt Creatorのデザイナでも認識されるのは確認したんですが VCではなくQt Creatorで作ったプラグインをQt Creatorで認識させるのって無理なんですかね? 使っているQt CreatorとQtはqt-sdk-win-opensource-2009.03.1.exeに入っているものです。
545 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 07:03:55 ] >>542 サウンドを再生するためのPhononならあるけど、 録音関係はまだ実装されていないと思います。
546 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 16:25:56 ] 一瞬QuivkTimeの方のQtかと思ったw サウンド関係はJuceが充実しているね www.rawmaterialsoftware.com/juce/
547 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 15:09:31 ] QtCreator 1.2.1 日本語化されちゃってるよ。びっくりした。
548 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 16:52:23 ] 日本語化は1.2からじゃなかったっけ
549 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 17:21:43 ] ローカルに保存されている画像ファイルの画像の大きさだけ知りたいのですが、 QImage::sizeよりもメモリ消費量の少ない方法はありますか?
550 名前:549 mailto:sage [2009/07/16(木) 20:59:10 ] 自己解決しました QImageReader::sizeならファイルサイズ分しか使いませんでした
551 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 21:31:10 ] >>550 模範的な自決ありがとう。 後を行く人の助けになる。
552 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 21:52:09 ] 他の質問スレの連中に549の爪の垢でも飲ませたいもんだ。
553 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 09:18:10 ] 心の底から同意する
554 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 23:51:15 ] qt 4.5.2は、mingwのgcc 4.4(g++)でビルドできますか?
555 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:00:43 ] QPixmapをstaticで宣言するとクラッシュするようなのですが、何か解決策はありませんか?
556 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:00:49 ] できるよ
557 名前:デフォルトの名無しさん [2009/07/19(日) 09:50:00 ] >>555 どのように使っていますか。staticなQPixmapに画像をロードして、QLabelで表示した場合では、 クラッシュせずにQLabelに画像が表示されるので、staticだからというだけでは落ちません。
558 名前:555 [2009/07/19(日) 20:09:05 ] >>557 すいません、宣言ではなく定義でした。 以下の様にstaticでQPixmapを宣言した後定義を行うと、クラッシュします。 icons.h public: static QPixmap icon; icons.cpp QPixmap icons::icon = QPixmap(); いくつかのアイコンを起動時に読み込んで以後はそれを使用したいのですが・・・何か解決方法があればよろしくお願いします。
559 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:12:12 ] >>558 どこで落ちるかデバッガで確認したの?
560 名前:555 mailto:sage [2009/07/19(日) 20:39:43 ] >>559 icons.cpp QPixmap icons::icon = QPixmap(); で落ちるようです。main()に入る前に落ちるのでデバッガで確認はできていませんが、初期化を行わない場合はmain()が実行されます。QPixmapのコンストラクタをデバッグする方法ってありますか? Qt Creatorを使用しています。
561 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:52:47 ] >>560 Linux上(Qt-4.5.0)で以下のコードを実行してみた。 % cat qpixmap.cpp #include <QtGui/QPixmap> class Foo { static QPixmap pixmap; }; QPixmap Foo::pixmap = QPixmap(); int main() {} $ g++ qpixmap.cpp -I/usr/include/qt4 -lQtGui $ ./a.out QPixmap: Must construct a QApplication before a QPaintDevice [2] 12778 abort ./a.out QApplicationをインスタンス化した後じゃないと駄目だね。 てことで、iconsクラスをシングルトン化したら?
562 名前:555 mailto:sage [2009/07/19(日) 21:16:54 ] >>561 QPaintDevice系のクラスはQApplicationをインスタンス化した後に構築しなければならないのですね。原因がわかりました。 以下のようにシングルトンパターンを構成することで解決できました。ありがとうございました。 icons.h private: icons(); public: static icons getIcons(); icons.cpp icons getIcons(){ static icons icons; return(icons); }
563 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 21:23:16 ] >>562 return(icons); ここで値コピーされてるのでシングルトンになっていないのでは?
564 名前:555 mailto:sage [2009/07/19(日) 21:47:31 ] >>563 iconsにstaticキーワードを付与してるので問題ないと思うのですが・・・間違ってますか? C++をいじるのは初めてなんで自信ないです(^_^;)
565 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 22:08:11 ] >>564 icons& getIcons() {...} として参照を返すようにしないとオブジェクトがコピーされるよ。 最低Effective C++は読んだ方がいいよ。
566 名前:デフォルトの名無しさん [2009/07/19(日) 22:15:34 ] >>565 参照返しちゃだめですよ。QPixmapをnewするのもだめ。QPIxmapは、reference count付きのimplicit sharedですから。 Effective C++に書かれているように、こういうクラスはコピーされるように使います。
567 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 22:46:23 ] >>566 単純にシングルトンは駄目、と言えばいい話だろ?
568 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 22:55:52 ] つまり>>562 のコードはシングルトンではないけどQt的には推奨、ということ。
569 名前:デフォルトの名無しさん [2009/07/20(月) 03:31:15 ] >>567 違うよ。
570 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 04:02:11 ] >>569 シングルトンを使えないのは事実。 それに加えて値渡ししか使ってはいけないというだけ。
571 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 08:12:57 ] >>564 Javaの人なんだね。 自動変数とポインタを見抜けないと(C++を使うのは)難しい
572 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 20:44:57 ] >>571 >自動変数とポインタを見抜けないと(C++を使うのは)難しい それが見抜けない人は、 C++に限らずもはや何だって難しいと思うんだぜ。
573 名前:デフォルトの名無しさん [2009/07/20(月) 20:48:43 ] なこたーない。 C++のガラパゴス仕様の異常性は有名なんだから。
574 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 20:49:58 ] >>573 それが見抜けない(初心者という意味じゃなく、頭脳という意味で)レベルの人の場合、 いくらやさしい言語でもやっぱ厳しいんじゃないかと思ったのだが。 ま、いいや。
575 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 21:32:02 ] in Japanese please
576 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 21:40:15 ] Windows用のVisual Studio add-inについて教えてください。 Qtの商用ライセンスを持っていない場合、add-inは使用してもいいの? What is the Visual Studio add-in? Answer We want to enable everyone who downloads Qt from our website to have the option of using Qt together with Visual Studio, regardless of whether they choose to use a commercial evaluation version, the GPL or the LGPL. The add-in is designed to serve this purpose. Qt commercial license holders on Windows get access to a full Visual Studio Integration. この最後の一行は、商用ライセンスを持っていないと使用できないといっているの?
577 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 21:43:18 ] >>Qt commercial license holders on Windows get access to a full Visual Studio Integration. 商用ライセンス持ってる人はもっといいアドインがあるよ ってこと 今公開されてるVisual Studio Addin 1.01はLGPLで使用可能だよ
578 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 21:44:08 ] >>576 のつづき リファレンスのInstalling Qt on Windowsより引用。 Open Source Versions of Qt is not officially supported for use with any version of Visual Studio. Integration with Visual Studio is available as part of the Qt Commercial Editions. これもどう判断すればいいの?
579 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 22:20:22 ] >>578 訳せばそのままだが * オープンソースバージョンのQtは公式にはVisual Studioでの使用をサポートしません。 ( Visual Studio でビルドしたバイナリをサポートしてほしい場合は商用版を使え ) * Visual Studio Integration は商用版Qtの一部として提供されます。 Visual Studio Integration と Visual Studio add-in は別物。
580 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 22:23:05 ] >>Open Source Versions of Qt is not officially supported for use with any version of Visual Studio. >>Integration with Visual Studio is available as part of the Qt Commercial Editions. ここで言ってるIntegrationって最近リリースされたVisual Studio Addinとは違うんじゃないのかな。 自分は>>576 だけを読んで大丈夫だと思って使ってるんだけど もしかしたら違うのかもしれない
581 名前:デフォルトの名無しさん [2009/07/20(月) 22:26:45 ] >>576 フリーの限定機能add-inではなく、フル機能Integrationは、商用版ユーザのみが使うことができるということです。 >>578 オープンソース版のQtは、Visual Studioで使えるかもしれないけれど正式サポートはしていません。 そして、Integration with Visual Studio (フリーのadd-inでないもの)は、商用版だけで利用可能です。ということ。
582 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 22:32:56 ] >>577 ,579,580 Integrationとadd-inの区別がついていませんでした。 お騒がせしました。 ありがとうございました。
583 名前:デフォルトの名無しさん [2009/07/20(月) 22:35:56 ] >>581 お騒がせしました。 ありがとうございました。
584 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 22:55:44 ] >>566 参照返しにして、デフォルトコンストラクタとコピーコンストラクタ、 それとコピー演算子をprivateにするのが、Singletonの普通の実装なんじゃない? まあ、それにしてもQPixmapはコピーで返さないといけないけど。 >>570 Singletonが使えないってソースどこ?
585 名前:584 mailto:sage [2009/07/20(月) 23:00:50 ] 書いてから気がついたけど、>>570 のSingletonが使えないってのは、 QPixmap自体のインスタンスを1つだけにするのが無理ってことか。
586 名前:デフォルトの名無しさん [2009/07/21(火) 06:41:37 ] ひとつにしなくてよいように作られているのだから。
587 名前:デフォルトの名無しさん [2009/07/21(火) 21:07:46 ] >>571 Javaな人は、99.9999999%がCOBOLな人と同じだからね。
588 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 01:14:19 ] nmakeが失敗してた 寝る
589 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 11:01:49 ] >>582 2chで聞くより直接問い合わせたほうがいいんでない?
590 名前:576,582 mailto:sage [2009/07/22(水) 11:48:20 ] >>589 Open Source LicenseでAdd-inが使用できるか知りたかったのです。 商用ライセンスは、持っていないのです。
591 名前:590 mailto:sage [2009/07/22(水) 11:52:06 ] これくらいの質問ならQt Softwareに問い合わせてもいいんですかね。 その辺が判断できなくて。
592 名前:デフォルトの名無しさん [2009/07/26(日) 11:03:39 ] ユーザーによってQToolBarがドラッグされて違うエリアに移ったとき、 どのエリアに移ったか知りたいのですが、 何か適当なシグナルやイベントハンドラーはありますか。
593 名前:592 [2009/07/26(日) 11:41:41 ] 自己解決しました。 ツールバーのmoveEvent()をハンドルし、QMainWindow::toolBarArea() をコールするだけでした。
594 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 11:53:07 ] >>593 またもや模範的な自決すばらしい。
595 名前:デフォルトの名無しさん [2009/07/26(日) 12:12:58 ] QLineEditを縦向きにして配置したいのですが、できますか。
596 名前:デフォルトの名無しさん [2009/07/26(日) 13:39:05 ] >>595 Graphics Viewでできます。
597 名前:595 [2009/07/26(日) 13:48:35 ] >>596 ありがとうございます。 やってみます。
598 名前:デフォルトの名無しさん [2009/07/26(日) 21:54:06 ] デバッグヘルパって何ですか? オプションの[Qt4]→[Qt Versions]の自動検出したQtのデバッグヘルパの所に赤いバツ印がついてるんですが ちなみにQt Creator 1.2.1のバイナリだけをダウンロードし win32-msvc2005でリビルドしたQt 4.4.3で使っています Qt Creatorでビルドもデバッグも問題なくできます
599 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 01:38:20 ] >>598 デバッグヘルパは Qt Creator でデバッグ時に Qt のクラスの内容をわかりやすく表示するために使われる。 QString だとか QList とか。 SDK ではなく Creator をインストールした場合にバツ印があるのは問題ない。 その場合は「リビルド」ボタンを押してヘルパを作ってやるといい。
600 名前:デフォルトの名無しさん [2009/07/27(月) 13:29:41 ] >>599 あの「リビルド」ボタンはデバッグヘルパをビルドするためのボタンだったんですね 赤いバツ印も緑に変わりました ありがとうございます。
601 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 19:57:59 ] 区切り線のウィジェットってありますか? ボタンとボタンの間に線を引きたいのですがいい方法はありませんか? QMenuのaddSeparatorみたいなイメージで、こんな風にしたいのですが… layout->addWidget(button1); layout->addWidget(button2); layout->addSeparator(); layout->addWidget(button3);
602 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 20:09:38 ] >>601 QFrameを使う。でframeShapeをQFrame::VLineかQFrame::HLineにすれば良い。 つーかQt Designerを使ってないのか?
603 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 20:35:23 ] >>602 ありがとうございます。 frameShapeと合わせてframeShadowにQFrame::Sunkenを指定したら 思っていたような区切り線になりました。 Qt Designer使ってません…。
604 名前:デフォルトの名無しさん [2009/07/28(火) 22:08:54 ] >>603 Designerでどんなコードが出るかを調べながらやると早く覚えられますよ。
605 名前:デフォルトの名無しさん [2009/07/28(火) 23:34:13 ] QTableViewを使ってエクセルの「ウインドウ枠を固定」のような動作をさせたいのですが、 どのように作るのが良いでしょうか? 複数のテーブルをそれらしく組み合わせるとか・・・・ 良い方法があれば教えてください。よろしくお願いします。
606 名前:デフォルトの名無しさん [2009/07/29(水) 10:44:43 ] >>605 >複数のテーブルをそれらしく組み合わせるとか・・・・ それでいいような気がするけど。
607 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 10:30:04 ] >>605 試してはないけれど、 Delegate を使って QModelIndex をうまくずらしてやれば そちらでも対応できそうな気はする。
608 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 19:20:06 ] WindowsAPIのPlaySound関数を使いたいのですが、関数実行後10秒〜30秒程で再生が止まってしまいます QtアプリからはPlaySoundは使えないんでしょうかね?
609 名前:デフォルトの名無しさん [2009/07/30(木) 22:10:18 ] >>608 Windowsでも、Qtは、Windowsアプリケーションに過ぎません、 ちゃんとWindowsのプログラミングをすれば使えます。
610 名前:デフォルトの名無しさん [2009/07/31(金) 13:01:37 ] Qtデザイナーってどうよ?
611 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 16:06:59 ] >>610 便利だけど、凝ったことをするには微妙。
612 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 16:08:12 ] >凝ったこと kwsk
613 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 16:31:52 ] >どうよ? kwsk
614 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 17:02:53 ] mainで作られるwの中のuiをどこからでもいじれるようにはできますか???
615 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 17:40:13 ] >>612 たとえば * QDockWidget を使用する場合 * 画像の貼り付け(バックグランドの指定)など コードとうまく組み合わせる必要があるのでそれなりに慣れはいる。 >>614 ui を public で公開してしまえばいいけど、設計としては勧めたくないな。
616 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 18:26:32 ] >>615 kwsk それだけじゃ何で不都合があるか分からん。 普通にDesigner使っても問題ないように思えるが。
617 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 19:05:23 ] >>616 QDockWidget はドラッグ&ドロップで位置を変えられれないし(プロパティから変更はできる)、 二つのQDockWidgetをタブで同じエリアに配置するのもDesignerからはできなかったと思う。 大きさは変えても反映されない(こっちはQtの仕様上むずかしいが)。 Designer だけの問題ではないが、QDockWidgetを使いたい場合に希望通りの配置をするのは大変。 ( アプリが使われ出したら saveState(), restoreState() を使うからいいんだろうけど。 ) 画像の件はたとえばQWidgetの背景に画像を貼り付けたい場合にパレットで画像が指定できない。 パレットに画像を指定したい場合はコードで指定する必要がある。 基本の配置を作るのに Designer を使うのは便利なときも多いし、問題ないと思う。 ただ、ちょっと派手にしようと思ったりするとコードを書く必要が出てくるので、 GUIだけで「デザイン」をしたいと考えるなら微妙な時もある。 画面のどこまでを Designer で作りたいかだな。
618 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 19:12:29 ] そういえばQSplitterってまだDesignerは対応してないよね?
619 名前:デフォルトの名無しさん [2009/07/31(金) 22:20:45 ] >>618 ずっと前から対応していますね。
620 名前:デフォルトの名無しさん [2009/07/31(金) 22:22:29 ] >>610 使える部分には、使えばいい。
621 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 00:18:55 ] >>618 Containers の中ではなくて、レイアウトの方にある。 複数の Widget を選択した後に間に線と矢印のあるレイアウトを選択する。
622 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 05:37:47 ] ウィンドウの最前面表示を切り替えようと以下のようなコードを 書いているのですが、一度ウィンドウを閉じてから開き直すような 動作になってしまいます。 Qt::WindowFlags flags = windowFlags(); flags ^= Qt::WindowStaysOnTopHint; setWindowFlags(flags); show(); 一瞬ですがチラついて見える上、Windowsのタスクバー内の アプリケーションの順番が変わってしまうのが気になるのですが これを回避する書き方はないでしょうか?
623 名前:デフォルトの名無しさん [2009/08/01(土) 13:14:09 ] >>622 Widget::activateWindow(), QWidget::raise()は?
624 名前:623 [2009/08/01(土) 13:22:11 ] ごめん。Widget::activateWindow()のところに、 Windows版ではそうなると書いてあった。
625 名前:デフォルトの名無しさん [2009/08/01(土) 14:40:29 ] >>614 uiにアクセスしたいクラスを、MainWindowクラスのfriendクラスに指定すれば良い
626 名前:デフォルトの名無しさん [2009/08/01(土) 20:26:30 ] >>624 Qtに限らずWindowsならそうなります。Windowsだから仕方ありません。
627 名前:デフォルトの名無しさん [2009/08/01(土) 20:28:56 ] >>614 そんな馬鹿なことしてはいけない。
628 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 23:19:08 ] >>624 activateWindowの説明読んでみました。ウィンドウがアクティブじゃない状態で 呼ぶとアクティブにならずにタスクバーがチカチカするってことですよね。 アクティブな状態で呼ぶことを想定しているのでそこは問題ないんですが メインウィンドウで呼ぶと一度閉じてしまう現象はよく分かりませんでした。 とりあえずこのままで我慢しておきます。
629 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 23:56:20 ] QNetworkAccessManager や QHttp って同期的には使えない? ちょっとデータを取ってくるだけで Signals/Slots 使って非同期な処理 書くのって微妙に面倒なんだけど…。なんか使い方間違ってんのかな?
630 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 00:25:49 ] >>629 QEventLoopを使うと良いと思う。
631 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 01:00:58 ] >>630 おおー、使ってみます!