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


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

[KDE/Qt]Qtについての疑問を教えあうスレ 2



1 名前:デフォルトの名無しさん mailto:sage [2005/10/26(水) 13:26:15 ]
QtはTrollTechが作成したC++ベースのGUI toolkitで、
OS間の差異を意識せず開発できるように作られたライブラリ群です

GUIだけではなく、ネットワーク、マルチスレッド、グラフィック(OpenGL)や
各種コンテナ、XMLパーサーなど豊富なライブラリを持ちます

Win, Linux, Mac版があり、10月26日現在でQt4.0.1
有料版・無料版(Open Source Edition)とあり、無料版はGPL

■Trolltech
  www.trolltech.com/

■The Qt Open Source Edition is available for download
  www.trolltech.com/download/opensource.html

■Open Source Edition download files
  www.trolltech.com/download/opensource.html
  ★ Qt/Windows Open Source Edition
    www.trolltech.com/download/qt/windows.html
  ★ Qt/X11 Open Source Edition
    www.trolltech.com/download/qt/x11.html
  ★ Qt/Mac Open Source Edition
    www.anime-int.com/download/qt/mac.html

■Qt4 Reference
  ・Trolltech公式 doc.trolltech.com/4.0/index.html
  ・一部邦訳版  torafugu.com/Trolltech/qt-4.0.0/html/index.html

■Qt GUI Programming (内容はQt3ベースだけどQt4にも十分応用できます)
  ・洋書 www.trolltech.com/developer/books.html
  ・邦訳 store.sbpnet.jp/bm_detail.asp?sku=4797328304


696 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 17:31:56 ]
>>693
英語版のQt4版買いなよ。
>>695
「エラーを吐く」なんて生物的な表現はOKなのか。
「warn: 警告する」だからあながち間違いではない。
そんなことを言い出したら俺やあんたも単に脳で電気的・化学的に
行動してるだけだから、感情などないとされてもおかしくない。


697 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 17:35:54 ]
コンパイルしたら怒られました

698 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 17:42:21 ]
しかしまあ、どっちかというと「怒られる」よりは
「叱られる」のほうがしっくりくるなあ。
怒るほうは感情込み・理不尽な場合あり、
叱るほうは感情の有無を問わず理性的な指摘
というイメージだから、>>696を肯定したからと言って
あながち>>695のいうことも間違ってないように思う。

699 名前:698 mailto:sage [2007/06/05(火) 17:43:10 ]
もちろん、そんなことはどうでもいいというツッコミは正論。

700 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 17:45:00 ]
>>699は話の分かる奴だ、core吐きますた

701 名前:693 mailto:sage [2007/06/05(火) 17:49:04 ]
みなさん、どうも。

Qt3と互換性がないと言っても、
「こうこうこういう仕組みだから、これはこういう風に読みかえればOK」
という部分を知りたいのですが・・・。

巻末にあるQt4の説明には特に何もかかれていなくて・・・。

>>696
英語版はもうQt4対応しているんですね・・・買い時を誤ったかなぁ。

702 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 18:28:21 ]
>>701
ぶっちゃけリファレンスとExamplesで問題ない

703 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 18:30:50 ]
Qt3とQt4の違いは多すぎてとても書ききれん。
doc.trolltech.com/4.2/porting4.html
いちおうドキュメントではこれだけ違いがあることが書かれてる。
英語読めるよな?英語読めないならQt使おうなんて気は起こさない方がいい。

704 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 18:33:41 ]
Qtなんて本買って読むほどのもんでもないぞ。
唯一の利点はWindows版のQt3が手に入ることか。



705 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 18:38:18 ]
win版のQt3は>>686で落とせるよ
あとcygwinのプロジェクトの人たちが勝手に移植してるやつもある
バグだらけだけどなw

706 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 21:56:16 ]
>>701
ちょっと古いけど
ttp://torafugu.com/Trolltech/qt-4.0.0/html/qt4-intro.html

707 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 22:35:01 ]
4.3がすでにリリースされています


708 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 22:54:47 ]
>>707
4.3の新機能で、待ち望んでたのある?

4.2は、個人的にキターって感じだったのですが。



709 名前:701 mailto:sage [2007/06/06(水) 11:40:08 ]
>>703,706
ありがとうございます!英語はかなり読めます。でものろいです…。

710 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 02:04:30 ]
お!4.3来た?Betaから移行しよう

711 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 18:14:07 ]
WindowsXP+MinGW+Qt 4.3.0でQtの練習をしています。

QGraphicsViewを使って、selectすると色が変わる丸い点をたくさん(50000個)表示するのを
目標にしています。

サンプルを見ると、QGraphicsItemを継承したクラスを作って、そこで
paint,shape,boundingRectをオーバーライドすればよいようなのですが、
便利のため用意されているQGraphicsEllipseItemを使うことにしました。
実際には、それを継承したクラス(ScatterPoint)を作成しました。

ところが、「selectすると色が変わる」という部分が実装できません。
作ったクラスは以下の通りです。

class ScatterPoint : public QGraphicsEllipseItem{
public:
ScatterPoint(qreal x, qreal y, qreal width, qreal height, QGraphicsItem * parent)
:QGraphicsEllipseItem(x, y, width, height, parent)
{
setPen(QPen(Qt::black));
setFlag(ItemIsSelectable);
setBrush(Qt::red);
}
};

例えば、さらにpaintをオーバーライドして、isSelected()に応じて色を変えるとか
にすればできそうですが、paintの中で「丸」まで書き直さないとだめになってしまいます。

何かよい案があれば教えていただけないでしょうか・・・。

712 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 21:44:31 ]
書き直さないとってのがよくわからないんだけど
色を変えたら再描画は当然じゃない?

713 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 22:10:35 ]
関数の最後にrepaint()入れてみたら?

714 名前:711 mailto:sage [2007/06/12(火) 10:02:34 ]
>>712,713
ありがとうございました。paintの中にrepaintを入れることでできました!

void ScatterPoint::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *)
{
if( isSelected() ){
QAbstractGraphicsShapeItem::setBrush(QBrush(Qt::black));
} else {
QAbstractGraphicsShapeItem::setBrush(QBrush(Qt::red));
}
QGraphicsEllipseItem::paint(painter, option);
}

でも、select状態になると、boundingRectの枠線も描かれてしまうようで、
やはり細かいことをするにはQGraphicsItemを直接継承したクラスを作った
方がよさそうです。速度はほとんどかわりません。

50000個の円がある程度重なり出すと速度が異様に遅くなります。
これはどうしようもなさそうですね・・・。QGLWidgetを使うのを検討中です。



715 名前:デフォルトの名無しさん [2007/06/12(火) 21:17:15 ]
Qt3.3でデータファイルの内容が変化したときに、自動的に画面の内容を更新するプログラムを
書いています。

void QMyWidget::paint(QPaintDevice* device)
{
// timer eventに対するスロットの中でファイルが更新されたかチェックし
// 更新されたならIsFileModifiedをtrueにして、関数update()を呼ぶ

if(IsFileModified)
{              
ReadDataFile(); // ファイルをメモリに読み込む
IsFileModified = false;
}

// 以下、描画コード
}

ところが、上記のやり方でファイルを読むと"Error in opening the file"と
メッセージが出て、3回目でクラッシュしてしまいます。因みにメニューを
選んだ時にファイルが読み込まれるようにして読むと、同じファイルを何回読んでも
エラーは起きません。従ってファイルの読み込み関数(上記のReadDataFile)自体には
問題は無いと思います。
Qtではpaint関数の中でファイルアクセスを行ってはいけないのでしょうか?

716 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 23:45:42 ]
>>714
repaint()のかわりにupdate()にしたら何か変化ありますか?
doc.trolltech.com/4.3/qwidget.html#repaint
doc.trolltech.com/4.3/qwidget.html#update

717 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 08:58:46 ]
>>715
ファイルを変更するプロセスがファイルを開いているときに、
あなたのQtアプリで開こうとしているわけではないですよねえ。

718 名前:715 mailto:sage [2007/06/13(水) 09:25:20 ]
>>717
FAMを使ってファイルの変更を検出していますが、これだとまだファイルが開かれて
いるときにFAMChangedシグナル(ファイルの変更を通知)が発生する可能性がありますか?

セマフォ等でプロセス間の同期をとってみます。

719 名前:714 mailto:sage [2007/06/13(水) 10:00:40 ]
>>716
update()にすると、何も表示されなくなってしまいました・・・。
やはり、QGraphicsEllipseItem::paint(painter, option);を呼び出して
円から描画しないとだめみたいです。

あと、QGraphicsItemを直接継承したクラスを作ってやってみましたが結果は同じでした。
円同士がお互いにそんなに重ならない時は描画はやたら速いのですが、
感覚的にほとんど真上に重なるのが100個以上になると、めちゃくちゃ時間かかります。
boundingRectやshapeの計算で時間くってるっぽいですね・・。

720 名前:716 mailto:sage [2007/06/14(木) 00:18:04 ]
>>719
むむ・・・、そうでしたか。

図形が重なると遅くなる件は、
QGraphicsSceneのItemIndexMethodとか、いろいろいじってみると
何か変わりそうな気がします。


721 名前:デフォルトの名無しさん [2007/06/21(木) 15:32:59 ]
Qtopia-Coreで日本語入力をやりたいのですが、
xを積まずに日本語入力は難しいでしょうか。

722 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 10:53:12 ]
瞬間的に色が変わるアプリって作りずらいよなぁ
20年前のスプライトとか水平型のG-RAM積んだ8ビット機が
簡単にできるようなことを
Qtで再現しようとしたら速度的につらいよん(´・ω・`)

723 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 15:26:02 ]
Qtに速度要求しちゃだめだよ。OpenGLと組み合わせるなら話は別だけど。
いろんなプラットフォームで動くように、裏でずいぶん冗長なことをしてる。

724 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 05:00:42 ]
tileqtをXUbuntuでコンパイルしようと思い、Synapticパッケージマネージャーで
libqt3-headers
libqt3-mt
qt3-dev-tools
qt3-qtconfig
を入れたのですが、configureがとおりません。config.logを見ると
/usr/include/qt3/qglobal.h:775:21: error: qconfig.h: No such file or directory
/usr/include/qt3/qglobal.h:785:22: error: qmodules.h: No such file or directory
となっていました。/usr/include/qt3は作られていて、中にはQTのヘッダファイルが
入っているようですが、この二つはありませんでした。/usr/以下を検索してみましたが
これらの名前のファイルは見つかりませんでした。どこからこれらのファイルを
入手すればよいのか教えてください。



725 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 05:37:28 ]
libqt3-mt-dev に入ってるんじゃね?

726 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 13:39:10 ]
>>725
できました。ありがとうございました。

727 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 08:00:54 ]
ターミナルからqtを使ったアプリを起動すると日本語入力のたびに
sending IMComposeのようなログ?が表示されるけれど、これって正常?
makeの際debug関係は無しにしてるのだけど。表示しないようにはできないのかな

728 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 10:36:11 ]
Qt4のQPainterのdrawTextが遅すぎる
1文字1ミリ秒ぐらいかかる
なんとかならんものか

729 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 17:52:40 ]
Qt4が出てから2年もたつのに、一向に普及しないな

730 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 18:46:16 ]
KDE4が遅れに遅れてるからな

731 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 18:56:23 ]
今年中にKDE4がちゃんとかんせいすればいいのですが

732 名前:デフォルトの名無しさん [2007/07/04(水) 20:52:32 ]
X Window+Qt3.3.5を使ってアプリを書いています。ところが完成したQtアプリを
解像度の違うPCでコンパイルするとQt Designerでデザインしたダイアログボックス
コントロールの位置がずれたり互いにオーバーラップしたりします。フォントの
サイズに合わせてコントロールの位置や大きさが変化しないせいではないかと
思うのですが、どうしたら解決できるでしょうか。レイアウトを使う以外に
ないのでしょうか。

733 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 22:03:45 ]
フォントサイズをピクセルではなくポイントで指定してるせいでは?

734 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 18:59:40 ]
もうQTはデスクトップからは撤退していいだろ
組み込みや携帯向けの方が売れてるんだからさ



735 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 21:15:48 ]
>>734
俺が困る

736 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 21:48:40 ]
>>734
同じく困る。



737 名前:デフォルトの名無しさん [2007/07/11(水) 00:20:56 ]
>> 734
組み込みや携帯向けは数分の一。

738 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 19:51:20 ]
QObjectのparentって、指定したらなんかいいことあるの?

739 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 19:58:14 ]
親がdeleteされるときにそのオブジェクトもdeleteされる

740 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 23:41:29 ]
>>739
なるほど。それは便利ですね。

そしたら、クラス内でのみ使うものとかは全部、parentをthisにしときゃいいのか。

741 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 01:17:14 ]
普通はわざわざparent指定しなくてもいいんじゃないの?
buttonとかlabelとかlayoutに貼り付けた時点で勝手にparent指定されると思う

742 名前:デフォルトの名無しさん mailto:age [2007/07/26(木) 17:51:48 ]
QTextBrowserに画像を表示したいんですが、どうやったらいいんでしょう?

743 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 21:41:41 ]
Qt5まだー?

744 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 01:06:04 ]
4.3.1が出ましたね



745 名前:デフォルトの名無しさん [2007/08/17(金) 10:47:21 ]
こんなスレがあったのか。
以前、2chとQtをキーワードでググったときは
全然引っ掛からなかったのに今回はいとも簡単に見つかった。

Qt使ってる人間って日本には10人くらいしかいないんじゃないか、と真剣に思ってたりする。
情報の少なさには唖然とするよ。

746 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 11:26:26 ]
使っている人間全てが情報提供の義務を負うわけじゃないから

747 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 14:58:57 ]
TrolltechのQtのメーリングリストで日本人らしい名前の人は
ほとんど見かけないです


748 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 16:33:23 ]
俺もやってるよー
付属のチュートリアルいじってるぐらいだけど

749 名前:デフォルトの名無しさん [2007/08/18(土) 14:47:14 ]
>>745
Qtユーザーって日本ではそんなに少数派なの?では日本では何を使ってGUIアプリ
作ってるんだろ。wxWidgetとかFox GUI tool?

750 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 15:00:11 ]
>>749
GTK+

751 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 18:09:23 ]
>>750
でもGtkのスレ全然伸びてないし、クロスなGUI環境というより
Linuxのネイティブとして使ってるだけでしょう?

752 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 18:32:36 ]
>>751
クロス重視をネイティブで作ること自体あまりないよ。
仕事でそういう案件があれば大抵Swingだし、
趣味だと最近はGUIよりWebアプリの方が活発。

753 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 20:24:52 ]
そもそも、日本人がクロスプラットフォームのアプリを作っている例を知らない。
ライセンスが面倒な Qt よりは wx の方が使われていそうだけど。

754 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 01:21:39 ]
QtはC++アプリを作るのは非常に楽。

でも、いまはPyGtkを使うのが一番いい。C++たるいお。



755 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 01:59:32 ]
PyQtもあるがな

756 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 02:54:48 ]
QtRuby/Korundumすごく楽です

757 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 12:12:41 ]
ザウルスでRuby/Qteつかって趣味でプログラム書いてる
純粋に楽しいお

758 名前:デフォルトの名無しさん [2007/08/22(水) 08:17:38 ]
スレタイ通りの書き込みです。
他の人が組んだQtプログラムを基にして
自分のプログラムに変えていってるんですが
まだその基のプログラムが理解できていません。

「固定の入力/出力ポートを持つノードを作成してそれらをつなげる」
というのが基のプログラムの主旨です。
僕はそれを「入力ポートを任意の数に増やせる」ように変えようとしていて
プロパティーでは入力ポートの数はちゃんと増えているんですが
何故か画面には描画されません。

ソースコードの断片はこちらです(実際には100個以上のファイルがあります):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
4864.zip

いろいろ聞きたいことがあるんですが、まずは初歩的な質問から。
262行目などの

cout << QGraphicsItem::children().at( index ) << endl;

はアドレスが表示されてしまうんですが
この内容を表示するにはどうすればいいんですか?
'*'をどこに付ければいいんでしょうか?
C++の初歩的な質問でしょうけど…すみません。

759 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 09:44:16 ]
>>758
コードはこれから見てみますけれども、
QGraphicsItemの子供を表示させることで期待している結果は何ですか?
オブジェクト名?


760 名前:!(ФyФ+){ 私は孔酔 } mailto:‘気まぐれ, [2007/08/22(水) 09:56:40 ]
>>754/qt.の言語は、C++では無く、「python.系」ピョぞ¿...コチラオンシンフツウデス…

761 名前:759 mailto:sage [2007/08/22(水) 12:50:28 ]
>>758

cout << QGraphicsItem::children().at( index )->toPlainText().toAscii() << endl;

とかかなぁ? PortGraphicsItem を表示させようとしているんですよね?
そっちがQGraphicsTextItem継承ならば。。。


762 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 19:50:58 ]
>>753
ttp://www.suigyodo.com/online/schsoft.htm

763 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 20:35:47 ]
>>762
こういう人が増えると良いね。

764 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 22:43:55 ]
↓で、何か情報が得られるかもしれません。
qDebug() << QGraphicsItem::children().at( index );




765 名前:758 mailto:sage [2007/08/23(木) 07:52:26 ]
>>759 == >>761
ありがとうございます。
仰る通り、PortGraphicsItemの内容を表示したかったのです。実は

cout << QGraphicsItem::children().at( index )->toPlainText().toAscii() << endl;

のtoPlainText()は「QGraphicsItemのメンバーではない」とエラーが出ましたが、
お陰でQGraphicsItem::children().at( index )にどんな内容が入っているか予測はつきましたので
もう表示しなくてもよくなりました。

追加されたポートが「一応」描画されるようになったのですが
setPosなどで位置を変更しているにもかかわらず、(0, 0)の位置に描画されます。
次回はこれについて質問させていただきます。

今は大幅に変更しまして、変数名なんかがいい加減な名前になっていて
読みづらいでしょうから書き直してからうぷしますね。

766 名前:758 mailto:sage [2007/08/23(木) 08:09:07 ]
>>764
ありがとうございます。
今は環境がないので後で試してみますね。
でも、そんな関数が用意されてたんですね。

ttp://doc.trolltech.com/qtopia4.2/qtglobal.html#qDebug

もしかしてQStringとかも読めたりするんでしょうか。

少し話が逸れますが、
QStringってUnicodeが入り混じるようになってからややこしくなったようですね。
(上の質問とは別の件で)
今日はQLineEditなんかのid->text()とかid->displayText()とか試してみました。
返り値はQStringなのでcoutで表示できると思ったのですが
"No match ..."なんとかで結局内容を表示できませんでした。
ちなみにcout「無し」で

id->displayText();

だとエラーは出ませんが、何も表示されません(出力はどこ?)。
これらが表示されればどう対処すべきか判るんですけどね。

…長々と書いてすみません。

767 名前:759 mailto:sage [2007/08/23(木) 09:02:11 ]
>>766
cout に出すには、std::string のc_str() と同様に一度
toAscii()とかしないとダメだと思いますー。

Qtには、良質のサンプルとチュートリアルが付属しているので、
一度眺めてみるとよいかも、ですよ。
デモとそのアプリのコードの説明を表示できるやつは、使いたい
オブジェクトをどうやればよいか、またどうなるのかを実際に示して
くれるので、自分は重宝しています。


768 名前:759 mailto:sage [2007/08/23(木) 09:21:13 ]
「教え合う」スレ、ということなので、自分も質問させてくださいw。

Windows版を利用しているのですが、プラグインのロードが環境により
できない、って現象が発生した方、いらっしゃいませんか?
具体的には、開発した環境では動くのに、ほかの環境へ持って行ったら
動かない、ってことが起きます。
ただexeと同じディレクトリにdllをおいておくだけじゃあダメなのでしょうか?
QtCore とか QtGui とかは同じディレクトリに置いておくと使えるのですが、
プラグインは読まれないような現象が起きます。
(具体的にはテキストコーデック、昔png形式の画像は読み込まれて
表示できるのに、jpeg形式の画像はダメだった、という件があったの
ですが、思い返せばこれが原因かも...。)
何か設定があるんだろうとは感じているんですけど、、、。

もし同じような現象を解決された方がいらっしゃったら、チェックする場所など、アドバイスをください。
よろしくお願いします。


769 名前:デフォルトの名無しさん mailto:age [2007/08/23(木) 18:11:01 ]
さて、そろそろQt5の話でもしようか

770 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 21:21:43 ]
何年先の話だよw


771 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 22:23:48 ]
Qt5ではAPIが大幅に変わります。Qt4とは全く互換性がありませんので
注意してください。今までの知識やコードはぜんぶ捨てることになります。

なお、Qt6ではまたさらに大幅な改変をする予定ですので楽しみにして
おいてください。


772 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 22:49:22 ]
QCoreApplication::libraryPaths()によれば、
  the default installation directory for plugins is
INSTALL/plugins, where INSTALL is the directory where Qt was
installed). The directory of the application executable (NOT the
working directory) is always added, as well as the colon separated
entries of the QT_PLUGIN_PATH environment variable.
だから、カレントでもOKのはずだけどな〜。

あとはレジストリにプラグイン情報がキャッシュされていた気もする

773 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 09:46:43 ]
>771
ただの嫌がらせですね
もう、qt4以上をだす必要がない気がする、、、

774 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 11:01:37 ]
もう永遠にqt3でいい。



775 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 12:51:32 ]
>>771
去年末にうちへ宣伝に来たTrolltechの人は、
「もうああいう大幅に変えることはしないから許してね。」
とか言っていたけどなー。


776 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 13:08:33 ]
宣伝でわざわざマイナスになるような事をいうわけがない・・・
念書でも取って約束させたのか?

777 名前:758 mailto:sage [2007/08/25(土) 08:38:13 ]
>>768
的外れだったらすみませんが

>プラグインのロードが環境により
できない、って現象が発生した方、いらっしゃいませんか?

(・∀・)ノシ

Linux版ですけど、研究室から家に持ち帰るときに
外付けハードディスクやメモリースティックに落とすんですが
その時にいつも.soファイル(=Windows版の.dllファイルに相当)がコピーできないですね。
理由は「パーミッションがない」らしいですが、ちゃんとchmodしてもダメです。
Windowsのサーバーから落とすと警告もなく無事コピーは出来るんですが
やっぱり.soファイルのデータサイズが減ってますね。動きません。

対処法は簡単です。
tar(またはzip)で圧縮してから落とすと問題ないと思います。
自分はプロジェクト始めたときにもらったtarballの.soファイルをコピーして使ってます。

重ね重ね、的外れだったらすみません。w

778 名前:758 mailto:sage [2007/08/25(土) 08:46:34 ]
>>764
今頃になって
キタ━━━━(゚∀゚)━━━━!!!!

qDebug()でQGraphicsItem::children().at( index )が持ってる情報を吐きましたよ!
アドレスやポートの次元、ポートの状態フラグなどが表示されました。
qDebug()はこれからも役に立ちそうです。
ありがとうございました。

779 名前:764 mailto:sage [2007/08/25(土) 10:55:18 ]
>>778
ほかにも、QMouseEventとかいろいろ
qDebugに食わせると、情報を出してくれますよ。


780 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 20:04:31 ]
すみません、質問させてください。

MacOS XにはHID ManagerというAPIがあり、
これを利用することでUSB接続のゲームコントローラーからの入力を処理出来るのですが、
Qtにはこのようなことをする為のAPIは無いのでしょうか?

781 名前:758 [2007/08/28(火) 00:33:07 ]
>>779
はい、今もいろいろと試しています。
模索しているところです。

782 名前:758 [2007/08/28(火) 01:32:07 ]
>>765で「一応描画できるようになった」と書きましたが、まったくの気のせいでした。
paint()の中で四角を描けば描画されますが、
当然それはポートとは何の関係もなくハンドルを持っていませんよね。

コンストラクタの中のポートは描画されるのに
なぜ新たに追加されたポートは描画されないのでしょう?
自分だけの力ではもう限界です。
そこで、どうしても皆さんの力がお借りしたいのです。
コンパイルは出来ませんが、今回の修正で必要とされるだろうフォルダごとをうぷしました。

ろだ
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=4863
4870.zip お借りします Qt

いじるのは

network/gui/NodeGraphicsItem::updateNode() <=これが中心になります
network/gui/GraphScene::changeNode( NodeGraphicsItem *currentNodeGraphicsItem )
network/Graph::addNode( Node *newNode )
network/Node::addInPort( Port *newInPort )
network/nodes/Passage/PassageNode::callAddExtraInPort()

あたりだと思います。

783 名前:758 [2007/08/28(火) 01:33:12 ]
最近気付いたことを書いておきます。

新たなポートの作成時に
NodeGraphicsItem::updateNode()の最後で
GraphScene::changeNode( NodeGraphicsItem *currentNodeGraphicsItem )を呼んでいて、
そのchangeNode()の中で
Graph::addNode( Node *newNode )を呼んでいませんでした。
Graph::addNode( Node *newNode )の中には

newNode->setParent( this )

があり、これのお蔭でコンストラクタで作成されたポートはchildren()とみなされるようです。
新たなポートはchildren()とみなされてないので描画されないのだと思います。
しかし、
_graph->addNode( currentNodeGraphicsItem->node() );
addItem( currentNodeGraphicsItem );
とやっても
QGraphicsScene::addItem: item has already been added to this scene
と言われてしまい、更新されてないようです。
ここまでが今の自分に出来る限界です。

質問があればいくらでも捕捉いたしますので
何卒、ヒントだけでも教えてくだされば光栄に思います。
どうかよろしくお願い致します。

784 名前:758 [2007/08/28(火) 02:16:32 ]
>>780
自分はその辺に関してはまったくの素人ですが
"trolltech game controller qt"でググったら

ttp://qjoypad.sourceforge.net/

というのが見つかりました。
しっかり読んでませんが、
QJoyPadというのが多分あなたの探しているものだと思います。
違ってたらすみません。



785 名前:758 mailto:sage [2007/08/28(火) 10:15:45 ]
QGraphicsSceneに"addItem()"ではなくて
"changeItem()というのがあればいいんですが…ないですね:

ttp://doc.trolltech.com/4.2/qgraphicsscene.html

となると、一度removeItem()で消してから
addItem()し直すという流れでしょうか?
今のところ、うまく消せないんですよね…。

786 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 13:02:12 ]
>>782
QGraphicsItem::ItemChildAddedChange という定義があるようなので、
何かできそうな感じですね。(itemChange() で通知?)


787 名前:758 [2007/09/01(土) 08:16:29 ]
>>786
ありがとうございます。
すみません、返事が遅くなりました。

例の通りに
if (change == ItemChildAddedChange)という感じでitemChange()使ってみました。
ちゃんとchildrenが追加されたときに呼び出されますね。
しかし、呼び出されたときに何の処理をすればいいのかが分からないんですよね…。

実はポートを追加する方法は二つ用意してありまして
一つはメニューから追加、もう一つはOutputポートをクリックして追加、です。
メニューからの追加ではitemChange()は呼び出されたんですが
Outputポートをクリックして追加ではitemChange()は呼び出されなかったです。
残念ながらどちらも描画されません。

…ということで「前任者のコードを修正する」という件はひとまず保留にして
trolltechのExampleを基にして新たに作ることにしました。
↓     ↓     ↓

788 名前:758 [2007/09/01(土) 08:17:04 ]
ベースはtrolltechのExamplesにある"Elastic Nodes"です:

ttp://doc.trolltech.com/4.2/graphicsview-elasticnodes.html

仮のゴールは

1. 任意の数のノードを任意の位置に追加する
2. 任意のノード同士をエッジでつなげる

だけです。
「任意の数のノードを追加する」までは出来ました。

ただ「任意の位置に追加する」は半分だけ達成です。
というのも、「フルスクリーン + ズームなし」だと
任意の位置に追加することは出来たのですが
それ以外の条件ではクリックした場所とは違う場所に
ノードが追加されてしまうからです。
どなたか同じような経験をされた方はいませんか?


789 名前:758 mailto:sage [2007/09/01(土) 08:19:47 ]
あと、出来れば窓を大きくしたいんですが
どこで調整すればよいのでしょうか?
scene->setSceneRect(-200, -200, 400, 400);

scene->setSceneRect(-400, -400, 800, 800);
にすれば窓は大きくはなりますがグラフは小さいままです。
それをズームすると今度ははみ出してしまいます…。

こちらがソースコードですが、手を加えたのは

graphwidget.cpp
graphwidget.h

のみです。サイズが小さいので他のコードもすべてうぷしておきますね:

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
4890.zip お借りします Qt

…今回は基となるコードも見れますし、
コンパイルも出来るのでそんなに面倒ではないと思います。
初心者レベルの質問だと思いますが、どうかよろしくお願い致します。



790 名前:デフォルトの名無しさん [2007/09/14(金) 10:04:13 ]
Qt4の本はどれがよいですか?
Foundations of Qt Development
The Art of Building Qt Applications [ILLUSTRATED]
An Introduction to Design Patterns in C++ with Qt 4
C++ GUI Programming with Qt 4


791 名前:デフォルトの名無しさん [2007/09/14(金) 11:53:17 ]
スレ違いかもしれませんが・・・
QWTを使ってる方に質問です.
QWTの5.0.1のインストールで「comdlg32.dllがインポートされていない」とエラーが発生します.
Qt designerにqwtの要素は追加されていないし,コンパイルも失敗します.
.proファイルも上手く生成できてないようです.
インストールの方法が間違っているのでしょうか.
qwtに添付された INSTALL という名のファイルにある "B) Win32/MSVC Qt3/Qt4"の
項に従ってインストールしたのですが・・・

Qt GUI Programmingについてきたqt3.2.1[non commercial]を使ってます.
環境はXP SP2です.コンパイラはVS.NET2003です.
qwtってマイナーなのか情報が少ない・・・
どうかよろしくお願いいたします.

792 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 18:51:11 ]
>>791
qwt5は、Qt4対応版だと思っていたのですが、Qt3でも大丈夫なのかな?
(Qt4の環境では、何も考えずに入れられた気がします。)

あんまり役にたたない情報ですみません。



793 名前:デフォルトの名無しさん [2007/09/15(土) 12:52:14 ]
>> 790

C++ GUI Programming with Qt 4 を。

794 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 15:50:12 ]
>>790 C++ GUI Programming with Qt 4お勧め

てかQt4の本他にもでてるのか
今度買ってみる



795 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 16:14:16 ]
本家のドキュメントじゃ不満なの?

796 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 17:02:22 ]
>>795 本家のドキュメントにはとても満足してる(解説も結構詳しく書いてあるし)
けど本には本の良さがある






[ 続きを読む ] / [ 携帯版 ]

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

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