[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 08/22 15:13 / Filesize : 182 KB / Number-of Response : 632
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【GUIツールキット】Qt 総合スレ 4【Win/Mac/Linux】



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
おおー、使ってみます!






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<182KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef