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


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

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



1 名前:デフォルトの名無しさん [2009/10/01(木) 12:08:27 ]
Qt(キュート)は C++ ベースの GUI ライブラリです。
フォーム、ボタンなどの各種ウィジェットからネットワーク、マルチスレッド、グラフィックス(OpenGL)や
各種コンテナ、XMLパーサー、組み込み JavaScript など、ライブラリの機能は多岐に渡ります。

Qt Creatorのリリースにより単なるGUIライブラリ・ツールキットから、
単体でGUI作成、コーディング、デバッグも可能な
クロスプラットフォーム対応のRADベースの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 など

■前スレ

【GUIツールキット】Qt 総合スレ 4【Win/Mac/Linux】
pc12.2ch.net/test/read.cgi/tech/1239996587/

413 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 22:45:29 ]
>>410
サブスレッドからシグナルを送るとメインスレッドのスロットで捕捉されるので
スレッド間通信がすっげー簡単になるよ

414 名前:デフォルトの名無しさん [2009/10/28(水) 23:08:30 ]
>>412

>グローバルなアプリのポインタ使った方がスマートかなと思ったり。。。
MainWindowまでたどるのが大変なとき(遠いとき)は、有効。

415 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 01:24:46 ]
>>413
まあ、そんなところの実装例が見たいんだよな。

4.6にはQFutureとかあるし、使い方も知りたい。

416 名前:デフォルトの名無しさん [2009/10/29(木) 08:18:19 ]
>>415
QFutureは、4.4からあります。

417 名前:403 mailto:sage [2009/10/29(木) 23:45:58 ]
>408
>>286のようなコードに修正したいと思ったのですが、qAppはどこで生成されているものなのでしょう?

今現在main()は
int main(int argc, char *argv[])
{
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
このような感じです。(今見るとa, wとか適当な変数名。。)
QApplicationクラスを派生させて、getMainWindow()を追加するのはわかるのですが。


418 名前:デフォルトの名無しさん [2009/10/30(金) 06:10:04 ]
>>417

>408
>>286のようなコードに修正したいと思ったのですが、qAppはどこで生成されているものなのでしょう?

qAppは、/QTDIR/src/gui/kernel/qapplication.h内で定義されているマクロで、
次のようになっている。
#if defined(qApp)
#undef qApp
#endif
#define qApp (static_cast<QApplication *>(QCoreApplication::instance()))

マクロなのでコンパイルする前処理としてプリプロセッサがソースコードに
qApp
があると、その部分全てを
static_cast<QApplication *>(QCoreApplication::instance())
に(ソースコードとして)置き換えてくれる。
つまり、ソースコードにqAppと書いたら、そこにstatic_cast<QApplication *>(QCoreApplication::instance())
と書いたことと同じことになる。

それで、このQCoreApplication::instance()は、何かと言うと、QApplicationの基底クラスのQCoreApplicationで
定義されているstaticな関数で、アプリケーションのインスタンス(実例:メモリー上に実際に確保された変数)を指すポインターを返す。
つまり、アプリケーションを指すポインターを返す。

419 名前:418 [2009/10/30(金) 06:11:41 ]
>>417

QApplicationのqApp [Macro]
doc.trolltech.com/4.5/qapplication.html#qApp

QCoreApplicationのinstanc() [static]
doc.trolltech.com/4.5/qcoreapplication.html#instance

>このような感じです。(今見るとa, wとか適当な変数名。。)

個人的な意見だけど、自分だけでプログラムするのなら、どんな名前でもいいんじゃないかな。
また、簡単な動作チェックなんかのときなどは、いちいち名前なんて考えてられないし。

でも、プロジェクトとかに参加して、ネーミング規約があるのならばそれに従わなければならないし、
他の人が見るものは、ある程度わかりやすくした方がよいと思う。

そして、その”他の人”というのは、数年後の自分である可能性がある。
そうすれば何年も前に書いた、規模の大きい、もう内容を忘れてしまったコードを見たときに、どんな処理をしているか把握するための
手助けになる。

だから普段から、ある程度はわかりやすい名前を付ける癖を付けておいた方がいいと思う。
個人的な意見だから気に障ったらごめん。

420 名前:デフォルトの名無しさん [2009/10/30(金) 20:43:18 ]
QtCreatorが動かん、ハングアップする……と悶々としてたがAvast切ったら改善された。何故。
悩む人がいるかもしれないから参考までに……

421 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 21:33:21 ]
>418
詳しく説明していただきありがとうございました。

変数名についてですが、たぶんMainWindowのexampleのmain.cppを
そのまま持ってきた気がします。
自分で書くなら、ループ変数、局所的なテンポラリ変数以外に一文字
というのはあまり使いません。

ちなみに、Qtは初めて間もないです。MFCとかC++/CLIとか趣味でやっていましたが、
どちらも中途半端な気がしており、マルチプラットフォームで純粋なC++であるQtに
興味を持った次第です。



422 名前:デフォルトの名無しさん [2009/10/30(金) 22:21:39 ]
>>421
>変数名についてですが、たぶんMainWindowのexampleのmain.cppを
>そのまま持ってきた気がします。
>自分で書くなら、ループ変数、局所的なテンポラリ変数以外に一文字
>というのはあまり使いません。
言い過ぎた気がするので、謝ります。ごめんなさい。

>ちなみに、Qtは初めて間もないです。MFCとかC++/CLIとか趣味でやっていましたが、
>どちらも中途半端な気がしており、マルチプラットフォームで純粋なC++であるQtに
>興味を持った次第です。
どっぷりとQtの世界につかってください。
これもおせっかいかも(^_^;)。

423 名前:403 mailto:sage [2009/10/31(土) 00:11:27 ]
>422
>言い過ぎた気がするので、謝ります。ごめんなさい。
全く気にしておりませんよw

ちなみに、>286のようにQApplicationの派生クラス(Application)にgetMainWindow()という
MainWindowのポインタを取得できる関数を追加する場合、
MainWindowのポインタ自体をセットするのはどのようにするものでしょうか?

自分が考えるところでは、派生クラスApplicationにsetMainWindow(MainWindow* mainwindow);を
追加して、main()で
{
Application app(argc, argv);
MainWindow mainwindow;
mainwindow.setMainWindow(&mainwindow);
mainwindow.show();

return app.exec();
}
とやるくらいしか思いつかないのです。

424 名前:デフォルトの名無しさん [2009/10/31(土) 00:33:56 ]
>>423
それでいいと思うけど。

>mainwindow.setMainWindow(&mainwindow);
app.setMainWindow(&mainwindow);
だね。

425 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 08:35:26 ]
>424
ありがとうございます。

>app.setMainWindow(&mainwindow);
easy missでした。

ちなみにQApplicationの派生クラスを作る際に気をつけることって
ありますか?
リンカから
undefined reference to vtable for Application
と怒られました。(ApplicationはQApplicationの派生)
コンストラクタは
Application::Application(int argc, char* argv[]) : QApplication(argc, argv) {}
としております。

426 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 08:43:13 ]
>425
自己解決しました。
randt.jp/?p=729
qmakeを再実行してリビルドしたら大丈夫でした。
すべてリビルドはやっていたのですが、qmakeの再実行はすべてリビルドに
入ってないのか。

427 名前:デフォルトの名無しさん [2009/10/31(土) 09:21:01 ]
>>425 >Application::Application(int argc, char* argv[]) : QApplication(argc, argv) {} Application::Application(int &argc, char* argv[]) : QApplication(argc, argv) {}

428 名前:デフォルトの名無しさん [2009/10/31(土) 15:13:45 ]
>>425

> コンストラクタは
> Application::Application(int argc, char* argv[]) : QApplication(argc, argv) {}
> としております。

Application::Application(int &argc, char* argv[]) : QApplication(argc, argv) {}

&argc としないと落ちることがあります。

429 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 23:10:50 ]
>428
QApplicationのリファレンスを見ると、コンストラクタはargcが参照型なのですね。
ご指摘ありがとうございました。

430 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 19:37:10 ]
QFileDialogで、ダイアログのみのフィルタって掛けられますか?


431 名前:デフォルトの名無しさん [2009/11/03(火) 20:45:42 ]
>>430
意味が分からないんだけど。
具体的に言うとどういうこと?



432 名前:デフォルトの名無しさん [2009/11/03(火) 20:55:18 ]
>>430
質問しているのは、ファイルのフィルタじゃないよね?

433 名前:430 mailto:sage [2009/11/03(火) 21:05:32 ]
えっと、すいません
X ダイアログ
○ ディレクトリ
でした



434 名前:デフォルトの名無しさん [2009/11/03(火) 21:38:34 ]
>>433
ディレクトリのフィルタはできるよ。

static関数のgetExistingDirectory()を使用するか、オプションとしてQFileDialog::ShowDirsOnlyを
指定すればよい。

参考:
doc.trolltech.com/4.5/qfiledialog.html



435 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 22:03:56 ]
QMainWindowでshow()が実行される直前に呼ばれるイベントハンドラはないでしょうか?
以下のソースで、引数つきで実行された場合(argc>1)の引数の処理をMainWindow内で
したいと考えています。

int main(int argc, char *argv[])
{
Application app(argc, argv);

MainWindow mainwindow;

mainwindow.show();

return app.exec();
}

436 名前:デフォルトの名無しさん [2009/11/03(火) 22:25:04 ]
>>435
show()を後からコールすればいいだけなんじゃない?

437 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 22:42:10 ]
>436
たしかにそれでも可能です。
(MainWindowのコンストラクタで処理しても良いとも思います)
あと、main()にあまりたくさん記述したくないなぁというつまらない理由でもあります。

MFCや.NETでフォームとかダイアログが生成されたときに、
一度だけ呼ばれる関数があったので、Qtでもそのようなものが
あるのかなと思い、お伺いしました。

438 名前:デフォルトの名無しさん [2009/11/03(火) 22:46:01 ]
QMainWindow を継承して MainWindow 創ったんなら
MainWindow::show() の中で

hogehoge;
this->show();

とすればよかろう

439 名前:デフォルトの名無しさん [2009/11/03(火) 22:57:55 ]
>>437
その処理をするメンバー関数を定義して、そのメンバー関数をコンストラクターからコールすればいいのではないかな。
そして、そのメンバー関数からshow()をコールすればいい。

あるいは、メインにQObjectを継承したカスタムクラスPreprocessのオブジェクトを作ってそれに引数に対する処理をさせてはどう?
そして、そのオブジェクトのシグナルとMainWindowオブジェクトのshow()スロットでつなげるとか?



440 名前:デフォルトの名無しさん [2009/11/03(火) 23:18:13 ]
>>435
処理の内容にもよるのかもしれないけれど、アプリケーションのカスタムクラスで
コマンド引数に対する処理をしたほうが自然な気がするけど。

441 名前:430 mailto:sage [2009/11/04(水) 07:09:52 ]
>>434
ありがとうございました。



442 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 08:14:05 ]
・・・無限ループ?

443 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:19:59 ]
℃-uteのファンだから、Qt使うことにしようかな?( ・ω・)y─┛〜〜

444 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 22:52:16 ]
ど……どうて?

445 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 14:55:22 ]
Qtのなるべく新しい日本語ドキュメントってどれでしょうか?

4みたいだけど、あまり日本語化されていない。
qt.linux-life.net/4/doc/ja/index.html

結構日本語化されているけど、2.3.2。
www.kde.gr.jp/~ichi/qt-2.3.2/index.html

これぐらいでしょうかねぇ。

446 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 15:12:29 ]
きっと非公式のは期待してないんだよね

447 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 15:36:12 ]
いえ、非公式のでもいいです。

448 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 22:57:41 ]
Qtの正規表現で最短一致を表現したいのですが、どうしたらいいのでしょうか。
Perl5では(.+?)で出来るそうなのですが、Qtでは出来ないようでした。

Key=Value
で、Valueに=が含まれる場合に、Key側を最短にしたいです。

正規表現使わない方法もありますが、正規表現使ってシンプルに実装したいです。



449 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 23:22:49 ]
perlの性器表現を標準だと思わない方が良い
pc12.2ch.net/test/read.cgi/unix/1039165754/
pc12.2ch.net/test/read.cgi/tech/1241537764/
pc12.2ch.net/test/read.cgi/tech/1189246036/

450 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 23:37:33 ]
最短マッチにしたいならQRegExp::setMinimal(true);
ただ(.+)も最短マッチになったはず

451 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 00:05:34 ]
449,450 ありがとうございます。

すみません、QRegExp::setMinimal(true); も試してだめだったの忘れてました。
Key=Value を
QRegExp rxKey("^(.+)=(.*)$");
rxKey.setMinimal(true)
とやっても、Key側にイコールが入ってしまいます。



452 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 00:39:09 ]
QRegExp rxKey("^(.+)=(.*)$");
rxKey.setMinimal(true);

rxKey.indexIn("Key=Value\n");
qDebug() << rxKey.cap(1);


普通にこれで切り出せるけど

453 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 00:46:16 ]
QRegExp rxKey("^([^=]+)=(.*)$");
じゃだめ?

setMinimal は全体を最短にするだけで、各要素を最短でとるわけではないっぽいな。

454 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 09:54:35 ]
ttp://qt.gitorious.org/qt/qt
のページにある様にgitで

git clone git://gitorious.org/qt/qt.git

Qtを落としてきたら、なぜかインストール先が

/usr/local/Trolltech/Qt-4.7.0

になってた
……4.6.0betaのハズなんだけど

455 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 12:08:34 ]
QImageとかQPixmapを使うときに、QPixmap::fromImage(const QImage&)が値渡しで返ってくるのですが、
入力のQImageと出力のQPixmapは別々の領域に確保されるんでしょうか?

Implicitly Shared Classesの話がそうなのだと思うのですが、いまいち理解できなくて。

QImage img1, img2;

img1.load(filename);

img2 = img1;

みたいに使っても問題ないということなのでしょうか。
いちいちポインタを使うものではないですか?


456 名前:デフォルトの名無しさん [2009/11/08(日) 14:22:05 ]
gihyo.jp/dev/feature/01/qt/0003?page=2

457 名前:デフォルトの名無しさん [2009/11/08(日) 14:27:40 ]
>>455
>>456の「子ウィジェットの自動メモリ解放に関連して〜」 辺りを。

>Implicitly Shared Classesの話がそうなのだと思うのですが、いまいち理解できなくて。
その通りでISCが関連します。
>みたいに使っても問題ないということなのでしょうか。
問題ないです。
>いちいちポインタを使うものではないですか?
ポインタを使わないようにするものです。

458 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 15:02:31 ]
>457
レスありがとう。

仮に、
QImage img1, img2;

img1.load(hoge1);
img2.load(hoge2);

img2 = img1;
とした場合、img2は、hoge2の画像データを自動で内部deleteして、
img2もimg1もhoge1の画像を指すようになるんですよね?
そして、img1かimg2どちらかに何らかの操作が行われた場合、初めてimg1のデータがimg2と
別々の領域になるように(内部の画像データコンテナだけだと思うが)、裏でコピー処理が行われる
という理解で良いのでしょうか。

459 名前:デフォルトの名無しさん [2009/11/08(日) 15:35:14 ]
>>458
その通りです。


460 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 19:13:58 ]
>>454
master系のブランチは既に4.7向けになってる。
4.6系のソースが欲しいなら 4.6 / 4.6-stable 等の
4.6系のブランチを checkout する必要がある。

461 名前:デフォルトの名無しさん [2009/11/09(月) 00:54:58 ]
イベントを受け取ったときに、QLabelのテキストの色を変化させたいのですが、
どのように変えればいいのでしょうか?




462 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 01:05:29 ]
Q_SLOTSってなに?

463 名前:デフォルトの名無しさん [2009/11/09(月) 03:12:57 ]
>>461
たとえばこんな感じ
QPalette labelPalette = label->palette();
labelPalette.setColor(QPalette::WindowText, Qt::red);
label->setPalette(labelPalette);

464 名前:デフォルトの名無しさん [2009/11/09(月) 03:57:13 ]
>>462
Qt以外のライブラリでQtの”シグナルとスロット”と同様の機能があり、
そのライブラリでslotsていうキーワードが使用されているようなときに使用する。
このマクロはboostライブラリとQtを一緒に使用できるようにするために、
Qt4.1で導入された。

いつもは

public slots:

などと書いているQtのスロット部分に

public Q_SLOTS:

と書けばよい。

ほかにも、Q_SIGNALS、Q_SIGNAL、Q_SLOT、Q_EMITがある。

qt.nokia.com/doc/4.5/qobject.html


465 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 10:24:40 ]
>>463
ありがとう出来た。
labelからQPalette取り出せば良かったのか。

ただ、デバッグビルドだと色変えた時にランタイムエラー出るのに、
リリースビルドだとすんなり動いた何故なんだ・・・。

466 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 13:40:34 ]
>>464
オマエ、イイヤツ

467 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 17:46:02 ]
Phononってさ、WindowsではDirectX、MacOSXではQuickTime、LinuxではGStreamerだけを使うの?
いろいろ調べると、Phonon自体はWindowsでVLCバックエンドとかMPlayerバックエンドを使えるみたいなんだけど、
qtからじゃ変える方法があるのかないのかよくわかんない。

たまにDirectXのコーデックじゃうまくいかないことがあるから、
プレイヤーからVLC使って再生とかMPlayer使って再生とかしたかったんだけど。


qtは単にPhononを利用しているだけ。だけどqtが利用しているPhononに
Windowsだと、DirectX以外のバックエンドサポートプラグインを加えてないってことなのかなぁ?

理屈上は、VLC or MPlayerサイトで配布されているphonon-backendを加えて
qtのSDKを再コンパイルすると使えるようになるという話なのだろうか?

468 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 17:54:05 ]
お、ちょっとわかった。

QTのライブラリの中にplugins\phonon_backendってディレクトリがあって
そこに、phonon_ds94.dllとかあった。
もしVLCバックエンドを使うとしたらphonon_vlc.dll?とかいうファイルを入れるわけだな。
これを作れるのかどうか、どうやって作るのか、作った後の切り替え方はしらないけど。

ちなみに、他に興味がある人のために説明しておくと、phonon_backendは
MSVC使って自分でコンパイルしたやつにしかない。つまり普通に配布されているmingw版には存在しない。
mingw版ではDirectShowあたりがコンパイルできないからPhononサポートしてないんだと。

469 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:25:18 ]
Phononよか4.6の新機能に期待
Video関連はまだスケルトン状態だけどな・・・

470 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:48:45 ]
4.6の新機能ってなに?

471 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:54:14 ]
>>470
ttp://qt.nokia.com/doc/4.6-snapshot/qt4-6-intro.html




472 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 22:15:59 ]
あー最新の日本語ドキュメントが見たい

473 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 11:38:55 ]
4.6はQWebElementとQStateMachineに個人的に期待している

474 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 16:31:14 ]
Qt Creatorの日本語化する手順について、ご存じの方がいらっしゃいましたら御教授お願いいたします。
環境は以下の通りです。
OS Windows7 64bit版
Qt qt-sdk-win-opensource-2009.04.exe
Qtインストール先 C:\Qt


475 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 21:13:57 ]
>>474
ttp://qt-creator-jp.sourceforge.jp/
このサイトに書いてある
『qtcreator_ja.qm ファイルを複製して
qt_ja_JP.qm にリネームする事で日本語化させる事も可能です。』
自分は上の通りにやったら日本語化された

476 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 22:15:43 ]
>475
レス感謝です。バッチリ日本語化されました。
ありがとうございました!!!


477 名前:デファルトの名無しさん mailto:sage [2009/11/11(水) 22:49:34 ]
Ubuntu QtCreator
先日Ubuntu9.10にバージョンアップしたら、ボタンのテキストに日本語が使えなくなりました。
どおして?


478 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 23:46:07 ]
QToolTipでツールチップの消える時間を制御できる方法はあるでしょうか?
mouseMoveEvent()でツールチップを表示しているのですが、マウスを止めていても、
ツールチップを表示させたままにしたいのです。

479 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 07:19:28 ]
>>477
こちらはDebian GNU/Linuxで、Ubuntuの9.1のパッケージのQt Creator1.2.1を
ダウンロードして使ってみたけど、ちゃんと日本語が表示できたよ。

うまくいかないようなら、Nokia Development Frameworksのウェブサイトから
インストーラー付きのQt Creator1.2.1がダウンロード出きるから
それを入れてみるのもいいんじゃない?
でも、Qt Creatorが原因ではないときには、同じ症状になるかも知れないけど。

ttp://qt.nokia.com/downloads-jp

480 名前:デフォルトの名無しさん [2009/11/12(木) 18:47:11 ]
>>478
もっといい実装があると思うけど、下記のコードで実現可能。

enterEvent()、leaveEvent()ハンドラーをオーバーライドして、
マウスポインターがウィジットの中にあるかどうかを表すm_IsEnteredの値をセットし、
QTimerを使って、アイドル時にQHelopEvent(QEvent::QToolTip,..)
を発生させている。
そして、event()ハンドラーをオーバーライドして、QHelpEventのtype()がQEvent::QToolTipの時に、
ツールチップを表示するようにしている。
下記のコードでは、0.5秒毎にQHelpEvent(QEvent::QToolTip,..)を発生させている。

class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
bool event(QEvent* event);
void enterEvent(QEvent* event);
void leaveEvent(QEvent* event);
void mouseMoveEvent(QMouseEvent* mouseEvent);
private slots:
void sendToolTipEvent();
private:
bool m_IsEntered;
QTimer* m_TipTimer;
};

481 名前:480 [2009/11/12(木) 18:48:20 ]
つづき

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), m_IsEntered(false),
m_TipTimer(0)
{
setToolTip("Tooltip");
setMouseTracking(true);
m_TipTimer = new QTimer(this);
m_TipTimer->setInterval(0.5 * 1000);
connect(m_TipTimer, SIGNAL(timeout()), this, SLOT(sendToolTipEvent()));
resize(800, 500);
show();
}

bool MainWindow::event(QEvent* event)
{
QHelpEvent *helpEvent = static_cast<QHelpEvent*>(event);
if(helpEvent) {
if(helpEvent->type() == QEvent::ToolTip) {
QToolTip::showText(QCursor::pos(), toolTip());
return true;
}
}
return QWidget::event(event);
}



482 名前:480 [2009/11/12(木) 18:50:17 ]
つづき
void MainWindow::enterEvent(QEvent* event)
{
m_IsEntered = true;
if(m_TipTimer and !m_TipTimer->isActive()) {
m_TipTimer->start();
event->accept();
}
QMainWindow::enterEvent(event);
}
void MainWindow::leaveEvent(QEvent* event)
{
if(m_TipTimer and m_TipTimer->isActive()) {
m_TipTimer->stop();
}
m_IsEntered = false;
event->accept();
QMainWindow::leaveEvent(event);
}
void MainWindow::mouseMoveEvent(QMouseEvent* mouseEvent)
{
Q_UNUSED(mouseEvent);
QToolTip::showText(QCursor::pos(), toolTip(), this, frameGeometry());
}
void MainWindow::sendToolTipEvent()
{
if(m_IsEntered == true) {
QHelpEvent toolTipEvent(QEvent::ToolTip, mapFromGlobal(QCursor::pos()), QCursor::pos());
QCoreApplication::sendEvent(this, &toolTipEvent);
}
}

483 名前:480 [2009/11/12(木) 18:54:22 ]
訂正、event()内のshowText()の引数
誤)QToolTip::showText(QCursor::pos(), toolTip());
正)QToolTip::showText(QCursor::pos(), toolTip(), this, frameGeometry());


484 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 19:44:15 ]
ドラッグ&ドロップを実装しようと思っているんだけど、
ウインドウに乗せたリストビューだけに反応させたい。
この場合、リストビューを継承したMyListviewを作らないといけないのかな?

そのMyListviewをQt Creatorでグラフィカルに使うために
パッケージ?みたいな変なものを作らないといけないのだろうか?

485 名前:デフォルトの名無しさん [2009/11/12(木) 20:35:57 ]
>>484
>ドラッグ&ドロップを実装しようと思っているんだけど、
>ウインドウに乗せたリストビューだけに反応させたい。
>この場合、リストビューを継承したMyListviewを作らないといけないのかな?

コードで書くのならば、それが一番素直な気がする。
あとは、イベントフィルターをインストールするとか。

Qt CreatorのGUIフォームエディタ、Qt Desingerなんかで、既に配置したQListView何かに
カスタムな振る舞いを追加したいのならば、「格上げ」でソースを追加することができる。
ソースは、通常のカスタムクラスを書くように、ヘッダと実装ファイルを用意する。

486 名前:485 [2009/11/12(木) 20:36:44 ]
つづき

>そのMyListviewをQt Creatorでグラフィカルに使うために
>パッケージ?みたいな変なものを作らないといけないのだろうか?

この意味がよく分からないんだけれど?

Qtには、View/Modelフレームワークと呼ばれるViewがあり、
具体的にはQTableView、QTreeView、QListViewなどである。
これらはたぶんGUIでアイテムとかは配置できない。
こちらは、View-Control/ModelとDelegateを組み合わせて使用する。
柔軟性が高い。一つのモデルに対して二つのビューで表現させたりできる。
だけど、ちょっとしたものを表示するだけなら
下記のViewを使用するのがいいかもしれない。

もう一つQListWidget、QTreeWidget、QTableWidetというViewがあり、
こちらは、アイテムをGUIで配置できる(制限はあるとは思うけど:あまり使用したことがないのでよく知らない)。
これらは、Qt3に用意されていたViewと同様の機能を提供する。
大概のものはこれで間に合うので、こちらを使用するのもよい。

487 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 20:38:36 ]
わからないなら解凍しないでください

488 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 20:41:31 ]
パッケージ?ってのは、ようするにMyListviewを
Qt CreatorのGUIパーツ置き場に起きたいって事。
そこからpush button見たいにフォームにドラッグ&ドロップして
大きさ変えたり、右のプロパティウインドウでいじれるようにしたいってこと。

489 名前:デフォルトの名無しさん [2009/11/12(木) 20:56:06 ]
>>488
ありがとう。理解できた。

490 名前:デフォルトの名無しさん [2009/11/13(金) 06:22:27 ]
>>488
Qt Designerのプラグインを作ればできますよ。

doc.trolltech.com/4.5/designer-creating-custom-widgets.html

491 名前:デフォルトの名無しさん [2009/11/13(金) 06:28:50 ]
>>486
> もう一つQListWidget、QTreeWidget、QTableWidetというViewがあり、
> こちらは、アイテムをGUIで配置できる(制限はあるとは思うけど:あまり使用したことがないのでよく知らない)。
> これらは、Qt3に用意されていたViewと同様の機能を提供する。
> 大概のものはこれで間に合うので、こちらを使用するのもよい。

Q*Widgetは、そのままの機能使うだけならば、手軽に使えるのだけれど、
例えば、内部にモデルを抱えていて、差替えができなくて苦しくなったりするので、
機能を追加しようというなら、できるだけQ*Viewを使う方がよいと思う。



492 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 16:01:52 ]
Model/Viewを使えるのって、
ListView/TreeView/TableView/ColumnView のViewシリーズのほかに何があるのかな?

ComboBoxでも使えるってのはわかった。
でもLabelやTextEditでは使えないのだろうか?

最近データベース関係やってないから忘れているんだが、
VisualStudioのADO見たいに、フィールドに連結して
値を入れたり表示したりってのを簡単にできないのだろうかと思っているのだが。

Modelからシグナルが発生するようなので、
それを使ってLabelやTextEditに手動で入れるという方法があるというのはわかる。
ただ、setModelみたいにモデルと連結するだけでできる方法があるのかという話。

493 名前:デフォルトの名無しさん [2009/11/13(金) 21:10:19 ]
>>492
QDataWidgetMapperはどうですか。
doc.trolltech.com/4.5/qdatawidgetmapper.html

494 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 22:05:12 ]
ふう、やっとModel/Viewの具体的な書き方がわかった。
「入門Qt4プログラミング」は必須だな。

QDataWidgetMapperはこの本に載ってないなぁ・・・
ぱっとみ望んだものっぽいのでがんばってみる。

495 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 23:43:08 ]
>480
コードまで書いてくれてありがとう。
ToolTipについてよく理解できてないのですが、
QMainWindow::setToolTip()を使ったら思い通りの動作になってくれました。


496 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 00:16:56 ]
【科学】道路に軍手が落ちているワケ、名城大研究チームが突き止める[09/11/05]

namidame.2ch.net/test/read.cgi/hidari/1257990721/




497 名前:495 mailto:sage [2009/11/14(土) 00:46:39 ]
できたできたw

代入コード書いてないのに、QListViewとQComboBoxとQLineEditとQLabelが
全部一緒に変更されるの面白いねw

QLabelの場合、mapper->addMapping(ui->label,0,"text");って
三番目の引数に"text"を指定しなければ表示されなかったので注意。

これで、GUIコードを減らして、GUIの変更にも強いコードが書けるかな。

498 名前:デフォルトの名無しさん [2009/11/14(土) 11:11:19 ]
>>497
>QLabelの場合、mapper->addMapping(ui->label,0,"text");って
>三番目の引数に"text"を指定しなければ表示されなかったので注意。

QLabelにはUSER属性がtrueなプロパティがないからです。

QLineEdit
Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged USER true)

QLabel
Q_PROPERTY(QString text READ text WRITE setText)

ない理由は、

doc.trolltech.com/4.5/properties.html

The USER attribute indicates whether the property is designated as the user-facing
or user-editable property for the class. Normally, there is only one USER property
per class (default false). e.g., QAbstractButton::checked is the user editable property
for (checkable) buttons. Note that QItemDelegate gets and sets a widget's USER property.

499 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 11:31:21 ]
>>498
おお。そっか。プロパティについては本に載っていたから
あとで調べるつもりだったけど、毎度、丁寧に書いてくれてありがとw

500 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 17:10:56 ]
dockされているQDockWidgetのメインウィンドウとの境界線部分を右クリックすると
デフォルトコンテキストメニューが表示されてしまうのですが、このコンテキストメニューはどこで変更できますか?

501 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 17:16:37 ]
Qt Creatorの狭さはどうにかならないのか・・・



502 名前:デフォルトの名無しさん [2009/11/14(土) 19:18:26 ]
>>500
QMainWindow::createPopupMenu()

503 名前:デフォルトの名無しさん [2009/11/14(土) 20:39:38 ]
>>501
ディスプレイを大きくする。Visual Studioでと同じ悩み。

504 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 20:40:39 ]
>>502
この関数をオーバーライドすればいいんですね
ありがとうございました

505 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 21:09:21 ]
Qt Conferenceがアナウンスされてたので是非参加したいのだが、
14日は出張なので行けそうにないなぁ。

506 名前:デフォルトの名無しさん [2009/11/15(日) 18:31:19 ]
Qtを使ったことがないのですが、
Qt creator と Qt Designer の2つのRADが提供されているのですか?

507 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 19:50:09 ]
Creator:コーディング用
Designer:ポトペタ用

508 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 19:50:36 ]
>>506
Qt Designerは文字通りGUIのデザインだけしてXML形式のリソースファイル(?)を出力する
だけのGUIデザイナ。

Qt CreatorはQt Designerにコンパイル/リンク/デバッグの機能を含むIDEを統合
(統合の統合で言葉が変だけど)した本格的RADツール。

509 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 19:57:31 ]
相変わらずリストビュー系(QListWidget)は高機能な分、
難しいね。Qtに限らずだけど。

QListWidgetでドラッグ&ドロップやろうとしたんだけど少しはまった。
普通のやり方と微妙に違うんだね。
doc.trolltech.com/4.5/model-view-dnd.html


510 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 20:26:53 ]
普通とは?

511 名前:506 mailto:sage [2009/11/15(日) 20:39:17 ]
>>507-508
なるほど。
つまり
 RADとしてQt Creatorが提供されていて、
 ただその一部分の機能だけをQt Designerという形で
 使用することができる
と言う認識で宜しいでしょうか?





512 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 21:57:05 ]
前までは、Qt Designerだけだった。
やっとQt Creatorができた。

513 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:03:12 ]
>>512
そうだったのですか。

じゃあ私が使い始めようと思ったのは
きっと良い時期なのですね。


514 名前:デフォルトの名無しさん [2009/11/15(日) 22:04:54 ]
>>511
doc.trolltech.com/qtcreator-1.3.0-beta/index.html
The goal of Qt Creator is to provide a cross-platform, complete Integrated
Development Environment (IDE) to develop Qt projects. It is available for
the Linux, Mac OS X and Windows platforms.

doc.trolltech.com/qtcreator-1.3.0-beta/creator-quick-tour.html
Qt Creator is fully integrated with Qt Designer to help you design user interface
forms just like you would with the standalone version. The Qt Designer integration
also includes project management and code completion. For more information
on Qt Designer, you can refer to The Designer Manual.

doc.trolltech.com/4.5/designer-manual.html
Qt Designer is Qt's tool for designing and building graphical user interfaces (GUIs)
from Qt components. You can compose and customize your widgets or dialogs
in a what-you-see-is-what-you-get (WYSIWYG) manner, and test them
using different styles and resolutions.

515 名前:デフォルトの名無しさん [2009/11/15(日) 22:08:42 ]
>>513
Qt Designerは、Qt 2の頃からありますね。

doc.trolltech.com/2.3/index.html

Qt Creatorは、今年から。

516 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:30:52 ]
>>515
楽しみになって来ました。
いじってみようと思います。

ありがとうございました。changi.2ch.net/test/read.cgi/cchara/1254565608/902


517 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:34:29 ]
いえいえどういたしまして。

【ぬらりひょんの孫】花開院ゆらスレ9【責め9に耐えて】
changi.2ch.net/test/read.cgi/cchara/1254565608/

902 名前:名無しかわいいよ名無し[sage] 投稿日:2009/11/15(日) 22:19:49 ID:76U3ufnFO
>>901
竜二兄さんは逮捕されなかったから大丈夫

518 名前:515 mailto:sage [2009/11/15(日) 22:41:52 ]
何ですかね?
この表示のバグは?

サーバーがおかしくなったんでしょうか?

519 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 00:35:12 ]
QListViewでドラッグ&ドロップはさらに面倒だった。
モデル側にごちゃごちゃ書かないといかんのだな。
設計の理由はわかるんだが。

520 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 02:33:12 ]
Qt CreatorでVisualC++のコンパイラが使いたい

521 名前:デフォルトの名無しさん [2009/11/16(月) 02:56:56 ]
>>520
SDKやバイナリパッケージではなく、Qt Creatorをソースからインストールすれば使えます。
来月出る1.3では、jomでの並列コンパイルでコンパイル時間も短縮。



522 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 06:32:51 ]
Qt Creator 1.3βをVC++ 2008やSDK V6.1でビルドしてみたけど、最後の方になって「〜のメイクの仕方が
わからん」と言うエラーが出てストップする。少し違う環境の複数のマシンでやってみたけど結果は同じ。
多分Makefileが間違ってるんだと思う。
同じ環境でQt 4.6βの方は問題なくビルド出来るんだが...

長い時間進んで最後の方で止まるからショック大きいw
一応、土曜日に本家のBug Trackerにログ付きで報告しておいた。
正式版では直してくれると思うけど。


523 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 10:17:48 ]
俺普通に出来たけどな

524 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 10:59:33 ]
はまりまくりorz

他のアプリからファイルリストをドロップできる
QListView(のサブクラス)を作ろうとしたら
ぜんぜんドロップできなかった。

呼ばれるはずの、QListViewに設定したカスタムモデルの
dropMimeDataが発生しない。

と思ったら、QListViewのサブクラスにデバッグのために書いた
dropEventが処理を奪っていたorz

QListViewなどのModel/Viewアーキテクチャでは
処理の制御をModelと、まだ試してないけど見た目をDelegateがやるから
QListViewのサブクラスは作るまでも無いのかな?

525 名前:522 mailto:sage [2009/11/16(月) 14:38:59 ]
>>523
なぬ〜! 何が違うんだろ。

Qt Creatorのバージョンは1.3β(1.2.92)で間違いない?
コンパイラは俺はVC++ 2008 Express Edition と Windows SDK for Windows Server 2008 and .NET Framework 3.5
(なげーよ)でやってみたんだけど,両方とも同じ結果だった。環境変数の設定が間違ってるといけないので,
普通のコマンドプロンプトやなくて,専用のコンソールウィンドウ(スタートメニューから手繰っていくと出てくるヤツ)
でやったんだけど...PCも一台じゃなくて自宅のと会社ので試したんだけどなぁorz

もちろん PATH には Qt の bin ディレクトリを追加してあるし,念のため QTDIR に Qt のインストールディレクトリ
(俺の場合は C:\Qt\4.6.0-beta1 )を設定しておいたんだけど...QMAKESPEC は自動認識するようなので,
特に設定しなかった(ビルド中のログを見ると,ちゃんと win32-msvc2008 になってる)。

どんな環境で成功したか教えてもらえると嬉しい。ヨロシク。

526 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 14:52:29 ]
具体的にエラーメッセージ貼れ

527 名前:522 mailto:sage [2009/11/16(月) 16:04:21 ]
長いので,本家のBug Trackerに報告したURLを貼らせてください。

つ ttp://bugreports.qt.nokia.com/browse/QTCREATORBUG-281

ここの添付ファイル qtcreator_builderror.txt がビルドに失敗した最後の方のログ。

NMAKE : fatal error U1073: don't know how to make '..\..\..\..\qtc\qt-creator-qt
-creator\src\plugins\qt4projectmanager\customwidgetwizard\customwidgetwidgetswiz
ardpage.ui'

と言うエラーが出てストップ。なのでqmakeで作成されたMakefileのバグだと思ったんだけど...
ちなみに make release してるけど,ただ make にしても結果は同じだった。

528 名前:デフォルトの名無しさん [2009/11/16(月) 18:10:44 ]
>>527
まず、customwidgetwidgetswizardpage.uiがあるかどうか。
次に、Makefileに、このファイルについてのルールがどう出ているか。

529 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:18:57 ]
>>525
前にコンパイルしていたんだけど、OS入れ替えがあって
入れ替え後は面倒なんで配布しているやつを使っていたから
ついでに、もう一回コンパイルしてみたよ。
で、それを昼ごろやったんだけど、今思い出したw

Help->Aboutを見たら、Qt Creator 1.2.92ってかいてある。
ビルドも今日の夕方版

ソースコードは、ソースコード管理システムから落としてない。フォルダに落ちていたファイルを見る限り、
qt-creator-qt-creator-1.3.0-beta.tar.gz とqt-everywhere-opensource-src-4.6.0-beta1.zip を落としているね。

Windows SDK 7.0(Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1)を使った。
Microsoft Visual Studio 2008 Standardは入っているけど、SDK使ってコンパイルしているからこれ関係ないはず。

SDKのCMD shellを修正して、以下のようにしてシェル起動
C:\Windows\System32\cmd.exe /E:ON /V:ON /T:0E /K "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /xp /x86 /release

環境変数は特に設定していないはず。いろんな環境を入れると、コマンドが混ざっていやになるのよ。
だからインストーラーが勝手に設定するのは放置しているけど、手動では設定しないで
バッチファイルやら作って専用のシェル環境を作ってる。

今回は手抜きでSDKのCMD shellから set path=C:\Qt\4.6.0-beta1-x86\bin;%path と打ち込んだw
4.6.0-beta1-x86ってのは、4.6.0-bata1をWindows SDKでx86向けに自分でコンパイルした奴ね。

あとは、qmake、nmake で終わり。あ、nmakeにreleaseつけてないやw 遅いのか? あ、nmakeの代わりにjom使ったほうがマルチコアなら速いんだったw
念のため。生成されたqtcreatorを起動するときは、C:\Qt\4.6.0-beta1-x86\binを環境変数PATHにいれる必要があるよ。
jom.exeはどっかから探してきてね。

530 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 21:19:55 ]
%path% ←%の忘れ物

531 名前:522 mailto:sage [2009/11/16(月) 22:14:55 ]
>>528
レスサンクス。

> まず、customwidgetwidgetswizardpage.uiがあるかどうか。

あるはずだと思うんだが、なぜかない。エラーメッセージを見ると、customwidgetwidgetswizardpage.ui
を作ろうとしているように見えるけど、.ui はQt Designer等で作られるXML形式のリソースファイルで、
これを uic でコンパイルするんだから、このファイルがないのがおかしいようだ。

> 次に、Makefileに、このファイルについてのルールがどう出ているか。

いろんなところにMakefileが散らばっていて、親のMakefileから呼び出されるようなんだが、
問題の customwidgetwidgetswizardpage.ui が出てくるMakefile は、1つしかなくて、ルールは、

ui_customwidgetwidgetswizardpage.h: ..\..\..\..\qtc\qt-creator-qt-creator\src\plugins\qt4projectmanager\customwidgetwizard\customwidgetwidgetswizardpage.ui
c:\Qt\4.6.0-beta1\bin\uic.exe ..\..\..\..\qtc\qt-creator-qt-creator\src\plugins\qt4projectmanager\customwidgetwizard\customwidgetwidgetswizardpage.ui -o ui_customwidgetwidgetswizardpage.h

となってる(コピペしたら改行位置が変で読みにくくてスマソ)。
これからすると、customwidgetwidgetswizardpage.ui から uic.exe で ui_customwidgetwidgetswizardpage.h
を作ろうとしているようだjから、やはり customwidgetwidgetswizardpage.ui ファイルがないのがおかしいとしか考え
えられないと思うんだけど。




532 名前:522 mailto:sage [2009/11/16(月) 22:23:38 ]
>>529
丁寧な解説ありがとう。

> ソースコードは、ソースコード管理システムから落としてない。フォルダに落ちていたファイルを見る限り、
> qt-creator-qt-creator-1.3.0-beta.tar.gz とqt-everywhere-opensource-src-4.6.0-beta1.zip を落としているね。

俺が落としたファイルと全く同じだ。

> Windows SDK 7.0(Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1)を使った。
> Microsoft Visual Studio 2008 Standardは入っているけど、SDK使ってコンパイルしているからこれ関係ないはず。

SDKのバージョンは違うけど、多分関係ないだろうなぁ。

> SDKのCMD shellを修正して、以下のようにしてシェル起動
> C:\Windows\System32\cmd.exe /E:ON /V:ON /T:0E /K "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /xp /x86 /release

サンクス。試してみる。

で、>>531に書いたとおり、customwidgetwidgetswizardpage.ui が見当たらないんだけど、あなたのところにはある?
同じファイルをダウンロードしたんだから、俺のところだけないとすると、解凍ツールのバグだったりして。
総合アーカイバープロジェクトにおいてあるDLLを使うファイラーで解凍したんだけど、なんか怪しい気がしてきた。
ダウンロード時のファイル化けは考えにくいしね。ちょっとチェックして見ようと思う。

533 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 22:49:57 ]
それアーカイバのせいじゃね?w
俺は7zip使ってる。

tar.gzの中にこんなのがある。パス長いから見た目チェックミスりそうだから、
コピペするよw

C:\Qt\qt-creator-qt-creator-1.3.0-beta.tar.gz\qt-creator-qt-creator-1.3.0-beta.tar\qt-creator-qt-creator\src\plugins\qt4projectmanager\customwidgetwizard\
というディレクトリに

customwidgetwidgetswizardpage.ui
というファイルがある。

534 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 22:52:22 ]
ついでに、ファイル名とMD5書いとくわ。

qt-creator-qt-creator-1.3.0-beta.tar.gz
9.17 MB (9,624,511 バイト)
34F264E4F1A06433A9CD6EDE7A39A1E4

535 名前:522 mailto:sage [2009/11/16(月) 23:29:10 ]
>>533, 534

ファイルのほうは正常だった。

> それアーカイバのせいじゃね?w

やっぱりそうらしい。これまで二画面ファイラー Dyna と 統合アーカイバープロジェクトの
DLLでやってたんだけど、別のツール(Lhaz)で解凍してみたら、ディレクトリ構成が変わったorz
で、問題の customwidgetwidgetswizardpage.ui も、所定の場所にある。

なんか Dyna にバグがありそう。便利でずっと使ってたし、こんなこと初めて。
残念だけど、圧縮・解凍は別のツールに変えた方が良さそうだ。

今、nmake でビルドを始めたところ。果報は寝て待つことにしようと思う。
まだ結果は出たわけじゃないけど、皆さんありがとう & お騒がせスマソ。

明朝、うまくいってたら、本家のBug Trackerにも報告しなくちゃ...

536 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 01:23:43 ]
bool QLayoutItem::hasHeightForWidth ()はあるのに、
bool QLayoutItem::hasWidthForHeight ()がないのはなぜでしょう?

これが無くて困ってまして、仕方なくQtへのパッチを作って対処しようかと
思うのですが、影響範囲がすごく大きくなりますよね。
なにか良い手はないでしょうか。

537 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 02:24:05 ]
QListViewって複数列表示できるよな? うーん・・・

538 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 02:40:51 ]
あ、できないのか? サンプルのAdress BookではQTableViewを使ってる。
いかんなぁ。リストビュー=Windowsのアレというイメージがある

539 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 03:34:03 ]
サンプルのbasicsortfiltermodelではQTreeViewを使っていた。
こっちのほうがWindowsのリストビューに近いか?

540 名前:デフォルトの名無しさん [2009/11/17(火) 05:53:45 ]
>>536
>bool QLayoutItem::hasWidthForHeight ()がないのはなぜでしょう?
どんな場合に必要ですか。

541 名前:522 mailto:sage [2009/11/17(火) 11:07:59 ]
>>535
おかげさまで,Qt Creator 1.3βのをWindows SDKでビルドすることに成功しました。

で,makeの最後に,

c:\Qt\4.6.0\bin\lrelease ..\..\..\..\qtcsrc\qt-creator-qt-creator\share\
qtcreator\translations\qtcreator_ru.ts -qm qtcreator_ru.qm
Updating 'qtcreator_ru.qm'...
Generated 2760 translation(s) (2607 finished and 153 unfinished)

Ignored 10 untranslated source text(s)

みたいなメッセージが10個くらい出るんだけど,これって問題ないの?
とりあえずざっと使ってみた限りでは大丈夫そうだけど。

それと,Qt Creatorからアプリをビルドする時は,nmakeじゃなくてjomを使うみたい
なので,NOKIAのサイトから拾ってきて一件落着。

ありがとうございました。



542 名前:522 mailto:sage [2009/11/17(火) 11:10:56 ]
↑ビルドの最後のメッセージはちゃんと読んでみたら,多言語対応の翻訳関係で未翻訳のテキストの
数を表示してるだけみたいだね。

543 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 11:20:53 ]
> それと,Qt Creatorからアプリをビルドする時は,nmakeじゃなくてjomを使うみたい
Qt Creator 1.3のオプションでnmakeを使うようにも設定できたよ。
まあ、jomでいいと思うけど。

544 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 12:12:28 ]
>>540
Qt付属のFlowLayoutデモのVertical版です。
基本機能のフローレイアウトは実現できるのですが、
これを別のレイアウトの中に複数入れるようなことをすると、
高さに対応する横幅を指定出来ないために、内臓するウィジットの横幅総計
と全く関係ないサイズになってしまいます。
アドバイスありますでしょうか。


545 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 16:43:28 ]
Qt CreatorでVisualC++のコンパイラを使うためにビルドしようと思ったけど
だいぶ大変そうだな
ビルド済みのを配ってほしい

546 名前:522 mailto:sage [2009/11/17(火) 17:02:48 ]
>>543
> Qt Creator 1.3のオプションでnmakeを使うようにも設定できたよ。

うん、見つけた。左の[Projects]ボタンを押すと、[Build Steps]で設定できるね。

>>545
俺の場合は解凍ツールがアホだっただけで、ビルド自体はそんなに大変じゃ
ないよ。時間は掛かるけど。あとREADMEがちょっと説明不足気味かな。
makeの後ろにreleaseつけないとデバッグビルドになるなんて書いてないし。

547 名前:522 mailto:sage [2009/11/17(火) 17:19:07 ]
で、Qt CreatorはVCでビルドして動くようになったんだけど、またまた問題発生。
アプリのコンパイル/リンクは通るんだけど、cdbが動かない。デバッグをスタート
させると。

「The application reaquires the debugger engine 'Cdb', ehich is disabled.」

というメッセージボックスが出る。

Debugging Tools for WindowsはもちろんインストールしてPATHも通してある。
Qt Creatorのマニュアルを良く見たら(下記)、

ttp://doc.trolltech.com/qtcreator-1.2/creator-debugging.html

「When building Qt Creator using the Microsoft Visual C++ Compiler, the
"%ProgramFiles%\Debugging Tools for Windows" path will be checked
to ensure that all required header files are there.」

なんて書いてある。これってもしかして、Qt Creatorをビルドする前に
Debugging Tools for Windowsをインストールしとけって意味なのか?
だとすると、やっぱり>>545の言うように、ビルドするの大変だわ。

設定いろいろ見たけど、それらしいものはない。試しに[Tools]→[Options]→[Debugger]
→[Gdb]の[Gdb location]に無理矢理cdbのパスを書いてみたが、関係なかった。

それと、cdbはデフォルトでは %ProgramFiles%\Debugging Tools for Windows (x86)
にインストールされるんだが、前述の説明では %ProgramFiles%\Debugging Tools for Windows と
なってる。これって単なる間違いだよねぇ?

cdbちゃんと動いてる人、教えてもらえると助かる。よろしく。

548 名前:522 [2009/11/17(火) 17:22:21 ]
>>547
× 「The application reaquires the debugger engine 'Cdb', ehich is disabled.」
○ 「The application reaquires the debugger engine 'Cdb', which is disabled.」

タイポスマソ

549 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 17:28:50 ]
VC++でQtCreatorをビルドするときは、
必要なヘッダーファイルがあるか
"%ProgramFiles%\Debugging Tools for Windows"をチェックしとけ

550 名前:デフォルトの名無しさん [2009/11/17(火) 18:21:48 ]
>>547
>なんて書いてある。これってもしかして、Qt Creatorをビルドする前に
>Debugging Tools for Windowsをインストールしとけって意味なのか?

そうだよ。書かれていないと何度もはまるよね。

551 名前:522 mailto:sage [2009/11/17(火) 18:28:17 ]
>>549
> 必要なヘッダーファイルがあるか
> "%ProgramFiles%\Debugging Tools for Windows"をチェックしとけ

「必要なヘッダーファイル」って何ですか?
どこに書いてあります? 少なくともQt CreatorのREADMEのビルド方法の記述には見当たらないし、
マニュアルでも俺には見つけられない。

それと、デフォルトのインストールディレクトリである"%ProgramFiles%\Debugging Tools
for Windows (x86)"ではなくて、"%ProgramFiles%\Debugging Tools for Windows"に
ビルド前にインストールしとかなきゃいけないの?

そう言うんだからあなたは成功したんだと思うので、具体的に情報ください。
よろしくお願いします。




552 名前:522 mailto:sage [2009/11/17(火) 18:37:23 ]
>>550
あぁ、やっぱりそうなんだ。READMEに書いといて欲しいなぁ。
情報サンクス。

とりあえずソースを展開したディレクトリ以下からgrepで"Debugging Tools"を
さらってみたら、cdb.pri と言うファイルにそれらしい記述があった。
インストールディレクトリはどちらでもいいみたい。

これ以上落とし穴がないことを祈って、もう一度ビルドし直します。

553 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 18:57:17 ]
>>552
ビルドする前に qmake -r しておいた方がいいと思います。

554 名前:522 mailto:sage [2009/11/17(火) 19:08:00 ]
>>553
> ビルドする前に qmake -r しておいた方がいいと思います。

情報ありがとう。qmake -helpで見ても-rと言うオプションは見つかりませんが、何ですか?

555 名前:デフォルトの名無しさん [2009/11/17(火) 19:16:56 ]
qt.nokia.com/about/news/qt-4.6-and-qt-creator-1.3-release-candidates-available

556 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 19:32:42 ]
> なんて書いてある。これってもしかして、Qt Creatorをビルドする前に
> Debugging Tools for Windowsをインストールしとけって意味なのか?

そうなのか? 先に入れたっけなぁ?入れてたかもしれないなぁ。
覚えてないや。

> 設定いろいろ見たけど、それらしいものはない。試しに[Tools]→[Options]→[Debugger]
> →[Gdb]の[Gdb location]に無理矢理cdbのパスを書いてみたが、関係なかった。

俺のところでは、[Tools]→[Options]→[Debugger] に
Cdbの設定画面があるよ。ここで、パスを指定できる。

557 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 19:38:44 ]
>>554
-r は、再帰的に qmake かけるオプションです。
なのでQtCreatorのトップディレクトリで実行してください。

558 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 19:53:55 ]
QGphraicsSceneに大きい画像を追加して、QGraphicsViewに登録すると、
スクロールバーが出ます。
QGraphicsScence::RemoveItem()で消しても、スクロールバーが出っ放しなんですが、
ViewかSceneをリセットすることはできないのでしょうか?

559 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 20:19:47 ]
リストビューでカスタマイズした描画ができたから断片おいとくわ。
まとまった情報が見つからないorz もっと良い方法があれば修正してなー。

解説
QTreeViewで一覧を描画するときそれを行うのがデリゲートというもの。
デフォルトではQStyledItemDelegateが設定されている。
QItemDelegateというのもあるがこっちはデザインが古臭い。
(たぶんQStyledItemDelegateがOSネイティブで、QItemDelegateがQt描画)

そこで、QStyledItemDelegateのサブクラスMyDelegateを作る。
paintをオーバーロードして描画すればいいだけなんだが、
選択・マウスオーバー行をあらわすハイライトは
QStyledItemDelegateのもの組み合わせて作りたい。
QItemDelegateにはそれをやってくれるdrawFocusがあるのだが・・・の解決方法。

void MyDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
  //二列目は独自の描画
  if(index.column()==1) {
    //デフォルトの選択行の描画 selected
    QStyleOptionViewItemV4 opt = option;
    initStyleOption(&opt, index);
    const QWidget *widget = opt.widget;
    QStyle *style = widget ? widget->style() : QApplication::style();
    style->drawControl(QStyle::CE_ItemViewItem, &opt, painter, widget);

    //ここにpainterを使って独自の何か書く
  } else {
    //二列目以外は親クラスに渡す
    QStyledItemDelegate::paint(painter, option, index);
  }
}

560 名前:522 mailto:sage [2009/11/17(火) 22:10:32 ]
>>556
先にDebugging Tools for WindowsをインストールしてからQt Creatorをビルドしたら、
CDBの設定画面が出てきました。だから>>556さんの場合は、先にデバッガをインス
トールしてあったんだと思います。

VC++でビルドすると言うことは、デバッガはCDBに決まってるわけで、ビルド時に
CDBの存在をチェックする必要はないような気がするんですけどね。
しかもCDBの設定画面から、CDBのパスが設定できるって、何か変な気がします。

561 名前:522 mailto:sage [2009/11/17(火) 22:18:50 ]
>>557
-recursive の略なんですね。今回は -r を指定して qmake してみました。
nmakeでも途中で qmake を走らせて、各所に Makefile を作ってそれをまた実行する
つくりになっているのを、先に実行させて nmake ではそのプロセスをスキップさせようと
いうことでしょうか?

ちなみに今回は最初、nmake ではなくて jom でビルドを試みましたが、途中でエラー
が出てダメでした。理由はわかりませんが、いい加減調べるのに疲れたので nmake で
ビルドさせたら無事に完了しました。

やっとまともなVC++版Qt Creatorが出来ました。皆さんありがとう。



562 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 22:29:13 ]
>>561
いえ、ちゃんと確認したわけではないですが
qmake しないと nmake するための Makefile が
生成されていないだろうから、qmake -r をオススメしたわけです。
なんにせよ、うまくいったようで何よりです、おめでとうございます

563 名前:522 mailto:sage [2009/11/17(火) 23:22:55 ]
>>562
先に各所にMakefileを作るか、ビルド中に作るかの違いはありますが、
qmakeに-rを指定しなくても大丈夫なようですよ。

> なんにせよ、うまくいったようで何よりです、おめでとうございます

ありがとうございます。しかし、もう少しビルド方法を克明にREADMEなりINSTALLなりの
テキストファイルに書いて欲しいですね。せっかく苦労したから、時間が出来たら何処かに
まとめようと思います。

564 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 23:43:17 ]
ああおれもDebugging Tools for Windows後からインストールしてたわ
もっかいやり直しかorz

565 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 02:01:01 ]
4.6 RC は Visual Studio 2008 のバイナリも出てるんだな。
リリース版でもあるといいが。

566 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 08:55:16 ]
>>565
それならQt CreatorもVC++2008のバイナリ出してくれればよかったのに...

567 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 10:13:00 ]
>>566
別に Qt Creator 関係なくね?

568 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 10:56:48 ]
VS版でしか使えないPhononとかのライブラリがあるから
Qt自体がVS版バイナリがある意味はあると思う。

でも、配布されているQt Creatorバイナリは
gdbもcdbもどちらでも使えるから、どうでもいいと思う。
というかQt Creatorバイナリはどっちでコンパイルされているんだろうか?

それよりも、Qt CreatorのWindows 64bit版を出してくれ。
64bit版じゃないとコンパイルもデバッグもできない。

569 名前:559 mailto:sage [2009/11/18(水) 11:12:36 ]
訂正
void MyDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
  //二列目は独自の描画
  if(index.column()==1) {
    //デフォルトの選択行の描画 selected
    QStyleOptionViewItemV4 opt = option;
    initStyleOption(&opt, index);
    const QWidget *widget = opt.widget;
    QStyle *style = widget ? widget->style() : QApplication::style();
    style->drawPrimitive(QStyle::PE_PanelItemViewItem, &opt, painter, widget);

    //ここにpainterを使って独自の何か書く
  } else {
    //二列目以外は親クラスに渡す
    QStyledItemDelegate::paint(painter, option, index);
  }
}

570 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 14:11:02 ]
Creator って前から VC++ でビルドしてるって話だったような。
64bit 版が Windows でも欲しいのは同意。

571 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 18:55:57 ]
Qt Creator ってガンガン変数とか補完していってくれるって
印象なんだけど(デモビデオとかちらっと見た感じで)、
実際使ってみて、変数とか全然補完されない、ってか補完の仕方がわからんのだが
なんかこう vi の自動補完みたいにさくさくできんもんかなぁ?



572 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 19:04:27 ]
>>571
qt.nokia.com/doc/qtcreator-1.3.0-rc1/creator-code-editor.html
CTRL + Space 押さなきゃいかんのか

573 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 19:11:44 ]
抽象クラスのメソッドをオーバーライドしようと思ったとき、
ヘッダファイルに、戻り値 メソッド(引数,引数,引数);
cppファイルに、戻り値 クラス名::メソッド(引数,引数,引数)
って書かないといけないのがめんどくさすぎる。
どうにかならんの?

574 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 20:22:08 ]
>>573
巣に帰れ

575 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 21:41:10 ]
うわw 何この反応w 痛いところついたかw

576 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 21:45:48 ]
反応がどうのと言ってる反応が相手以上に痛いところ突かれてワタワタしてるのは
どこの板も同じだな。

577 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 21:47:44 ]
>>576
落ち着け。>>573は何も変なこといってないだろう?

578 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 22:00:46 ]
クラス名::つけんと、どっかでエラーになるんじゃ

579 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 22:38:36 ]
Qtの話じゃなくて
C++の話だよな?

つまり>>573はC++の基礎すらままならないわけであり

580 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 01:58:03 ]
>>573
D言語まじお勧め

581 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 02:38:38 ]
>>573 の疑問って
namespace で解決出来ないのかな?w



582 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 02:59:48 ]
>>581
つか CTRL+C, CTRL+V で解決できる気がするw

583 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 06:06:35 ]
FakeVim有効にしてるんですが、癖でESCの代わりにCTRL+[を押すと、
ショートカットで GotoBlockStart というのに割り当てられてるらしく
ブロックの最初((とか{とか)に移動してしまいます。

ショートカットを無効にしてみたんですがインプットモードのとき押すと
左矢印が表示されるだけでESCを押したことになりません。
解決方法はないでしょうか?


584 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 08:07:33 ]
>>579
> Qtの話じゃなくて
> C++の話だよな?

どこが?
簡単にcppファイルとヘッダファイルに
コードを書いて補完してくれるのはエディタの仕事だろ。

585 名前:522 mailto:sage [2009/11/19(木) 09:45:18 ]
>>568
うーん。俺がβ版のビルドで四苦八苦しているうちにRCが出てたんだorz

Qt 4.6.0-RCもVC用とMinGW用のインストーラーが用意されてるし,Qt Creator 1.3-RCの
Windows版もインストーラー形式。で,このQt CreatorはVCにもMinGWにも使える。

試しに,Qt 4.6.0-RCのVC用とMinGW用を別のディレクトリにインストールしてみたら,
Qt Creatorで設定をちゃんとやってやれば,切り替えて使えた!

586 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 10:06:25 ]
>>583
カッとなってfakevimhandler.cppを変更して動くようにした
ついでにコマンドモード時に [ や ] が入力できるバグも直した。
どうしてくれよう。

587 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 10:09:34 ]
>>586
merge request

588 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 11:08:43 ]
手入力したものまで補完できるようになるまで待ってれば

589 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 11:42:57 ]
同じことを二度書かないといけない
C++の糞仕様はもうどうにもならないだろうけど、
エディタで補完するぐらいは出来るだろ。

特にオーバーロードは、すでに書いてあるものを
複写するだけなんだから簡単に出来るはず。

たぶん○○の場合はどうする?なんて細かい問題を言ってくるだろうけど、
こまかいことはどうでもいいんだよ。だいたい出来ればいいんだからさ。

590 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 11:47:35 ]
出来ると思うなら、自分でやればいいじゃん

591 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 11:54:33 ]
やってるけどなw

だがこういうのはエディタにつけるべき機能だ。



592 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 12:01:19 ]
え、patch作ったの?

593 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 12:52:44 ]
Creator の 1.3 はオーバライドするメソッドと引数を
ヘッダーファイルに記述するときに補完できるようになってるし、
ヘッダーファイルに記述してあるメソッドの引数をソースファイルで
補完できるようになってるぞ。
戻り値は難しいが。
試してみろ。

594 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 13:49:22 ]
>>589
cppを先に書いてhを出力してくれるツールや
hを先に書いてcppのスケルトン出力してくれるツールもある
それにIDEならGUIからプロジェクトとかクラス作っただけで一通り出来てるだろ

595 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 13:56:02 ]
>>593
それって、オーバーライド元がconst付きのメソッドの場合、
オーバーライドすると、メソッドの、constがなくなって);ってなるんだよね。

C++の仕様ってメソッドのconstはずしてオーバーライドってやっていいんだっけ?
まずいと思うんだが。

あと戻り値も確かに補完されない。
もうちょっと足りないなぁ。

596 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 14:05:18 ]
Qt Creatorってヘルプを独立させられないの?

597 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 14:16:24 ]
>>596
ヘルプを見るだけなら assistant を起動すればいいが、
連携は出来ないな。

598 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 14:17:34 ]
>>596
QtAssistant ってがあるよ。そゆことじゃなくて?

599 名前:デフォルトの名無しさん [2009/11/19(木) 17:01:30 ]
Qtで2つのキーが同時に押されたときに両方のキーイベントを取得するにはどうすればいいのでしょうか?
(今は後から押された方のkeyPressEventしかこない)

Ruby/Qt/OpenGLで3Dシューティングを作っています。Ubuntu9.04 amd64
www.dotup.org/uploda/www.dotup.org374441.png
直角にしか移動できねえ....


600 名前:デファルトの名無しさん mailto:sage [2009/11/19(木) 21:34:52 ]
QtのMainwindowに、Bitmapの画像を貼り付けられませんか?
変化も移動もしないただのサンプルとして



601 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 14:28:05 ]
リストボックスってどれ?



602 名前:デファルトの名無しさん mailto:sage [2009/11/21(土) 11:20:44 ]
Windows VisualStudioで書かれたコードをLiunx で読み込んだとき文字コード変換は
何を選べばいいの?


603 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 14:50:36 ]
BOM

604 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 21:40:40 ]
Visual Studio(2005以降)でも GCC でも使えるコードにするなら
現状 Shift-JIS にするしかないんじゃないかな?

605 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 00:10:43 ]
Qt 4.6 RC リリース記念書き込み
qt.nokia.com/developer/qt-4.6-preview

606 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 00:18:07 ]
TDM's MinGW gcc4.4.1でQt 4.6.0 RCのビルド成功。
Qt Creator 1.3 RCで、VCisual Studio 2008版と切り替えて使えてる。

ttp://qtusersforum.s2.zmx.jp/forum/viewtopic.php?f=5&t=131

607 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 00:21:32 ]
↑タイポスマソ

×VCisual Studio 2008
○Visual Srudio 2008

実際にはVSは必要なくて、SDKだけでOK。

608 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 01:44:53 ]
otitukr

609 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 05:31:45 ]
>>604
Windowsのシステムロケールを英語にするとUTF-8の一本でOK

610 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 04:44:55 ]
>>607
SDKのみじゃcrt使えないんじゃない?new deleteすらできん

611 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 07:31:33 ]
>>610
何そのガセネタ。

俺は「Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1」だけで、
Visual Studioとかインストールしてないけど、new/deleteはもちろん、STLだって
バリバリに使えるよ。



612 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 15:50:03 ]
はじめまして。わからないところがあったので質問させてください。

QSplitterを使ってウィンドウを分割したのですが、
親ウィンドウのサイズをマウスで変更すると、
子ウィンドウ(QSplitter)の境界線の位置が一緒に移動してしまいます。
親ウィンドウのサイズを変更しても境界線の位置がずれないようにするには
どうすればいいのでしょうか?


613 名前:デファルトの名無しさん mailto:sage [2009/11/23(月) 20:26:03 ]
質問
tabWidgetはデフォルトでタブが2つなんですが、これを3つにしたいです。
Designerで簡単に、追加できませんか。



614 名前:デフォルトの名無しさん [2009/11/24(火) 02:22:24 ]
>>613
コンテキストメニューを表示させて、ページの挿入で。

615 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 09:43:44 ]
>>612
setStretchFactor を使う。変わらないほうを0にする。

616 名前:613 [2009/11/24(火) 10:00:30 ]
ありました
ありがとう

617 名前:デフォルトの名無しさん [2009/11/25(水) 14:57:57 ]
Mac OS XでQtを使ってGUI作る時って、あえてXCodeと組み合わせて使うメリットとか必要あるのでしょうか?

正直、XCodeでGUI作るのとObjective-Cが嫌なので、C++/Qtなわけですが。

618 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 15:05:43 ]
嫌なのになんで必要性とかメリットとか考える訳?
あっても使いたくないんでしょ?

619 名前:デフォルトの名無しさん [2009/11/25(水) 15:41:15 ]
これって、JavaVirtualMachineみたいのインスコしなくても
動くの?

620 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 17:33:59 ]
アタリ!XCode使うのやめまつw>>618
d

621 名前:デフォルトの名無しさん [2009/11/25(水) 17:35:36 ]
Qt Designer を使ってペタペタしましたが、ボタンにイベントハンドラを作成する方法が分かりません。

オライリーのQt本は買ったし、ネットでググりまくりでクラスライブラリはそこそこイメージつかめたのに、イベントハンドラ1つも作れないおorz



622 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 17:42:08 ]
> オライリーのQt本は買ったし

Qt4の本を買わずにQtの本を買っていたら・・・哀れむw

Qt Designerって今使う理由あるの?
Qt Creator使えよ。

あと、Qt Creatorの話。イベントハンドラは、Go to Slotから行う。
イベントハンドラじゃなくて、スロットっていうんだけどな。

623 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 17:44:35 ]
そういや、スロットで思い出したけど、
Qt Creatorのシグナル/スロットの編集(F4)って使ってる?
というか、使える?

ボタン押したらクローズって使い方は
確かにあると思ったけど、他はすべてコードで書きたくなる。

624 名前:621 mailto:sage [2009/11/25(水) 17:53:12 ]
>>622
いえいえ、Qt4にしますた。
しかし読んでるのは、ウェブサイトから落とした「Qt 4.3 Whitepaper/日本語 PDF (A4 - 2.9 MB)」です。

>Qt Creator使えよ。
インスコしますた。

>イベントハンドラは、Go to Slotから行う。
ラジャw

>Qt Creatorのシグナル/スロットの編集(F4)って使ってる?
いきなり敷居が高すぎます。

>確かにあると思ったけど、他はすべてコードで書きたくなる。
すべてコードを書くだけでOKです。
ドキュメントでクローズは専用スロット(関数?)があるみたいなの見ましたが要りませんw

625 名前:621 mailto:sage [2009/11/25(水) 17:58:57 ]
F4 で、Signal and slot editorのリストボックスが出ました。dクス。
これって意味理解するの大変ですね。
なれればスロットをサクサク作るだけなんでしょうね。

とりあえず「Signal and slot editor」の使い方ググってみます(チラウラw)

626 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 18:22:52 ]
>Qt Creatorのシグナル/スロットの編集(F4)って使ってる?

ごめん。これ君ではなく、ここらへんにいる人全体に聞いたのw

個人的にこの機能自体が便利な機能(使える機能)とは思えなくて。
(他の人の反論が無ければ)使わなくていいよw

627 名前:621 mailto:sage [2009/11/25(水) 18:27:52 ]
>イベントハンドラは、Go to Slotから行う。
ヲォ、クリックイベント作れました。イベントハンドラ作れれば後はPDFドキュメントとオライリーで何とかなりまつ(チラ裏)

628 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 07:05:58 ]
YouTube - Creating interactive QT hello world GUI application using QT Creator.
ttp://www.youtube.com/watch?v=QLT7oEt6gLE

Qt Creatorのgui作成でラベル、テキスト入力欄、ボタンを追加して
ボタンを押すとテキストの内容がラベルに入るチュートリアル(3分半)

629 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 14:45:27 ]
>>628
シグナル/スロットの編集ってそう使うのか。
やっとわかった。でも微妙な気がする。
実用レベルのアプリだと、赤い線がごちゃごちゃと。
まあ、コードで書いても見た目が違うってだけか。

630 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 14:56:32 ]
Interface Builder (on NeXT)

631 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 01:53:06 ]
素朴な疑問なんだけど、アプリケーションの外部からのSIGINTみたいなシグナルを
処理する場合、Qtプログラム固有の処方ってあるのかな?
普通のC言語プログラムだと、SIGINTに対してエラーハンドラ関数を指定して、
外部からシグナルを受け取ったらそのエラーハンドラ関数を呼び出すようなことをすると思うけど。



632 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 03:04:25 ]
なんだかQEventでやることになるみたいなんだけど。
例えば、Linuxのシェルからforegroundで実行しているアプリケーションを
いきなりCntrl-Cでkillしたりとか、Windowsのタスクマネジャの終了ボタンで
アプリケーションを強制終了させる場合でも、QEventで処理できるのかな?
なんか良いサンプルプログラムはありませんか?

633 名前:デフォルトの名無しさん [2009/11/27(金) 06:37:51 ]
PyQtでマルチスレッド処理をしたいんだけど
Pythonのthreading.Thread クラスを使うべきなのか
Qtのスレッドクラスを使うべきなのか
悩んでたら寝てしまった。

634 名前:デフォルトの名無しさん [2009/11/27(金) 10:19:32 ]
>>631

Qt 4.5.3: Calling Qt Functions From Unix Signal Handlers
doc.trolltech.com/4.5/unix-signals.html

635 名前:デフォルトの名無しさん [2009/11/27(金) 11:33:35 ]
Qtってデータベースへのアクセスのためのクラスも
含まれてるけど、O/Rマッピングの機能もありますか?

636 名前:デフォルトの名無しさん [2009/11/27(金) 11:54:45 ]
>>635
QSqlRelationalTableModel、QSqlTableModel。






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

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

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