【RAD統合環境】 Qt 総合スレ 9 【Win/Mac/Linux】at TECH
【RAD統合環境】 Qt 総合スレ 9 【Win/Mac/Linux】 - 暇つぶし2ch26:デフォルトの名無しさん
10/12/17 17:23:17
QDomDocument~QDomElementがめっさ使いにくい。

XMLを読み書きするの、何か他のライブラリを使ったほうがいいのかな。

27:デフォルトの名無しさん
10/12/17 17:31:53
俺もそう思ってTinyXMLとか調べてみたけど、どのライブラリでも大体似たような
感じだよ。


28:26
10/12/17 17:53:51
自己レス。

こういう関数を用意しておくと、foreachでループを回せるようになる。
(↑Qt特有? C++0x?)

QList<QDomElement> getElementsByTagName(QDomElement elem, QString tagName) {
  QList<QDomElement> result;
  QDomNodeList childLst = elem.elementsByTagName(tagName);
  for (int i = 0; i < childLst.length(); i++) {
    QDomNode n = childLst.at(i);
    if(n.isNull())
      continue;
    QDomElement child = n.toElement();
    result.append(child);
  }
  return result;
}

ループ:
  QDomNodeList layersetLst = root.elementsByTagName("LayerSet");
  QDomNode n = layersetLst.at(0);
  if(n.isNull())
    return 1;
  QDomElement layerset = n.toElement();
  foreach(QDomElement layer, getElementsByTagName(layerset, "Layer")) {
    printf("  Layer: %s\n", layer.attribute("name").toStdString().c_str());
    foreach(QDomElement item, getElementsByTagName(layer, "Item")) {
      printf("   Item: %s\n", item.attribute("name").toStdString().c_str());
    }
  }


29:デフォルトの名無しさん
10/12/17 18:14:55
demo/embeddeddialogsのソースを見てるんですが、
下記URLのCustomProxy::itemChangeが何をしているのかがよくわからない。

想像するに、
Dialog内にあるcombobox押下時の、
popup部分のレンダリングを高速化しているという認識で良いのかしら?
コメントにしても結果が全く変わらないんだよね。

URLリンク(doc.qt.nokia.com)

30:デフォルトの名無しさん
10/12/17 22:08:26
>>25
基本は QwtPlotCurve に setData でデータ詰めて、QwtPlot Widget の
showCurve で表示。
QwtPlotCurve をカスタマイズすれば、いろいろなグラフが作れるので、
重宝してる。

31:デフォルトの名無しさん
10/12/18 02:32:53
昨日からQtを始めたて、サンプルを手本に作ってるんだが・・・。
QtGuid4.dllは正しいwindowsイメージではありません。
と言われる。
C:Qt/qt/binからコピーしてきたdllを、debug内に突っ込んだだけなんだが。
Cored4は読み込んでくれる、どう回避したらいい?

32:デフォルトの名無しさん
10/12/18 02:34:48
質問いいでしょうか?
コマンドプロンプトで使うつもりで作ったプロジェクトをstaticライブラリとして読み込み、
QtのDockWidgetに出力させたいのですが、coutやcerrの出力先をDockWidgetに向けるには
どうしたら良いでしょうか?

一応自分でもググったりしたのですが、わからず…。
どうかご助力お願い致します。

33:デフォルトの名無しさん
10/12/18 02:45:05
>>31
debug用のdllはまた別にある

34:デフォルトの名無しさん
10/12/18 03:03:53
>>33
さんくす
調べてみる

35:デフォルトの名無しさん
10/12/18 03:14:09
ファイル名にdが入ってるやつと入っていないやつの2種類があるはず

36:デフォルトの名無しさん
10/12/18 03:44:44
31だが
QtGui4のデバッグ用がQtGuid4ってことでいいんだよな?
で、そのQtGuid4が正しくないと言われるんだが
これはQtを再インストールするしかないか?

37:デフォルトの名無しさん
10/12/18 05:12:14
コピーじゃなくてPATHを通せ

38:デフォルトの名無しさん
10/12/18 09:48:24
>>32
Qtは標準入出力をハンドリングしてなさそうだから、OS固有の仕組み使うしか
ないんじゃないかなー。Windowsだったら ::GetStdHandle() 使うとか。


39:デフォルトの名無しさん
10/12/18 11:56:30
>>36
debug用のruntimeは入れてあるよね?

40:デフォルトの名無しさん
10/12/18 12:02:20
>>32
自前のstreambufを実装する

URLリンク(lists.trolltech.com)

41:デフォルトの名無しさん
10/12/18 12:36:20
>>38,40
ありがとうございます!

解決、あるいはわからないことがあればまた書き込むと思うので
厚かましいようではありますが、その時はどうかよろしくお願いします。

42:デフォルトの名無しさん
10/12/18 12:58:00
>>31
ビルドされたexeを
Dependency Walkerに読ませて、
何のDLLを呼び出しているか調べてご覧。

Qt+vs2008だと何のDLLを利用するのかがわりと暗黙的に
行われるので、配布する前にチェックが必要。
幸い、静的にリンク解決してるのでDependency Walkerで調べられる。

43:デフォルトの名無しさん
10/12/18 13:05:39
>>42
それだと、ファイル名はわかるけど、どのバージョンの(≒どこにある)DLLが必要なのかが
わからないのよ。

Qtは複数バージョンを入れることもままあるので、典型的なDLL地獄だねw

44:デフォルトの名無しさん
10/12/18 18:28:08
DLL地獄なんて昔の話で、今の Windows には無いなんて聞いてたけどまだあるのか…

45:デフォルトの名無しさん
10/12/18 18:53:31
>>43
exeがdllを探す順序がわかってないだけなんじゃないの?

46:デフォルトの名無しさん
10/12/18 19:46:11
>>43
Dependency WalkerはカレントディレクトリにないDLLを
ロードする時にはそのPATHも教えてくれるよ。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch