[表示 : 全て 最新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/


263 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 18:49:34 ]
QHeaderViewから親のQTreeViewにアクセスする方法ってある?
QTreeView::setHeader()のソース見ると、d->header->setParent(this)っていうのがあるんだけど、QWidgetからQTreeViewへどうキャストすればいいのか分からない・・・

264 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 01:04:18 ]
>>263
QHeaderView *header = view.header();
QObject *obj = header->parent();
QTreeView *tree = qobject_cast<QTreeView*>(obj);


265 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 01:31:26 ]
>>264
できた、ありがとう! qobject_cast知らなかった、便利そう♪

266 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 10:52:22 ]
Qt Creatorのチュートリアル日本語版は無いんでつか?

267 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 17:41:07 ]
QTabWidgetでタブの配置をEast、Westにしたとき
┌┤
││
││
├┤Widget
││
││
└┤
こうではなく

┌────┤
├────┤Widget
└────┤
このような形にする方法ってありますか?

268 名前:デフォルトの名無しさん [2009/06/06(土) 12:34:56 ]
>>266
sourceforge.jp/projects/qt-creator-jp/
ヘルプファイルの日本語化をされている方がいます。

269 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:09:17 ]
QSplitterの棒のデフォルト位置をデザイナで変更するはどうすればいいのでしょうか?
もしデザイナでできないならば、コードではどう書けばいいのでしょうか?

270 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 12:32:49 ]
>>269
Splitterの下にあるWidgetの SizePolicy -> Horizontal(Vertical)Stretch の値を
それぞれのWidgetで明示するといいみたいです。
左のWidgetでは 10, 右のWidgetは 1 とか

271 名前:デフォルトの名無しさん [2009/06/09(火) 02:28:23 ]
QtCreatorをFreeBSDで動かせてる方いませんか?
当方Win上のVMware上のFreeBSD7.1にて、Qt4.5.1とQtCreatorのコンパイルは
何とかできたのですが、QtCreatorを実行してもウィンドウが現れないのです(;´д⊂)

PortsのKDE4.4.2も同時に動かしてあって、これにつかってるQt4.4.3が影響してるのか。。

QtCreatorを動かすために、gdbで手動デバッグ、やPrintfデバッグするしか手が思いつかなくて(;´д⊂)



272 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 02:44:47 ]
>>271
エラーメッセージは何て言ってるのよ? っていうかメッセージの出しかたがわからんのか?
Konsoleでqtcreatorって打って(でいいのかな?)起動してみれ。

Error:うんこが漏れました

とか出てくるからそれ読んで原因究明。出てこないんならどこかに起動してる。
別のデスクトップとか。

273 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 05:30:07 ]
Qt を使って作られたソフト例
にOperaも入れてやれ。


274 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 05:32:47 ]
Qtってのにうすうす興味があって、
いろいろ調べているうちにさらに興味が湧いてきて

・・・ついに作ってみようかなと言う気になってきた俺が居る。


275 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 08:57:09 ]
つ Qt Creator

276 名前:デフォルトの名無しさん [2009/06/09(火) 12:13:42 ]
>>271
ごめん、エラーメッセージのこと書き忘れてた(⊃д⊂)

Konsoleで
>qtcreator.bin
とやると、
即プロンプトが帰ってきて、エラーメッセージは表示されない。
(コンソールには、QObject: Do not delete object, 'unnamed', during its event handler!ってでる)

即プロンプトが帰ってくるのが落ちてるんだと思い込んでたけど、
Win上のQtcreatorをコマンドプロンプトで起動すると、同じように即プロンプトが帰ってきたから、
これは問題ないとおもひます。

qtcreator.binからqtcreator_process_stubを呼び出してるみたい。
という状況です(;´д⊂)


277 名前:デフォルトの名無しさん [2009/06/09(火) 13:52:15 ]
QTcreatorをデバッグするために-gつけてコンパイルする方法さがしたら、
*.proファイルのCONFIG変数にdebugを追加すればいいとあったんだけど、
自作プログラムでは-gがつくのに、QtCreatorでは付かないよ(;´д⊂)
なんでかな。
CFLAGとかに追加するのをやってみる。

278 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 14:41:35 ]
>>277
qmake qtcreator.pro -r CONFIG+=debug
で Makefile を作ってみると -g はついているけど。

279 名前:デフォルトの名無しさん [2009/06/09(火) 14:47:15 ]
>>278
おおありがとう(;´д⊂)
やってみる

280 名前:デフォルトの名無しさん [2009/06/09(火) 14:49:25 ]
>>278
-gつきでコンパイル始まったよ
ほんとありがとう!

281 名前:デフォルトの名無しさん [2009/06/09(火) 18:42:26 ]
Linux + Qtで printf("\a");で音が出ない
systen("beep");でも無音
G++ で書くと、どちらも鳴るのになぜ?



282 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:37:48 ]
>>281
"\a"って音を出すんだっけ?
音とは限らない何らかの信号をだせばいいんじゃなかったっけか?

まあ全然分からんから誰か頼むわ。


283 名前:274 mailto:sage [2009/06/09(火) 21:38:34 ]
>>275
あんがと!
よし!やってみるわ。
ただ趣味グラマだから実際にプログラミングできるのは
相当先になりそうだがね。

284 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 23:00:11 ]
ファイルパスが存在し得るものかどうかを判定したいのですが、便利な関数はありますか?
*等を含んでいるものや、/が連続するようなパスなどは無効と判定したいのですが・・・

285 名前:デフォルトの名無しさん [2009/06/10(水) 00:55:44 ]
QtCtreatorをデバッグしてるものですが、
QtCreatorをgdbでデバッグしてみると、
エラーで落ちてました。エラーメッセージを吐くコードがちゃんと
あったのですが、ターミナルにはログメッセージがでないようでした。
qDebug()でデバッグしようとしたら、その文字列さえもターミナルにでてこ無くて、
調べてみたところ、QtSingleApplicationでapp変数(return.exec()するやつ)
を生成してる行以降からqDebug()が出力されなくなってました。

QtSingleApplicationって前このスレで出てた、インスタンスを複数作れないよう制限するやつですよね。
これに関して何か知ってる方いませんか?(;´д⊂)

286 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 06:16:51 ]
>>284
QDir::exists, QFile::exists, QFileInfo::exists

287 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 11:56:42 ]
>>286
284じゃないが、それは実際にファイルがあるか調べるメソッドだよ

288 名前:デフォルトの名無しさん [2009/06/10(水) 16:28:20 ]
>>285
qDebug()関係のメッセージが表示されない原因が分かりました。
Qtのコンパイルに-no-iconvを指定すると出来ましたヽ(´ー`)ノ


289 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 22:10:33 ]
はじめまして。
メニューの項目の作り方についてご質問なのですが、
シグナルスロットを使用しない方法か、
どのメニューを選択しても同じ関数が呼ばれて、IDで識別するような方法ってありますでしょうか。
つまり、他のGUIライブラリのメニューのような使い方がしたいのです。
サンプルだとQActionを使ったシグナルスロットの方法しか書いてありませんでした。
これだと、メニューの項目数と同じだけ関数を用意しないとだめなので、
動的なメニューが作りにくいです(´Д⊂


290 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 23:02:16 ]
>>289
QAction を同じ SLOT につなげて、SLOTの中で
sender() を使ってどこからか判断したら。
QAction の文字列とかが欲しいなら
QAction *act = qobject_cast<QAction*>( sender() );
で sender() から QAction を取れるから、 act->text() とかも使える。

って、それでいいなら QMenu::triggered(QAction*) シグナル使えばいいのか。

291 名前:デフォルトの名無しさん [2009/06/11(木) 14:29:58 ]
Qtプログラムをgprofで動作解析するためには、
QTライブラリを -pg -static つきでコンパイルし直さないといけない
と英語のページで書いてあるように思えたのですが、本当ですか?



292 名前:デフォルトの名無しさん [2009/06/11(木) 19:43:37 ]
>>291
Qtだからというのではなく、gprofとはそういうものです。


293 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 19:49:32 ]
Doxygenスレとどっちで聞こうか悩んだのですが、
お願いします。

ttp://www.doxygen.jp/docblocks.html
ここにある
>Qtスタイルを使うことができ、
>この例が示すように、C スタイルの
>コメント・ブロックが開いた直後に
>感嘆符 (!) を追加します。
/*!
* ... text ...
*/
って書いてあります。
私はDoxygenの知識はあるのですがQtに関しては全く無知です。
Qtにもドキュメント自動生成が出来たりするのですか?


294 名前:デフォルトの名無しさん [2009/06/12(金) 01:47:31 ]
>>293
開発元内製のqdocでドキュメント生成されていて、Qt 4.4からqdocのソースが公開されています。
Qt1のソースコードを見ると、この頃から /*!でドキュメントがソースに埋込まれていて、.docもありますね。

295 名前:デフォルトの名無しさん [2009/06/12(金) 12:35:04 ]
>>292
すみません、確認のためにもう一回お願いします。
解析対象のプログラムを-pg -static付きでコンパイルしないといけない、というのと
QTもスタティックライブラリにコンパイルしなおさないといけないのは分かってるのですが、

それだけではくQTライブラリも、-pg 付きでコンパイルしないといけないかどうか
の答えが292であってますでしょうか?

296 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 15:29:38 ]
>>295
Qt自体をコンパイルしなおさないと、qtの中にプロファイル用の
コードが入らないから、実際にはqtの中で時間を使っているのに
プロファイル結果ではその呼び出し元が時間を使っているように
見えてしまう。

それでも良ければ別にQtをコンパイルする必要もQtをスタティック
リンクする必要もないよ。

297 名前:デフォルトの名無しさん [2009/06/12(金) 15:44:57 ]
>>296
おお、そうなのですか。
自作プログラムだけを-pgつけてコンパイルすると、
コアダンプするようになってしまって、QT側に何かしないといけない
と思い込んでおりました。
そもそもコアダンプすることはないのですね
ありがtごうございました。調べてみます。

298 名前:296 mailto:sage [2009/06/12(金) 15:52:58 ]
>>297
ごめん、確認しないで書いた。
コアダンプするなら、それ調べて、Qtが原因ぽかったら再ビルド必要かも。

299 名前:デフォルトの名無しさん [2009/06/12(金) 21:32:53 ]
>>295
いけなくはないけれど、Qtの中がプロファイルできないから、結果はスカスカで、
どこで時間がかかっているかが分からないですよ。

300 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 02:05:11 ]
Qtcreatorので、コンテナボックスを作る方法ってあるのかな?

勿論、ソースでそのまま書けば作れるんだけど、
メイン画面やダイアログみたいに見ながら簡単に作りたい。
でも、GUIツールのところを見てもちょっと見当たらないんだよね。

301 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 02:06:05 ]
>>300
あ、ゴメン、大間違い。

コンテナボックスじゃなくて、コンテキストメニューのことです。



302 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 16:16:36 ]
UNICODEMAP_JPをアプリ側で設定してもコーデックに反映されません
getenvで確認しても環境変数自体は設定できているようなのですが、QTextEdit等に表示すると反映されていませんでした
何が問題なのでしょうか?
環境はWindowsXPでQt4.5.1を動的リンクして使っています

303 名前:デフォルトの名無しさん [2009/06/13(土) 16:49:56 ]
Qtをソースコードから入れたい場合どうすればよいのでしょうか

304 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 17:27:14 ]
あきらめろ

305 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 18:04:38 ]
>>302
俺も前に調べたんだけど、main関数の最初に環境変数書き換えても間に合わないみたい
実行時に変えたいならランチャーを作成するしかないんじゃないかな

306 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 23:20:45 ]
>>303
ttp://doc.qtsoftware.com/4.5/installation.html

307 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 21:26:20 ]
addin入れられなくても
パス指定したらvisual studio EEでQt使えるよね?

308 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 21:29:02 ]
>>307
そりゃ使えるよ


309 名前:デフォルトの名無しさん [2009/06/15(月) 22:02:54 ]
class MainWindowにclass Dialogをメンバ変数として持ち、Dialogから
MianWindowないの関数を呼び出すと、関数までは飛べるんですが、
その後終了してしまいます。
Qtのsignal slotの流れが壊れてしまうのかと思うんですが、
何か、呼び出された側から、呼出し側の関数を呼ぶ方法がありますか?


310 名前:309 [2009/06/16(火) 21:21:24 ]
自分でslotを作れたんですね。


311 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 20:41:44 ]
メインウィンドウ内に、lineEditが3つあって、そのうちの1つにフォーカスを
移すにはどうするの
タブを移動するには




312 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 20:43:11 ]
QWSInputMethodの役目がよく分からないんですが、自分でウィジェットを作ったときに
日本語入力を可能にするためのもの?
別アプリに文字列送信とかも出来るんでしょうか。
ググっても情報がないもんで...。
別アプリに送信できるとうれしいんですけど。

313 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:21:32 ]
>>312
Qt for Embedded Linux で Input Method を実装するためのもの。
X11 を使わない組み込みLinuxだとIMのためのプロトコルがないため、
このクラスを使って実装する。
X11 とか Windows で使っているなら無関係。

別アプリとの通信は X11 だと QtDBUS があるけど、
Windows や Mac だと IPC 使って自分で書かないとだめだったかも。

314 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:39:35 ]
別のプログラムのウィンドウ情報を取得することはできますか?
ウィンドウ位置とタイトルを取得したいのですが・・・

315 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 15:57:49 ]
What is your environment?

316 名前:デフォルトの名無しさん [2009/06/19(金) 19:40:50 ]
>>312
Qt for Embedded Linuxで日本語入力を実装するときに使います。
Qt for Embedded Linuxで、別アプリケーションに文字列送信したいなら、QCOPを使えば簡単にできます。

317 名前:314 mailto:sage [2009/06/19(金) 19:50:50 ]
>>315
すいません
WindowsXPとVistaでの使用を考えています

318 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 20:46:58 ]
ListWidget上などで、右クリックで、ポップアップメニューを出すことは
できますか?


319 名前:デフォルトの名無しさん [2009/06/20(土) 11:22:31 ]
>>318
contextmenuをキーにしてリファレンスマニュアルを探すと分かるでしょう。

320 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 17:00:11 ]
日本語版リファレンスが糞重いな・・・

321 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 17:39:36 ]
QTreeViewを使用して、行を一行固定になるようにする方法ってありますか?
複数行ある文字列をModelにくわせたら、TreeViewも複数行で表示されてしまいます。
QTableViewでは、複数行ある文字列でも一行表示(改行以降の文字列は表示されない)されます。
でも罫線が表示されて微妙な感じです。



322 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 18:57:36 ]
>>321
QStyledItemDelegate を継承して、 displayText() を書き換えて表示する文字列を変更する。


323 名前:デフォルトの名無しさん [2009/06/20(土) 21:54:39 ]
>>320
どこのでしょう。

324 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 01:31:09 ]
>>322
ありがとう。
QStyledItemDelegateから派生したMyDelegateクラスで以下のようにしたら思い通りになりました。

QString MyDelegate::displayText ( const QVariant & value, const QLocale & locale ) const
{
if(value.type() != QVariant::String)
return QStyledItemDelegate::displayText(value, locale);

QString text = value.toString();
QString ret = text;

for(int i = 0; i < text.count(); ++i)
{
if(text.at(i) == 10) //改行なら
{
ret = text.left(i);
break;
}
}

return ret;
}

でも気になったところが...
if(text.at(i) == 10) //改行なら
のところを
if(text.at(i) == QChar('\n'))
でも行けそうな感じしたんだけどダメでした。
どうも、QChar('\n')を110 (小文字のn)と判定してしまっています。
だれか原因分かりますか?
OS X Tiger + QT Creatorで開発しています。

325 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 02:07:00 ]
>>324
Mac は知らんけど、'\\n' だったらうまくいくとか?

自分でループ回すより QString::indexOf() を使うのおすすめ。

326 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 02:59:03 ]
以下の対応したソースをWindowsに持ってきてVS2005でビルドしたらすんなり通った。
int i = text.indexOf(QChar('\n')); // きちんとQChar('\n')は10として評価される
ret = text.left(i);

ちなみに、OSX上で、\\nってやってもダメでした。

327 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:06:05 ]
OSXでは、Optionキー + \ を押さないとバックスラッシュとして認識されないみたいです。
(マカーからすれば当たり前のことなのか。)
お騒がせしました。

328 名前:318 mailto:sage [2009/06/21(日) 12:51:43 ]
>>319
勉強してみます
ありがとうございました。


329 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 12:56:18 ]
QListWidgetでファイル名を表示してるんですが
addItemはできるんですが、削除するにはどうしたらいいんですか?
ui->listWidget->removeItemWidget(item);
かと思ったんですが、削除できません。


330 名前:デフォルトの名無しさん [2009/06/21(日) 13:51:17 ]
>>329
QListWidgetからのアイテムの削除は、takeItem()で。
removeItemWidget()は、アイテムに設定したウィジェットの削除です。

331 名前:329 mailto:sage [2009/06/21(日) 18:17:33 ]
>>330
ありがとう
でも、takeItemとは、とても思いつかなかった




332 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 19:00:43 ]
WindowsとLinux(Ubuntu 8.10)の2つの環境下でQt4.5を使っています。
QtWebkitを使いたいと思っているのですが
include時に'QtWebkit': No such file or directoryと表示が出ています。
両環境ともにlibなどはインストールされているっぽいのですが…。
何か予め設定が必要なのでしょうか?

333 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 19:15:27 ]
>>332
pro ファイルに
QT += webkit
はある?

334 名前:331 mailto:sage [2009/06/21(日) 19:42:59 ]
>>333
できました!!
プロジェクト作る時にちゃんと聞いてきてましたね…。
見逃してました。
教えていただきありがとうございました。
まだ触り始めですが色々できそうで楽しみです。



335 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 02:54:24 ]
Janeみたいに3ペイン表示ってQtデザイナで作れますか?

336 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 06:46:31 ]
ok

337 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 21:03:11 ]
質問失礼します。
関数内で
void func(void)
{
QWizard wizard;
}
を使用するとメモリリークが発生します。
void func(void)
{
QDialog wizard;
}
を使用するとメモリリークが発生しません。

QWizardって呼ぶときとか終了する前にしないとだめな処理とか
あるのでしょうか?
環境は Qt 4.5.1 VisualStudio2008 Express
です。
メモリリークのチェック方法は、
#include <crtdbg.h>
をつかってます。



338 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 22:16:08 ]
>>335
QSplitterで縦に分割して、さらにQSplitterで横に分割すればできる。
QTDesignerでも可能

339 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 22:19:59 ]
>>337
本当に?
プログラマーの友 第八報:メモリリークと crtdbg.h
ttp://www7b.biglobe.ne.jp/~robe/pf/pf008.html
>この _CrtDumpMemoryLeaks ですが、この関数は正確には
>「この関数を呼んだ時点で開放されていないメモリの情報を表示する」関数です。
>たとえ main の最後に書いておいたとしても、
>cin などのグローバルオブジェクトで確保されたメモリは、
>まだデストラクタが呼ばれておらず開放されていないわけです。
>これまで検知してしまうので、
>メモリリークしていないにもかかわらずメモリリークしたと
>報告してしまうことがあります。
ここにあるような理由じゃないよね・・・?

340 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 23:01:24 ]
>>339
レスありがとうございます。
僕が使ったのは、
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
こっちのほうなので、影響はないぽいです。
使い方に問題がないのならば、
本当にメモリリークがあるぽいのかな?


341 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 01:07:08 ]
>>340
本当に >>337 だけで再現するの?
少なくとも >>337 だけじゃ実行できないよね?
実行できて問題が発生する最小限のコードを提示してもらわないと、
だれも君の手元のコードをデバッグできないよ。



342 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 05:06:12 ]
とりあえずサンプルソースを貼るなら
codepad
ttp://codepad.org/
ここに貼るのがオススメね。


343 名前:デフォルトの名無しさん [2009/06/23(火) 16:36:46 ]
>>327
JIS配列の場合のみね。
ことえりの環境設定で、¥をバックスラッシュとして扱うよう変更出来る。
ただし、この場合、¥マークを出したい場合はoption + yとなる。

344 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 22:12:59 ]
>>341
ごもっともです。
症状の発生する簡単なプログラムを作りました。


>>342
ありがとうございます。
使用させていただきます。

codepad.org/HoQtNsqw


もしかしたら、ライブラリのコンパイルをミスったとか
そんなことないですよね・・・(泣)
他の方も同じ症状が発生するのかどうかが知りたいです。


345 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 22:25:34 ]
コンパイルできてないのに
なんで実行できたんだろう

346 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 23:49:32 ]
>>345
いえいえw
部分的にコンパイル条件が変わってしまったのかなと思っただけです。
たぶん、そんなことは希少だと思うので、
ライブラリのコンパイルは成功してると思います。
Qtは初使用なので、コンパイルが失敗してたら
ライブラリが存在しないはず。

もしかしたらリンク先消えちゃうかもしれないので
張っておきます。

#include <windows.h>
#include <crtdbg.h>
#include <QtGui/QtGui>

int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hinst_prev, LPSTR cmdline, int nshow)
{
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_DEBUG | _CRTDBG_MODE_WNDW);
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);

QApplication app(::__argc, ::__argv);
QWizard wizard;

return (0);
}




347 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:15:07 ]
>>344
URLがQtだ
すげぇ

348 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:36:23 ]
>>346
そうじゃなくて

codepad.org/HoQtNsqw

コンパイルエラー出てるじゃん


349 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:40:51 ]
>>348
馬鹿?w

350 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:47:07 ]
いえいえw
ばかじゃなくて
うんこです

351 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:21:13 ]
>>347
> URLがQtだ
よく気付いたな。
すげぇ!



352 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 19:01:58 ]
ttp://www.qtsoftware.com/about/news/updates-to-qt-and-qt-creator-released
Qt 4.5.2 & Qt Creator 1.2 release!

353 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 22:10:59 ]
Qtでタイトルバーがないメインウィンドウって作れるの?
コマンドラインランチャ作ろうと思って調べたけど分からんかった…

354 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 22:17:45 ]
Ubuntu9.04 Qt4.5
1台のPCで書いたQtのプログラムを、別のUbuntuPCにプロジェクトごと
コピーしたんですが、
/usr/bin/ld: cannot find -lfreetype
collect2:ld はステータス1で終了しました
のエラーでとまります。
何が原因でしょうか?


355 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 22:28:05 ]
freetype のライブラリ が入ってない
ubuntu だと freetype-devel? とかいれればいいんでね


356 名前:353 mailto:sage [2009/06/25(木) 23:00:51 ]
ごめん、前スレにあったわ。Qt::FramelessWindowHintを使えばいいのね。

357 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:52:02 ]
QT4.5.2でてるよ。
QtCreator,MSアドインも。

358 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 20:41:27 ]
Windows上のQtCreator+MinGW+gccでは、
MSVC用に提供されてるlibファイルのリンクって出来ないですよね?


359 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 21:16:04 ]
mingwで吐いたLIBとVCで吐いたLIBのバイナリヘッダを見比べてみ

360 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 17:11:02 ]
リファレンスの訳をシコシコやってるんだけど
これ見てる人いるのかな
誰も見てなかったらモチベーションが続かない・・・

361 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 17:44:12 ]
つ アクセス解析




362 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 18:53:32 ]
qt.linux-life.net/4/doc/ja/index.html
これ?

363 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 20:57:29 ]
>>362
それそれ
今思えば自分もリファレンス読むとき本家の英語版読むんだから
やる必要はなさそうだね

364 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 22:00:03 ]
>>363
俺は今 急がしくて新しいのに挑戦できないのだが
今度 チャンスを見つけて
Qtに浮気しようかなと思っている。
別のスレで結構良い出来だと言われているんで。

そんな俺にとっては翻訳してくれる神がいると絶対うれしい。


365 名前:364 mailto:sage [2009/06/27(土) 22:04:13 ]
だからこうしてQtを使ったこともないのに
このスレをROM専で見学している。


366 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 22:37:41 ]
4.5.2コンパイルできないや

367 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 22:40:35 ]
>>366

どういうこった?

368 名前:367 mailto:sage [2009/06/28(日) 01:54:42 ]
QT 4.5.2をVS2008使ってビルドしてみたら

ttp://labs.trolltech.com/blogs/2009/06/25/qt-452-has-been-released/

≫ Posted by Thomas on Friday, June 26, 2009 @ 15:53
と同じ現象で、QWebkitのリンクエラーが発生した。

対処方法としては、
-no-webkit
を付ければいけるみたい。その代わり、Webkitが使用できなくなる。。。
だれか、解決できた人いる?

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