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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
Qt(キュート)は C++ ベースのフレームワーク&RAD開発環境です。

ライブラリの機能は、フォーム、ボタンなどの各種ウィジェットからネットワーク、マルチスレッド、
グラフィックス(OpenGL)や各種コンテナ、XMLパーサー、組み込み JavaScript など、非常に多岐に渡ります。
公式の統合開発環境「Qt Creator IDE」を使えば、クロスプラットフォーム対応のRAD開発が可能です。
また、EclipseやVisual Studio上で開発したい人のためのアドインも用意されています。

■主な対応プラットフォーム(デスクトップ用途の場合)

Windows XP, Vista, 7
Mac OS X 10.4, 10.5, 10.6
Linux

■ライセンス

・オープンソース版(Open-source version)
 LGPL 2.1 または GPL 3.0 のうちどちらかを利用者が選べます。
 LGPL を選んだ場合はソースコード非公開のままでの商用利用が可能です(いくつか制限あり)。
 ※正確には通常「LGPL+商用利用向きの例外条項」を選ぶことにな7ります(Qtインストール先の「LGPL_EXCEPTION.txt」を参照)。
  ちなみにGPLでも商用利用が不可能というわけではありません、念のため。

・商用版(Commercial version)
 こっちはNokia社か日本の代理店(SRA社)とライセンス契約(年間30万くらい?)を結んで使います

■Qt を使って作られたソフト例

KDE、Adobe Photoshop Elements、Google Earth、Skype、DAZ Studio など

■前スレ

【RAD統合環境】 Qt 総合スレ 6 【Win/Mac/Linux】
http://pc12.2ch.net/test/read.cgi/tech/1264745386/
2デフォルトの名無しさん:2010/04/04(日) 00:44:23
■リンク

・Qt Development Frameworks (Nokia社のQt公式サイト)
http://qt.nokia.com/title-jp

・SRA社(日本の代理店)の日本語で読める Qt 関連ドキュメント
http://www.sra.co.jp/qt/relation/index.html

・Qt Users Forum Japan
http://qtusersforum.s2.zmx.jp/forum/index.php


■ライセンス関連まとめ

各ライセンスでの自作アプリのソース公開/頒布

Qtのライセンス   アプリのライセンス     Qtの頒布/(変更部分のソース公開)
GPL           GPL(ソース公開必須)      必須
LGPL         任意(ソース公開不要)      必須
商用          任意(ソース公開不要)      不要

*: LGPLは動的リンク時

実際には他にも条件(リバースエンジニアリング関係とか)あるので、
きちんとライセンスの条文を読むこと。
3デフォルトの名無しさん:2010/04/04(日) 00:45:04
Windows ユーザー向け Tips

・プロジェクトのパスに日本語を入れちゃダメ
・日本語のソースコードは、MinGW版ならUTF-8、VC版ならSystem(Shift-JIS)
 プロジェクト作成後に「プロジェクト」タブの「エディタの設定」→「デフォルトの文字コード」を設定すると幸せになれる
・デバッグ出力などが文字化けする場合、プログラムの最初で文字コード変換設定をする
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); //ソースの文字コードを指定("utf-8"や"Shift-JIS")
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //同上
qDebug() << "うまく表示できた?";
・MinGW版の配布時は mingwm10.dll も一緒に入れておく(public domain で配布上の制限はない)

■インストール方法:MinGW版Qt & Qt Creator

(1)「Qt SDK for Windows」をインストールすればOK
 http://qt.nokia.com/downloads/sdk-windows-cpp

■インストール方法:VisualC++版Qt & Qt Creator

MinGW版との違い:Phononが利用可能。VC版の方がいろいろ速いらしい

(1)「Microsoft Visual C++ 2008」(Express Edition 以上) をインストール
(2)「Microsoft Debugging Tools」をインストール(※Qt Creator上でデバッグする時に必要)
 http://www.microsoft.com/japan/whdc/devtools/debugging/installx86.mspx
(3)「Qt libraries for WIndows(VS 2008)」をインストール
 http://qt.nokia.com/downloads/windows-cpp-vs2008
(4)「Qt Creator Binary for Windows」をインストール
 http://qt.nokia.com/downloads/qt-creator-binary-for-windows
(5)環境変数PATHを設定(もともと入ってたパス;Qtインストールパス\bin)
(6)Qt Creator を起動して、「ツール」→「オプション」メニューで初期設定
 「Qt4」→「Qt Versions」を開いて自動検出された「PATH に含まれる Qt」をクリックし「MSVC バージョン」を 9.0 にする
 「デバッグヘルパ」が×印になっていれば「リビルド」ボタンをクリックしてリビルド(※)する
 (※)もし失敗したら「プロジェクト」→「ビルドして実行」→「nmake の代わりに jom を使用する」のチェックを外してみる
4デフォルトの名無しさん:2010/04/04(日) 00:46:05
■Qt Creator 日本語化プロジェクト

Qt Creator を日本語化するプロジェクトです(非公式)
http://qt-creator-jp.sourceforge.jp/


■Python バインディング

PyQt4(GPL。定番)
http://www.riverbankcomputing.co.uk/software/pyqt/intro

PySide(LGPL。Win版はまだ無いけど今後に期待)
http://www.pyside.org/


それでは、はりきってどうぞ!
5デフォルトの名無しさん:2010/04/04(日) 02:44:42
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); //環境にあわせる
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //ソースの文字コードを指定("utf-8"や"Shift-JIS")
の方が無難な気がする
6デフォルトの名無しさん:2010/04/04(日) 04:31:27
スレ立て乙です
7デフォルトの名無しさん:2010/04/04(日) 04:46:17
前スレの>>995

スレをまたいで話題を続けたくはなかったんだが、あまりに酷い誹謗中傷なので書かせてもらう。

> >>989みたいな
> 「Delphi/Builderではできたからxxでもこうできなくてはならない」
> なんて価値観の押しつけってバカ丸出しだと思う。しかもエンバカ難民。
> 国を捨てて流れ着いた難民が、「元の国ではこんなサービスがあったんだから
> この国でも我々は同じサービスを受ける権利がある」なんて主張したらどう思う?
> 帰れよ元の国に、って思うんじゃない?

全く的外れ。難民と化したDelphi使いがそれに近い開発環境を求めた結果、
Qt+Qt Creatoにたどり着いた。機能的にはこれでほぼ文句ないと思っている。
ただ、前スレの>>905はコンパイル時間が気になると言った。
それに対してはプリコンパイルドヘッダーとjomという軽減策がある。

それなのにDelphiを使ったことのない人が、事情もわからずに「コンパイル時間」
の一言を聞いてPyQtを勧めだした。これこそ価値観の押し付けじゃないのか?
8デフォルトの名無しさん:2010/04/04(日) 07:14:56
>>5
QTextCodec::codecForLocale()って必ず"System"ロケールに合わせるみたいだから
MinGW版はソースがutf-8なのにSJISで扱われて困るんじゃないかなー
試しに↓のコードを実行したら、俺の環境だとVCではOKでMinGWだと文字化けしたけど

#include <QtGui>
int main(int argc, char* argv[])
{
  QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); //環境にあわせる
  QString str = "日本語";
  qDebug() << str;
  return 0;
}
9デフォルトの名無しさん:2010/04/04(日) 11:04:00
>>8
そうだね。MinGWだと例のコンパイルオプション付けないと化けるけど、MinGWによっては
そのコンパイルオプション効かないのもあるし、Qt標準のMinGWはまさにそのコンパイル
オプションが効かないヤツ(本家)だから、話がややこしくなる。

QTextCodec::setCodecForTr() の方は、tr()で囲った文字列に有効なんだけど、そのことも
書いてないし。

この辺りは事情が複雑だから、QTextCodecの話は敢えてテンプレートに書かなくても
いいんじゃないのかな。書くのなら、

■WindowsでVCの場合(日本語を含むソースコードはShift_JISで書く)
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Shift_JIS"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("Shift_JIS"));

■WindowsでMinGWの場合(日本語を含むソースコードはUTF-8で書く)
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));

とすべきだと思う。
10デフォルトの名無しさん:2010/04/04(日) 11:41:30
>>9
>■WindowsでVCの場合(日本語を含むソースコードはShift_JISで書く)
>QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Shift_JIS"));
>QTextCodec::setCodecForTr(QTextCodec::codecForName("Shift_JIS"));

日本語環境のVC2005以降なら、UTF-8はSJISに変換されるので、UTF-8で書いてもこれで通ってしまう。
11デフォルトの名無しさん:2010/04/04(日) 12:12:32
>>7
それに対して、IDEの完成度でPyQtを非難していたヤツはまだいいけど、
なぜかPythonを「所詮はスクリプト言語」とか言い出すアホが居ただけの話。
12デフォルトの名無しさん:2010/04/04(日) 12:38:47
>>7
IDEを非難してた方もひどいな
ポトペタ必要→ポトペタあるよ→統合されたIDEが必要→統合されたIDEあるよ→シームレスさが重要
本当に >>905 がそこまで要求していたのかどうかなんて判らないのに、
「Delphi使いならこう思うはず」っていう主張を延々と。
13デフォルトの名無しさん:2010/04/04(日) 12:52:49
>>10
VC2005でBOMなしUTF-8も正しく変換される?
聞いた話だから定かじゃないんだけど、VC2005や2008にUTF-8通すと、時々変な挙動を
するって...
14デフォルトの名無しさん:2010/04/04(日) 12:56:41
>>12
> 「Delphi使いならこう思うはず」っていう主張を延々と。

Delphiの一番の売りはそこだからね。同じDelphi使いとしては正しいと思う。
使ってない人には理解しがたいかもね。
15デフォルトの名無しさん:2010/04/04(日) 14:24:19
>>13
VCがBOMなしUTF-8をSJISに変換して.exeに入れてしまいます。
16デフォルトの名無しさん:2010/04/04(日) 16:54:55
>>8
それは
QString str = QObject::tr("日本語");
で解決するだろ

俺が言いたいのは
#include <QtGui>
int main(int argc, char* argv[])
{
  QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); //環境にあわせる
  QString str = argv[1]; // 添え字チェックはとりあえず無視
  qDebug() << str;
  return 0;
}
の場合に
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));
じゃまずいんじゃないの?っていう話
17デフォルトの名無しさん:2010/04/04(日) 16:59:46
>>14
つまり Delphi 厨の自演だったってことですか
18デフォルトの名無しさん:2010/04/04(日) 17:53:23
>>17
いや、俺はエンバカスレに書き込みがあったので前スレも含めて覗きに来たんだけど。
199:2010/04/04(日) 18:52:11
>>16
なるほど、そういうことか。理解した。
しかしテンプレに書くにはやはり話がややこしいね。
20デフォルトの名無しさん:2010/04/04(日) 20:23:10
Phononって、Windows, Linux, Macで同じような仕様・挙動で動くって事でいいんですか?
Windowsのややこしいマルチメディア周りのAPIに触れずに。
21デフォルトの名無しさん:2010/04/04(日) 21:23:58
前スレでPyQt勧めた張本人(は規制されてるため代行レス)だが、どうしてこうなった。
>>7
>それなのにDelphiを使ったことのない人が、事情もわからずに「コンパイル時間」
>の一言を聞いてPyQtを勧めだした。これこそ価値観の押し付けじゃないのか?

全くずれている。俺はコンパイル時間という観点での解決法を示しただけだ。それで不満なら、求めてたのと違う、の一言で済む話だ。
なんでそれだけで価値観の押し付けになるのか意味が分からない。
Delphiの事情は知らんが、そもそも事情を知っている必要を感じてなかった。
別環境に流れてくる人が、前と同じものを求めているなんて思わなかったから。
(同じもの求めてるなら、同じ場所に留まっていればいいのだから。昔のVBが好きな人はそうしてるよ)

で、その後、なぜか変に噛みついてきた奴がいて、それに変な応じ方をしたやつがいたせいで明後日の方向にずれた
ttp://anond.hatelabo.jp/20100403114254も見てくれ
22デフォルトの名無しさん:2010/04/04(日) 22:13:01
>>21
なぁんだ。そういうわけだったのか。

> 全くずれている。俺はコンパイル時間という観点での解決法を示しただけだ。
> それで不満なら、求めてたのと違う、の一言で済む話だ。
> なんでそれだけで価値観の押し付けになるのか意味が分からない。

これは前スレの>995の余りに酷いずれた認識と表現に対して売り言葉に買い言葉で
書いた。あなたはもちろん前スレの>>995じゃないよね。
それならあなたに対しては失礼なことをした。すまん。

まぁ、エンバカスレを見てもらえばわかると思うけど、Delphi/C++ Bulderは難民化
しようとしている。新しいWindowsで仕事をするには、バージョンアップする必要が
あるんだが、新しいバージョンは品質が悪くて不可解な現象が沢山起きたり、
ヘルプがメチャクチャだったりで、みんな閉口している。前バージョンで発覚したバグも
一向に直さない。

そんなわけでQt、特にQt Creatorへの関心度が上がってる。Qt CreatorはDelphi/Builderの
RAD環境に近いからだ。

だからDelphi/Builderからの移行の相談があったら、優しく対応してあげて欲しい。
23デフォルトの名無しさん:2010/04/04(日) 22:57:16
>だからDelphi/Builderからの移行の相談があったら、優しく対応してあげて欲しい。
そこまでの寛容さを求めるのなら他の言語を「小物に向いている」などという排他的阿呆はきっちり
批判するべきだね。
24デフォルトの名無しさん:2010/04/04(日) 23:34:34
ID出ないんしどれが誰の意見かさっぱりわかんないっつの
どうしても脊髄反射したいならコテつけてくれNGもしやすいし
25デフォルトの名無しさん:2010/04/04(日) 23:43:22
俺はとにかくひたすらあぼんしまくっているから全然不快じゃないぜ。
26デフォルトの名無しさん:2010/04/05(月) 00:08:19
>>20
Phononはバックエンド(OSのAPIとか)との橋渡し的なライブラリらしい
だから同じソースでOS問わず動くけど、挙動については
例えばWindowsならPCにCodecが入ってないと再生できないとかあるはず
27デフォルトの名無しさん:2010/04/05(月) 02:12:35
>>16
QApplication::arguments()を使えば引数は文字化けしないみたいよ

#include <QtGui>
int main(int argc, char *argv[])
{
  QApplication app(argc, argv);
  QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); //ソースの文字コードを指定("utf-8"や"Shift-JIS")
  QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //同上
  QString str = argv[1]; // 添え字チェックはとりあえず無視
  qDebug() << str; //NG
  str = app.arguments()[1];
  qDebug() << str; //OK
  str = QString::fromLocal8Bit(argv[1]);
  qDebug() << str; //OK
  return 0;
}

その他のケースでシステムロケール文字コードとのやり取りが発生する場合は
明示的にQString::fromLocal8Bit()を使うのがいいんじゃないか?
28デフォルトの名無しさん:2010/04/05(月) 03:11:46
>26
あ、そうなんですか。
vlcのサイト見てたらPhononがどうこうって書いてあったんで、
Phonon内部にvlc由来かffmpeg由来の?codecが入ってるのかなと
想像してたんですが。
29デフォルトの名無しさん:2010/04/05(月) 05:02:12
>>28
WikipediaのPhononのページ
* 2008 年4月23日現在、Unix系のシステムでサポートされているバックエンドはxine、GStreamer、VLC、MPlayerである[4]。
* Microsoft WindowsでサポートされているバックエンドはDirectX、VLC、MPlayerである。
* Mac OS XでサポートされているバックエンドはQuicktimeである。

QtのPhononモジュールの場合は、WindowsだとDirectShowを、LinuxだとGStreamerを必ずバックエンドに使う
VLCやMPlayerが使えてもライセンスがGPLだから需要少ないと思ったのかも
30デフォルトの名無しさん:2010/04/05(月) 09:23:15
Windowsで,MainWindowのタイトルバー右上の最小化・最大化・閉じるボタンを消したくて,
MainWindowのコンストラクタの中に,

Qt::WindowFlags curFlags = windowFlags();
Qt::WindowFlags changeFlags = ~(Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint);
curFlags &= changeFlags;
setWindowFlags(curFlags);

って書いてみたら,最大化ボタンと最小化ボタンは消えるけど閉じる(×)ボタンが消えてくれない。
上のchangeFlagsの右辺の | している中に,Qt::WindowSystemMenuHint も加えてみたけどやっぱり
消えない。

どうすれば消せるのでしょうか?
31デフォルトの名無しさん:2010/04/05(月) 09:49:04
>>27
>QApplication::arguments()を使えば引数は文字化けしないみたいよ

うん
それは知ってたけど
argv[1] は C 文字列が「外から」渡される例として書いた
fgets(stdin, ...) でも同じ

>その他のケースでシステムロケール文字コードとのやり取りが発生する場合は
>明示的にQString::fromLocal8Bit()を使うのがいいんじゃないか?

そうだね
32デフォルトの名無しさん:2010/04/05(月) 10:54:29
>>30
Qt::CustomizeWindowHint じゃね?サンプルあるよ
examples\widgets\windowflags
3330:2010/04/05(月) 11:12:58
>>32
その通りだった。うまく行ったよ。サンクス。
34デフォルトの名無しさん:2010/04/06(火) 19:22:55
35デフォルトの名無しさん:2010/04/07(水) 00:56:46
>>1
> ※正確には通常「LGPL+商用利用向きの例外条項」を選ぶことにな7ります
>(Qtインストール先の「LGPL_EXCEPTION.txt」を参照)。

LGPL_EXCEPTION.txt は「商用利用向きの例外条項」ではないんじゃないかな。
むしろ「テンプレートやインライン関数経由でライセンス汚染されたくない人の為の
例外条項」であって、この例外条項を適用しないと商用利用出来ない訳ではない。

http://qt.gitorious.org/qt/qt/blobs/4.6/LGPL_EXCEPTION.txt

> ちなみにGPLでも商用利用が不可能というわけではありません、念のため。

GPL も LGPL も Commercial Developer ライセンスも全て商用利用可能なのに、
不自然に「商用利用」という言葉に拘るから、回りくどい説明になるんだと思われ。

>>1 は何で「商用利用」という単語に拘りたいのかな?
「商用利用」という単語は意味も範囲もかなり曖昧だから危険な言葉だと思うけど。
36デフォルトの名無しさん:2010/04/07(水) 04:42:07
>>35
LGPLのリバースエンジニアリング禁止の禁止条項は、重要な落とし穴。
37デフォルトの名無しさん:2010/04/07(水) 05:45:31
なんで「商用利用」を削除したがるん?
単にテンプレをすっきりさせたいのか
LGPLのQtが商用で普及すると困る立場の人なのか分からんよ
まあ、誰かがまとめWiki作ってくれれば消して構わんと思うけど
38デフォルトの名無しさん:2010/04/07(水) 06:57:41
しかしリバースエンジニアリングの禁止なんて有効性があるのかな。
とりあえず書いてあることが多いけど、出るとこ出りゃ意味なしって感じもする。
39デフォルトの名無しさん:2010/04/07(水) 09:12:52
>>36
だから、むしろそれをきちんと書いた方が良いと思うんだよね

>>37
きちんと正しい情報を書いてあげた方が親切でしょ
40デフォルトの名無しさん:2010/04/07(水) 09:29:21
>>38
日本以外のほとんどの国では意味無いね
明文化されてない日本でも無効であるという説が有力
41デフォルトの名無しさん:2010/04/07(水) 09:40:10
>>40
企業の法務からしたら、EULA にリバースエンジニアリング禁止条項を
入れ辛くなるだけでも嫌な場合もあるんじゃないの。
裁判をやる以前に企業イメージが損なわれるだけでも損失となり得る。
42デフォルトの名無しさん:2010/04/07(水) 09:54:34
>>37
>LGPLのQtが商用で普及すると困る立場の人なのか分からんよ

どのライセンスでも商用利用が可能だと書いたのに、
何でそんな邪推をされるの分からんよ…

そんなに商用利用をアピールしたければ、ライセンスの
話と切り分けて、こんな感じにしたら良いんじゃないの。

『Qt は商用利用が可能です。
ただし、バイナリ保有者にもソースコードを公開したくない場合は LGPL
または Commercial Developer License を、リバースエンジニアリングを
禁止したい、Qt 自身を非公開で改変したい等、LGPL の要求から外れる
場合は Commercial Developer License を選択すると良いでしょう。
ライセンスを選択する前に各ライセンスの条項を必ず確認して下さい。』
43デフォルトの名無しさん:2010/04/07(水) 10:00:07
【License】ライセンス総合【利用許諾】
http://pc12.2ch.net/test/read.cgi/tech/1266247461/
44デフォルトの名無しさん:2010/04/07(水) 10:01:01
相変わらずループしてる
45デフォルトの名無しさん:2010/04/07(水) 10:39:28
どこが?
46デフォルトの名無しさん:2010/04/07(水) 10:41:53
人類
47デフォルトの名無しさん:2010/04/07(水) 11:27:34
>>44
たしかに新スレの恒例となりつつあるw

>>42
次スレの>>1にはそれ入れてこんな感じにしてもらうってことでいいのかな?

■ライセンス
・オープンソース版(Open-source version)
 LGPL 2.1 または GPL 3.0 のうちどちらかを利用者が選べます。
・商用版(Commercial version)
 こっちはNokia社か日本の代理店(SRA社)とライセンス契約(年間30万くらい?)を結んで使います

Qt は商用利用が可能です。
ただし、バイナリ保有者にもソースコードを公開したくない場合は LGPL
または Commercial Developer License を、リバースエンジニアリングを
禁止したい、Qt 自身を非公開で改変したい等、LGPL の要求から外れる
場合は Commercial Developer License を選択すると良いでしょう。
ライセンスを選択する前に各ライセンスの条項を必ず確認して下さい。
48デフォルトの名無しさん:2010/04/07(水) 12:29:13
>>47
それだとまたGPLでも商用利用可能云々とかなりそうなので

Qt は上記のどのライセンスを選択しても商用利用が可能です。

位にしとくのがいいか?
49デフォルトの名無しさん:2010/04/07(水) 15:30:48
>>48
GPLでも商用利用は不可能じゃないよ
ソースコードを要求にしたがって渡す必要があるけど
5048:2010/04/07(水) 16:43:17
>>49
だから俺はそういうツッコミが入るから、どのライセンスでも商用利用可能と言っている。
51デフォルトの名無しさん:2010/04/07(水) 16:46:01
ちょっと言葉が足りなかったな。
「どのライセンスでも商用利用可能」と明記した方がいいと言っている。
52デフォルトの名無しさん:2010/04/07(水) 16:54:40
商業利用不可でライセンスされているものはいろいろある。
53デフォルトの名無しさん:2010/04/07(水) 16:58:20
(あれ?)けれども、Qtは、どれを選んでも、商用可ってことで。
54デフォルトの名無しさん:2010/04/07(水) 17:08:14
だからこういうことでいいんじゃね

■ライセンス
・オープンソース版(Open-source version)
 LGPL 2.1 または GPL 3.0 のうちどちらかを利用者が選べます。
・商用版(Commercial version)
 こっちはNokia社か日本の代理店(SRA社)とライセンス契約(年間30万くらい?)を結んで使います

Qt は上記のどのライセンスを選択しても商用利用が可能です。
ただし、バイナリ保有者にもソースコードを公開したくない場合は LGPL
または Commercial Developer License を、リバースエンジニアリングを
禁止したい、Qt 自身を非公開で改変したい等、LGPL の要求から外れる
場合は Commercial Developer License を選択すると良いでしょう。
ライセンスを選択する前に各ライセンスの条項を必ず確認して下さい。
55デフォルトの名無しさん:2010/04/07(水) 17:52:40
質問したら正確に問題が伝わってなかった上にスレが落ちてたorz。

void MainWindow::on_ColorPicker_clicked()
{
QString value = ui.TextColor->text();
QColor color = QColorDialog::getRgba();
if (color.isValid()) {
ui.TextColor->setText(color.name());
ui.TextColor->setPalette(QPalette(color));
ui.TextColor->setAutoFillBackground(true);
}
return;
}
これは、ColorPickerというオブジェクト名のボタンが押されたときに
カラーピッカーを表示して、TextColorというオブジェクト名のフォームに選択された色を記入するソースだけど
当然、TextColorに対してのColorPickerしか作用しないソースになってしまう。

そこで、このColorPickerとTextColorを変数として外に出したいけど、どうしたらいいのかな?
56デフォルトの名無しさん:2010/04/07(水) 18:10:49
ライセンスキー付きのアプリケーションを商用で出そうとすると、

GPL は、ソースコードを出さなければならないのでライセンスキーでガードできない。ソースコードの再配布もできる。
LGPL は、リバースエンジニアリングして、ライセンスキーを作り出したり、暗号化されているデータを復元ができる。
商用版は、前述のようなことを禁じるようにライセンスで縛れる。
57デフォルトの名無しさん:2010/04/07(水) 18:53:03
>>56
> LGPL は、リバースエンジニアリングして、ライセンスキーを作り出したり、暗号化されているデータを復元ができる。
公開鍵暗号を使えば、作者しか知らない秘密鍵がバレない限り
ライセンスキーを作り出すことが不可能なのでは?
58デフォルトの名無しさん:2010/04/07(水) 19:08:25
>>57
そういうことをしているということをリバースエンジニアリングして、そこをよけるようなバイナリパッチを作れる。
59デフォルトの名無しさん:2010/04/07(水) 19:11:55
この辺は荒れるしスレ違いだからやめとこうぜ
60デフォルトの名無しさん:2010/04/07(水) 19:29:44
>>58
できるかどうかに拘らず、調べることすらを法的に禁止しなければならないような組織には、
LGPLは向かないと言うことだ。
61デフォルトの名無しさん:2010/04/07(水) 19:38:03
自分は >>47 でも >>54 でも良いよ。
もしこの後も異論が出なければ、次スレを立てる人はこれで立てて下さい。
62デフォルトの名無しさん:2010/04/07(水) 19:52:55
一年後くらいかな
63デフォルトの名無しさん:2010/04/07(水) 20:03:40
前スレは大体2ヶ月くらいで使い終わったみたいよ
64デフォルトの名無しさん:2010/04/07(水) 20:47:04
>58
一応確認だけど、認証部分をよけるようなバイナリパッチを作るのはLGPLでも違法だよね?
65デフォルトの名無しさん:2010/04/07(水) 21:16:17
>>64
リバースエンジニアリングが許されるので、その過程の検証のために副産物として
できてしまうのは違法とは言えない。ただし、それを他に伝えたり、伝わってしま
ったり、何かに使おうとしたりするのは別判断になる。
66デフォルトの名無しさん:2010/04/07(水) 21:49:45
勝手な法解釈だなぁ
67デフォルトの名無しさん:2010/04/07(水) 21:55:52
こいつらにとっては、シリアル入力必要ないものは、ライセンス取らなくても使い放題なんだろ。
68デフォルトの名無しさん:2010/04/07(水) 21:55:56
>>65
違法とは言えない
わけねーだろ。
リバースエンジニアリングを許可するのと改変を許可するのとは全然違う。
69デフォルトの名無しさん:2010/04/07(水) 22:15:42
リバースエンジニアリングを禁止して隠蔽しとけば安心みたいな考えが一番危い。
欧米中国はそんな文言があっても、リバースエンジニアリングしてクローン商品を作ることは法的に認められてる。
もちろんコードをコピーしたとか特許に触れたとか別の違法行為が無ければの話だが。
70デフォルトの名無しさん:2010/04/07(水) 22:23:35
脱線して来たな
71デフォルトの名無しさん:2010/04/07(水) 22:27:49
>>67
そんなこと言ってないじゃないか。使うのは別のことだと書いてある。
>>68
改変をしてよいとも言ってない。
72デフォルトの名無しさん:2010/04/07(水) 22:31:19
商用で使わせていただくんだったら、ライセンス料ぐらい払えとは思う。
73デフォルトの名無しさん:2010/04/07(水) 22:58:38
>>71
バイナリパッチが違法と言えないと言っているわけだsが
74デフォルトの名無しさん:2010/04/07(水) 23:00:00
>>69
> 欧米中国はそんな文言があっても、

中国は「どんな文言があっても」の間違いだろwwww
75デフォルトの名無しさん:2010/04/07(水) 23:15:57
中国の新著作権法自体にそれほど不備があるとは思えないな
その運用・執行について別問題
76デフォルトの名無しさん:2010/04/07(水) 23:25:36
>>72
ライセンス料を気にせず自由に使って欲しいからオープンソースにしてるんだろ
俺はその心を大事にしたいと思う
77デフォルトの名無しさん:2010/04/07(水) 23:38:53
以前LGPLを使う人のことを乞食呼ばわりしてるヤツがいたな。
NOKIAはQtで儲ける必要なんかないんだから、LGPLをありがたく使わせてもらえば
いいのに。商用ライセンスだけじゃ品質向上がなかなか進まないからGPL/LGPLを
用意してユーザーを増やしてるようだ。

商用ライセンスは、どうしてもLGPLでは困るケース...パッケージソフトを
開発して販売する場合とか...のためにあると思われ。
78デフォルトの名無しさん:2010/04/08(木) 00:11:43
スレ違いなんで他でやってください。
79デフォルトの名無しさん:2010/04/08(木) 00:26:12
リバースエンジニアリング禁止条項なんて、大して意味ないだろ
人気ソフトなら必ずだれかがやってる
80デフォルトの名無しさん:2010/04/08(木) 00:33:09
>>78
こういう話は止めろと言っても終わらないよ
スレ本来の話題を提供するか、面白いコードを投下するか、
そうでなければ自然に話が終わるのを待つしかない
81デフォルトの名無しさん:2010/04/08(木) 06:09:27
っつーか
基地外が自演してるだけにしか見えない
82デフォルトの名無しさん:2010/04/08(木) 07:43:12
Qt CreatorのGUIデザイナの良いチュートリアル無いかな
個人的には↓がすごい参考になったが物足りん
ttp://thesmithfam.org/blog/2009/09/17/qt-stylesheets-button-bar-tutorial/
83デフォルトの名無しさん:2010/04/08(木) 09:16:56
つ 「Qt プログラミング入門」
84デフォルトの名無しさん:2010/04/08(木) 13:27:49
この話題つぶしっ
85デフォルトの名無しさん:2010/04/08(木) 13:50:44
86デフォルトの名無しさん:2010/04/08(木) 13:58:09
87デフォルトの名無しさん:2010/04/08(木) 14:08:29
88デフォルトの名無しさん:2010/04/08(木) 14:13:35
QtCreator: Defining your own custom slots.
ttp://www.youtube.com/watch?v=c0HkTtUNxrw

QtCreator tutorial (1): How to make a very basic program.
ttp://www.youtube.com/watch?v=2AV9nRHJNK4
89デフォルトの名無しさん:2010/04/08(木) 16:10:36
90デフォルトの名無しさん:2010/04/09(金) 00:07:48
>>77
symbianの開発者が増えたら御の字だもんな
91デフォルトの名無しさん:2010/04/09(金) 08:32:41
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!
92デフォルトの名無しさん:2010/04/09(金) 14:24:40
>>87-88
ありがとうございました
93デフォルトの名無しさん:2010/04/09(金) 19:32:28
どういたしまして
94デフォルトの名無しさん:2010/04/09(金) 19:38:29
PyQt のプログラミングについてはここで質問しても良いですか?
python スレの方が良いですか?
95デフォルトの名無しさん:2010/04/09(金) 22:13:32
sjisのテキストを読みたいんだけど、
うまく読み込めない
教えてエロい人!!

QFile file("test.txt");
QTextStream in(&file);
QTextStream out(stdout);

file.open(QIODevice::ReadOnly);
out << in.readAll();
file.close();
96デフォルトの名無しさん:2010/04/09(金) 22:23:50
QTextCodec::setCodec()
97デフォルトの名無しさん:2010/04/09(金) 22:28:47
つ 「Qt プログラミング入門」
98デフォルトの名無しさん:2010/04/09(金) 22:30:10
   ▁▁▁▁  ▁▁▁▁  ▁▁▁▁  ▁▁▁▁
  ╱╲   ╲╱╲   ╲╱╲   ╲╱╲   ╲
 ╱  ╲▁▁▁╲ ╲▁▁▁╲ ╲▁▁▁╲ ╲▁▁▁╲
 ╲  ╱ ▁▁╱ ╱   ╱ ╱ ▁▁╱ ╱   ╱
  ╲╱▁╱╲ ╲╱▁▁▁╱╲╱▁╱╲ ╲╱ ▁▁╱
   ▔╱  ╲▁▁▁╲   ▔╱  ╲ ▔▔╲
    ╲  ╱ ▁▁╱   ▁╲  ╱▔▔▔╱
     ╲╱▁╱╲ ▔▔╲╱╲▔╲╱ ▁▁╱
      ▔╱  ╲▁▁▁╲ ╲ ▔▔╲
       ╲  ╱ ▁▁╱ ╱▔▔▔╱
        ╲╱▁╱╲ ╲╱ ▁▁╱
         ▔╱  ╲ ▔▔╲
          ╲  ╱▔▔▔╱
           ╲╱   ╱
            ▔▔▔▔
9995:2010/04/09(金) 22:32:09
>>96
ダメぽ

int main() {
QFile file("/home/redhat98/subject.txt");
QTextStream in(&file);
QTextStream out(stdout);
in.setCodec(QTextCodec::codecForName("Shift-JIS"));

file.open(QIODevice::ReadOnly);
out << in.readAll();
file.close();

return 0;}
100デフォルトの名無しさん:2010/04/09(金) 22:32:43
    ヘ⌒ヽフ
   ( ・ω・) dd
   / ~つと)
101デフォルトの名無しさん:2010/04/09(金) 23:22:23
>>99
最初に QCoreApplication app(argc, argv); を入れると改善したりしない?
10295:2010/04/09(金) 23:27:51
>>101
ちゃんと表示されました
ありがとうございました
103デフォルトの名無しさん:2010/04/10(土) 01:14:17
>>94
質問内容がQt寄りかpython寄りかを判断して決めてくれ。
こないだpythonの話題でこのスレ荒れたばっかなので、それでも迷ったらpythonスレの方で頼む。
104デフォルトの名無しさん:2010/04/10(土) 01:32:13
windowsクラッックに設定するとQtにも反映されるの?

http://www.dotup.org/uploda/www.dotup.org797194.gif
左:サンプルの見本、右:自分の環境でコンパイル&実行

Qtの内部ではwin32使ってるのか?
105デフォルトの名無しさん:2010/04/10(土) 01:52:00
>>104
される。
普段はAero環境でそれになじんだ表示がされているが、
XPからリモートデスクトップで入ってクラシック表示になると同じQtで作ったプログラムがクラシック表示になってたし。
XPにバイナリごと持っていったらXPになじんだ表示になってた。
106デフォルトの名無しさん:2010/04/10(土) 11:05:02
.Netスタイルのメニュー表示できないの?

http://www.dotup.org/uploda/www.dotup.org798064.gif
左:.Net 右:Qt
107デフォルトの名無しさん:2010/04/10(土) 11:24:58
出来ますがなにか?

つ 「Qt プログラミング入門」
108デフォルトの名無しさん:2010/04/10(土) 11:29:38
>>106
無知乙
109デフォルトの名無しさん:2010/04/10(土) 11:49:33
>>106
勝手にデフォルト環境になじんだ設定になるっての。
とりあえずインストールして動かしてみろ。
すぐに分かる話だ。
110106:2010/04/10(土) 12:20:04
>>109
何をインストールするんだ?

QMenuでicon指定するとtitleが表示されないのだが、iconとtitle両方表示するにはどうすればおk?
http://www.dotup.org/uploda/www.dotup.org798193.gif
111デフォルトの名無しさん:2010/04/10(土) 12:25:19
ツールバーじゃね?
112デフォルトの名無しさん:2010/04/10(土) 14:50:57
チャートコントロールって何を使ってますか?
113デフォルトの名無しさん:2010/04/11(日) 12:08:54
114デフォルトの名無しさん:2010/04/11(日) 18:40:39
QFileDialog::getSaveFileNameで、事前にファイル名をプリセットすることは
できますか?
上書き保存の場合
115デフォルトの名無しさん:2010/04/11(日) 18:47:21
116デフォルトの名無しさん:2010/04/11(日) 21:24:07
Qtは読み書きできる画像ファイルのフォーマットとしてTIFFには対応しているようだけど、
マルチページTIFFは扱えないの?
117デフォルトの名無しさん:2010/04/11(日) 22:23:20
PyQtでPIL
118116:2010/04/11(日) 22:58:06
>>117
サンクス。ただ、今回はC++で書かれた膨大に蓄積されたソース資産を利用するので、
残念ながらPythonは使えないんだ。
119デフォルトの名無しさん:2010/04/12(月) 13:05:50
libtiff使えば自前サポートもそれほど手間じゃなかろ
120デフォルトの名無しさん:2010/04/12(月) 13:12:48
ありがとうございました
121116:2010/04/12(月) 15:15:56
>>119
やっぱりそれしかないか。サンクス。
何か尋ねた本人でもないのに「ありがとうございました」いうヤツが出没してるな。
122デフォルトの名無しさん:2010/04/12(月) 15:58:40
ありがとうございました
123デフォルトの名無しさん:2010/04/12(月) 21:03:47
pushButtonにフォーカスを移動した状態で、Enterキーを押した場合の
SLOTって作れるの?
124デフォルトの名無しさん:2010/04/13(火) 08:45:30
Apple ジョブズ氏「クロスプラットフォーム開発環境は劣化アプリ量産と技術進展を阻害」
ttp://journal.mycom.co.jp/articles/2010/04/12/apple331/index.html
これはiPhoneの話。
でもこのぶんじゃQtがMacから排除されるのも時間の問題だな。
125デフォルトの名無しさん:2010/04/13(火) 10:04:30
Qt Creatorで、Newってやって、Qt Designer Formを選んで実行しました。

そうしたところ、〜.uiファイルしか出来ませんが、これって何なん?

.uiファイルだけじゃなくて、.h/.cppも一緒に作って欲しいに決まってるじゃね?
126デフォルトの名無しさん:2010/04/13(火) 10:17:21
そうだね
127125:2010/04/13(火) 10:24:46
いやだから、皆はどうやってんの?

Newってやって、Qt Designer Formを選んだのが間違い?

.uiファイルから.h/.cppを生成するメニューがある?
128デフォルトの名無しさん:2010/04/13(火) 10:35:26
Qt デザイナーフォームクラス
129125:2010/04/13(火) 10:45:53
d

あっという間にデキマスタw

これでダイアログ作りまくりwww
130デフォルトの名無しさん:2010/04/13(火) 14:39:17
ダイアログのButton BoxにSLOT付けようとすると、

>No Documents matching 'ui_Dlg.h' could be found.
>Rebuilding the project might help

みたいなエラーが出ますが、何でしょう?
131130:2010/04/13(火) 14:55:49
ダイアログ一式作り直したらエラーが消えたので、本当にバージョンミスマッチでした。解決しました。


再作成しなおしたダイアログでSLOT作ってコンパイルすると、今度は、
>Dlg.h:24: error: `QAbstractButton' has not been declared
なんですが、何ででつか?
132デフォルトの名無しさん:2010/04/13(火) 15:09:58
>>131
QAbstractButton' has not been declared
133130:2010/04/13(火) 15:38:59
対処方法教えて下さい(><)
134デフォルトの名無しさん:2010/04/13(火) 15:42:08
declare QAbstractButton
135130:2010/04/13(火) 15:54:25
>#include <QtGui/QAbstractButton>
を足して、
slotの実体書いたらコンパイル通りマスタ。
136デフォルトの名無しさん:2010/04/14(水) 22:06:46
    ヘ⌒ヽフ
   ( ・ω・) dd
   / ~つと)
137デフォルトの名無しさん:2010/04/14(水) 23:20:42
>>123
signalじゃなくslot?

signalならclickedが出ると思うんだけど、普通のクリックと区別したいってことなら、
QPushButtonを継承して、keyEventをオーバーライドするか、
QObject継承してるクラス(親ウィジェットでしか使う予定ないなら、親ウィジェットでもいいよ)で
eventFilter実装して、そのクラスからのsignalにする手もある。
138123:2010/04/15(木) 18:11:25
>>137
すいません、signalでした。lineEditなどには、returnPressedシグナルが
ありますが、pushButtonでも同じことができるとENTERキーだけで進めるかと
思ったもので、
keyEvent内でENTERキーを捕まえて、シグナルを発行すればいいんですね。
ありがとう やってみます
139デフォルトの名無しさん:2010/04/15(木) 18:13:42
signal / slot ってプリコンパイルで標準C++に展開されるんですよね?
どのように展開されるのか説明キボン
140デフォルトの名無しさん:2010/04/15(木) 18:34:28
qt creatorで仕事とか大きなプログラム作っている人いる?
141デフォルトの名無しさん:2010/04/15(木) 19:14:13
>>139
debug
release
どっちかのフォルダに
moc_hogehoge.cpp
とか出来てるはず
142デフォルトの名無しさん:2010/04/15(木) 19:44:30
質問です。
Vista 64とxpにQt 4.6.2、mingwを入れて使っています。
両者で同じプロジェクトをビルドするとき、xpでリリースビルドをqtcreaterからビルドした時だけ
qmakeが何か例外を出して止まってしまいます><
msysやcmdのコマンドラインからだとちゃんとビルドできるのですが・・・
ライブラリとCreaterをバラで入れたりSDK丸ごとに入れ替えたり色々やっても変わんないし・・・
xpだとおかしくなったりします?

まあ、コマンドラインからビルドできるから問題ないっちゃ問題ないんですが何か気持ち悪い・・・
143デフォルトの名無しさん:2010/04/15(木) 19:48:16

その例外のメッセージを貼ろうとは思わないのかね
144デフォルトの名無しさん:2010/04/15(木) 20:06:33
確かに貼った方が良いですね。
でも

問題が発生したため、qmake.exeを終了します。ご不便をおかけして申し訳ありません。

というMSへの通報ダイアログなんで情報量が皆無・・・
プロセスの戻り値は-1073741819 (要はゴミ値)。
145デフォルトの名無しさん:2010/04/15(木) 20:17:46
FFFFFFFFC0000005

ゴミには見えない
146デフォルトの名無しさん:2010/04/15(木) 20:24:15
色眼鏡で見ている人には見えない
147デフォルトの名無しさん:2010/04/15(木) 21:42:06
QCoreApplication app(argc, argv);
app.exec();←これが無くてもちゃんと動く
何でですか?
148デフォルトの名無しさん:2010/04/15(木) 22:18:06
意弁当投げてないから
149デフォルトの名無しさん:2010/04/15(木) 22:23:55
フォルダ内をファイル名をfailname*.*とかでサーチして正確なファイル名を
得るのに便利なクラスってありませんか?
150デフォルトの名無しさん:2010/04/15(木) 22:27:12
javaだとArrayListにStringを格納する事ができますが、
QStringは何に格納すればいいんですか?
151デフォルトの名無しさん:2010/04/15(木) 22:30:29
QList
QStringList
152デフォルトの名無しさん:2010/04/15(木) 22:31:31
>>148
txt
153デフォルトの名無しさん:2010/04/15(木) 22:35:08
>>150
 ok
154デフォルトの名無しさん:2010/04/15(木) 22:35:51
>>149
性器表現
155デフォルトの名無しさん:2010/04/16(金) 10:18:20
>>147
ヘルプを読め
Generally, no user interaction can take place before calling exec().
As a special case, modal widgets like QMessageBox can be used before calling exec(), because modal widgets call exec() to start a local event loop.
156142:2010/04/16(金) 11:12:50
もう原因追究に疲れたのでwindows SDKとvs用Qtライブラリにしちゃった。
問題なく動くようになったしこれでいいや。
157デフォルトの名無しさん:2010/04/16(金) 11:31:42
>>142
.pro の config をいじったら直ったかもなぁ
158デフォルトの名無しさん:2010/04/16(金) 11:43:46
>>157
いや、もうその辺は結構いじったので。
そもそもコマンドラインやvistaじゃ動くのでかなりお手上げ。
159デフォルトの名無しさん:2010/04/16(金) 18:00:58
>Qt フォルダ選択ダイアログ

でググったら、ファイル選択ダイアログが出てきた。
フォルダ選択ダイアログは無いんでつか?
160デフォルトの名無しさん:2010/04/16(金) 18:15:42
公式のサンプルくらい見てから使うライブラリ決めろよ
161デフォルトの名無しさん:2010/04/16(金) 18:30:45
あるよ。
162sage:2010/04/16(金) 19:38:32
質問です。
Qt creator って、クラスを継承すると親クラスのメンバは補完してくれなくなりますか?

class my_reader : public ifstream
{...}

としたら、
my_reader->
の時ifstreamのメンバが補完されなってしまい、不便で。

OSは ubuntu 9.10 です。
163デフォルトの名無しさん:2010/04/16(金) 20:56:36
my_reader-> としたときに、クラスmy_readerのメンバのみを補完候補に上げたいというなら無理じゃない?
164デフォルトの名無しさん:2010/04/16(金) 21:03:22
インテリセンスでよく使うメンバだけを表示するにはどうしたらいい?
165デフォルトの名無しさん:2010/04/16(金) 21:15:33
自作
166162:2010/04/16(金) 21:19:10
>>163
失礼。
typoです。
ifstreamのメンバも補完候補に挙がって欲しいのですが、現状、my_reader固有のメンバしか補完候補に挙がってこないのです。
167デフォルトの名無しさん:2010/04/16(金) 21:55:42
qtextstreamを使う前に、qfileでopenとしないと
テキストを読み込めないのですか?
168デフォルトの名無しさん:2010/04/16(金) 22:56:08
yes
169デフォルトの名無しさん:2010/04/17(土) 01:31:08
さーせん
Qtライブラリをwindows sdk x64でビルドしたら64bitバイナリが作れるようになったのはいいのですが、デバッグできません(64bit, 32bitどっちのデバッガも試してみたんでけどね)。
やっぱ、Qt Creatorも64bitでビルドしないとだめっすかね。
170デフォルトの名無しさん:2010/04/17(土) 03:25:07
>>166
ifstreamはテンプレートクラスなので、それでは継承できないのでは?
http://www.unkar.org/read/pc11.2ch.net/tech/1115707321 の23〜25あたり。

MyClass::test内でstd::basic_ifstreamを継承しcloseを呼び出す例。

template <typename CH>
class MyClass : public std::basic_ifstream<CH>
{
public:
void test(){
this->close();
}
};

171149:2010/04/17(土) 10:41:37
VisualC++では、ディレクトリ内のファイル検索にFindFileFirst関数がありますが
同じ様な Qt関数はないですか
172デフォルトの名無しさん:2010/04/17(土) 11:06:51
qtcreatorで開発しているんだけど、
なんで*.proにQT += webkitと書かないとコンパイルに失敗するの?
173デフォルトの名無しさん:2010/04/17(土) 11:14:56
>>172
お前がwebkit使ってるから
174デフォルトの名無しさん:2010/04/17(土) 11:27:47
>>171
QDir::entryList()
聞く前に自分でヘルプもっと探せないと、Qtやってくのつらいと思うよ。
175172:2010/04/17(土) 11:29:08
>>173
そんくらい見りゃわかるよ
なんで、#includeだけじゃダメなのかってこと
176174:2010/04/17(土) 11:38:34
>>171
補足。

> VisualC++では、ディレクトリ内のファイル検索にFindFileFirst関数がありますが

FindFirstFileでしょ?
WIN32 APIだから、WindowsならVisual C++じゃなくても使える。
windows.hをインクルードして、kernel32.libをリンクするように.proファイルに書けば、
Qtからだって使えるよ。コンパイラはMinGWでもOK。もちろんVC++のコンパイラ
(MS SDKを含む)でQtを使う場合もOK。

Linuxとか別のプラットフォームなら>>174に書いた方法でやらなきゃダメだけど。
177デフォルトの名無しさん:2010/04/17(土) 11:48:06
>>170:
をを!そんな技が必要だとは。
ありがとうございます。試してみます。
178デフォルトの名無しさん:2010/04/17(土) 11:53:54
>>175
そういう決まりなんだから、素直に従うしかないじゃん。

つ qmake Variable Reference の QT の項

予想としては、コンパイルエラーじゃなくてリンカーエラーなんじゃないの?
必要なインポートライブラリがリンクされないからだと思われ。
179デフォルトの名無しさん:2010/04/17(土) 12:38:39
>>175
ヘッダには関数やらクラスの宣言だけが書いてあって、実態は別のところにある。
includeだけじゃ、宣言だけで中身の無い鳩山状態。
180デフォルトの名無しさん:2010/04/17(土) 12:54:15
181デフォルトの名無しさん:2010/04/17(土) 13:16:02
Qt Creatorで日本語のコメント書いてると文字削除した時にカーソル消えることがあるんですけど
一度消えたらQt Creator再起動するしかない?
182171:2010/04/17(土) 13:21:18
>>174
ありがとうございます
183デフォルトの名無しさん:2010/04/17(土) 14:36:13
>>175
VC だって #pragma hogehoge 書くか makefile にリンカオプションつけるだろ
それといっしょ
184デフォルトの名無しさん:2010/04/17(土) 15:01:58
getOpenDialogのselectFilterって、特定の拡張子を除外することはできる?
All Files(*.*)だけど、*.abcだけは除外するとか
185デフォルトの名無しさん:2010/04/17(土) 15:44:34
>>184
QFileDialog::getOpenFileName()のことだよね?
glob形式のパターンマッチング「〜以外」を表現できないから、無理なんじゃないか?
186デフォルトの名無しさん:2010/04/17(土) 15:51:10
↑脱字スマソ

× glob形式のパターンマッチング「〜以外」
○ glob形式のパターンマッチングは「〜以外」
187デフォルトの名無しさん:2010/04/17(土) 16:06:21
なんか FindFileFirst とか getOpenDialog とか selectFilter とか、
語句を平気で間違ったまま書くやつがいるな。

こういう手合いが一番タチ悪い教えて君になりやすい希ガス。
188175:2010/04/17(土) 16:07:13
何でつけなきゃならないのか、わからないけど
結局はおまじないなんだな

感謝する
189デフォルトの名無しさん:2010/04/17(土) 16:10:42
>>178>>179にちゃんと答えがあるじゃん
190デフォルトの名無しさん:2010/04/17(土) 16:35:48
お前らがqtで2ちゃんねるブラウザを作るとしたら、
スレビュー(スレを表示する所)をどう作る?
191デフォルトの名無しさん:2010/04/17(土) 16:44:21
QWebView
192デフォルトの名無しさん:2010/04/17(土) 16:58:32
>>188
プログラムにおまじないなんかねぇょ
193デフォルトの名無しさん:2010/04/17(土) 17:01:17
>>190

レス逆参照してtree表示
194デフォルトの名無しさん:2010/04/17(土) 17:03:46
実質スレ表示にWebの機能なんていらないんだよな
195デフォルトの名無しさん:2010/04/17(土) 17:06:29
QWebView使わなくてもQTextEditかQTextBrowserで十分じゃないかな?
196190:2010/04/17(土) 17:07:32
>>191
俺もQWebViewを使おうかなと思ったけど、
使い方がわかんね

>>193
kwsk
197デフォルトの名無しさん:2010/04/17(土) 17:57:40
>>196
>>193が言ってるのは恐らくJane Styleでいう「検索」→「スレのツリー形式表示」
なんか面白そうだけど、安価つけないやつも多いからな
198デフォルトの名無しさん:2010/04/17(土) 17:58:03
たとえば
>>191 を表示したときに >>196 がレスしてることがわかるようにする機能
199デフォルトの名無しさん:2010/04/17(土) 17:59:55
安価つけなかったり番号間違ったり誤爆ったり
完全にツリーにするのは難しいだろうけど
あきらかにレスがあるのがわかると便利かな
ツリーじゃなくてもいいよ
200デフォルトの名無しさん:2010/04/17(土) 18:44:52
>>195
http://d.tnose.net/?p=1666

datの差分をレンダリングするとき遅すぎて使えない
4.6のQWebViewについてくるDOMで実用レベルらしい
201デフォルトの名無しさん:2010/04/17(土) 21:22:16
202デフォルトの名無しさん:2010/04/17(土) 21:24:31
203デフォルトの名無しさん:2010/04/17(土) 21:59:10
loopyに2回も同じこと言われんでも分かる
204デフォルトの名無しさん:2010/04/18(日) 10:10:36
>>188
>何でつけなきゃならないのか、わからないけど
>結局はおまじないなんだな
http://doc.trolltech.com/4.6/qmake-project-files.html
読めば分かる。

205デフォルトの名無しさん:2010/04/18(日) 22:27:31
どうすれば、foreachが使えるようになるの?
206デフォルトの名無しさん:2010/04/18(日) 23:57:23
PowerPCにLeopardのmacがあったんで、xcode3.1とqt4.6.2を
インストールしてサンプルとか簡単なソースをビルドしてみたが、
「プログラムを開始できませんでした。パスかパーミッションに誤りはありませんか?」
と出てしまう。

んで、そのテストのプログラムを直接動かそうとすると、
ターミナルが起動して英文でいろいろと出た後に
"Bad CPU type in executable"って書いてあるんだけど
PowerPCでは使えない?
207デフォルトの名無しさん:2010/04/19(月) 00:21:23
>>462
Qt をどうやってインストールした?
PowerPC もサポートしているようだけど、
ビルド方法によってはバイナリに含まれてないかも。
ttp://doc.trolltech.com/4.6/developing-on-mac.html
208デフォルトの名無しさん:2010/04/19(月) 00:22:14
× >>462
>>206
209デフォルトの名無しさん:2010/04/19(月) 00:40:16
>>207
たしかに対応してるみたいだね。サンクス。

特に何も考えずにqt-sdk-mac-opensource-2010.02.dmgを
ダウンロードして実行してインストールしただけなんだけど。
Xcodeの方が最新版は使えないから一つ前のを探して
xcode314_2809_developerdvd.dmgってのをインストールした。

う〜ん、よくわからん。
210デフォルトの名無しさん:2010/04/19(月) 13:26:37
>>209
SDK に PPC のバイナリが入ってない可能性があるかも。
ターミナルから file コマンドで qmake とか調べてみたら。
211デフォルトの名無しさん:2010/04/19(月) 13:40:02
>>209
qmake -spec macx-xcode でプロジェクトを作り直してみる
212デフォルトの名無しさん:2010/04/19(月) 17:37:01
QThreadの使い方が良くわかりません
なにか参考になるサイトとかありませんか?
213デフォルトの名無しさん:2010/04/19(月) 18:05:35
"入門 Qt4プログラミング" で一応スレッドの例があるよ。
214デフォルトの名無しさん:2010/04/19(月) 18:17:43
>>205
>どうすれば、foreachが使えるようになるの?
インストールしただけで http://doc.trolltech.com/4.6/qtglobal.html#foreach
書かれていることが使えるようになります。
215デフォルトの名無しさん:2010/04/19(月) 18:19:29
QNetworkAccessManager を使って
QNetworkRequest で get するとしばらくしてから
SLOT fin に戻ってくるようなのですが
(その間メインウィンドウの方では他の操作が可能です)
これはマルチスレッドの処理が元々 QNetworkAccessManager に実装
されているということでしょうか?
もしそうなら QThread は使わなくても済みそうなのですが・・・
216デフォルトの名無しさん:2010/04/19(月) 18:20:17
>>212
>QThreadの使い方が良くわかりません
http://doc.trolltech.com/4.6/threads.html
http://doc.trolltech.com/4.6/thread.html
http://doc.trolltech.com/4.6/examples-threadandconcurrent.html
スレッドを知っていれば、これらを読めば分かります。
217デフォルトの名無しさん:2010/04/19(月) 18:22:00
>>216
ありがとうございます
助かります
218デフォルトの名無しさん:2010/04/19(月) 18:29:15
>>215
>これはマルチスレッドの処理が元々 QNetworkAccessManager に実装
>されているということでしょうか?
マルチスレッドは使っていませんが、マルチスレッドは考慮されています。
>もしそうなら QThread は使わなくても済みそうなのですが・・・
QThreadを使うか使わないかは、スロットでの処理次第です。
219デフォルトの名無しさん:2010/04/19(月) 18:34:53
>>218
あほなんでよくわかりません
もうすこし噛み砕いて説明して頂けないでしょうか
220デフォルトの名無しさん:2010/04/19(月) 18:48:40
>>219
もしかしてこういうことができればいいのかな?

QNetworkReply *reply = manager->get(QNetworkRequest(QUrl("http://www.hogehoge.com")));
while(!reply->isFinished()) QCoreApplication::processEvents();
qDebug() << reply->readAll();
reply->deleteLater();
221デフォルトの名無しさん:2010/04/19(月) 19:20:49
それは変です
222デフォルトの名無しさん:2010/04/19(月) 19:56:11
>>215
>これはマルチスレッドの処理が元々 QNetworkAccessManager に実装
>されているということでしょうか?
そうです。別スレッドで処理するのでブロッキングしません
分かると思うけどslot finを呼び出すスレッドはメインスレッドではないので注意
223デフォルトの名無しさん:2010/04/19(月) 20:05:00
>>220 >>222
ありがとうございます
なんとなくモヤモヤ感が残ってるのですが
今のところ期待した動きになってきたので
とりあえずなんとかなりそうです
また詰まると思うのでそのときにもう少し
詳しく調べたいと思います
224デフォルトの名無しさん:2010/04/19(月) 20:13:28
>>222
QNetworkAccessManager は別スレッド作って処理してないぞ。
225222:2010/04/19(月) 20:15:01
>>224
あ、そうなん?
↓見て書いただけで試してない申し訳ない
http://stackoverflow.com/questions/2334790/qnetworkaccessmanager-handling-asynchronous-thread
226デフォルトの名無しさん:2010/04/19(月) 21:18:20
あっちはあっちであほがあほにレスしてるんかな
227デフォルトの名無しさん:2010/04/19(月) 21:36:27
qtextstream out(stdout); out << "test";
どうやったら、改行できるの?
228デフォルトの名無しさん:2010/04/19(月) 22:10:22
>>227
っ endl
229デフォルトの名無しさん:2010/04/19(月) 22:43:58
>>228
thx
230デフォルトの名無しさん:2010/04/19(月) 22:50:15
QFile file("test.txt");
QTextStream in(&file);

QLinkedList<QString> list;
if(file.open(QIODevice::ReadOnly)) {
while(!in.atEnd()) {
list.append(in.readLine());
}
file.close();
}

QTextStream out(stdout);
foreach(QString s, list) {
out << s;
}
なんで、コンパイルエラー&うまく表示されないの?
231デフォルトの名無しさん:2010/04/19(月) 22:57:53
out << qPrintable(s);

hoge.pro の方に
CONFIG += console
232デフォルトの名無しさん:2010/04/20(火) 14:16:59
QSqlDatabase で SQLite を使ってるのですが
50文字 3column 程度で 500件の insert が 1 分くらい掛かってしまいます
QDataStream(QFile) だと一瞬で終わります
もちろんただのテキスト出力より遅いのは理解していますが
こんなに遅いものなのでしょうか?

233デフォルトの名無しさん:2010/04/20(火) 14:18:51
>>232
補足情報です
db.open と db.close は最初と最後の一回だけです
commit も最後の一回だけです
(毎回 commit してもそんなに変わらず遅かったですが)
234デフォルトの名無しさん:2010/04/20(火) 17:23:08
>>232
>こんなに遅いものなのでしょうか?
まずは、SQLiteを直に使って試してみることだ。
235デフォルトの名無しさん:2010/04/20(火) 17:44:00
それらのqtの標準ライブラリがターゲットとしているRDBはODBC経由のみでつか?
Firebirdはやっぱ無理?
236デフォルトの名無しさん:2010/04/20(火) 17:50:56
InterBase(firebird)用のplugin(qt4-ibase-plugin)があると思うけど
237デフォルトの名無しさん:2010/04/20(火) 17:59:09
え”、そんなモノまであったとは(驚
238デフォルトの名無しさん:2010/04/20(火) 18:21:36
>>235
>それらのqtの標準ライブラリがターゲットとしているRDBはODBC経由のみでつか?
http://doc.trolltech.com/4.6/sql-driver.html
訊く前に、リファレンスを調べる。
239デフォルトの名無しさん:2010/04/20(火) 20:44:00
>>234
そうですね
とりあえず python で同じくらいのデータ量でやってみました
ある意味予想通りですが一瞬で終わりました
インタプリタより遅いってありえなさすです

あとで Qt4 版で再現するソース晒すつもりです
他に原因があるかも知れないので出来るだけ単純なので試してまた来ます
240デフォルトの名無しさん:2010/04/20(火) 20:55:39
Qtでカスタムウィジェットを作って、Qt Designerでそのウィジェットを使うと、
コンパイル時にそのウィジェットのヘッダファイルを入れないといけないし、
実行時にそのウィジェットのDLLを参照する必要があるけど、
もう少し簡単にカスタムウィジェットをQt Designer使えるようにならないかな?
dllを使わずスタティックリンクにできるだけでもいいんだけど・・・
241デフォルトの名無しさん:2010/04/20(火) 21:00:10
>>239
Qt も QSqlDatabase も知らんけど、SQLite は明示的にトランザクションを開始しないと
勝手に毎回 COMMIT するよ。DB 使いには結構有名な話だから知ってるかもしれないけど。

http://journal.mycom.co.jp/special/2004/php5/007.html

QSqlDatabase::transaction () を入れて計ってみても変わらないかな?
242デフォルトの名無しさん:2010/04/20(火) 21:13:11
とりあえず余計な部分を除いた再現するコードです
やっぱり遅いです(1秒以内で終わることを期待しています)
(Windows Vista / Core2Duo 2GHz / メモリ 3GB / HDDはローカル)
QString s(...); を作っているのは実際のプログラムでその程度の文字列作成があるからです。
これをループの外に出してもほとんど変わりません。

#include <QtCore>
#include <QtSql>
#include <iostream>
int main(int argc, char **argv){
  QCoreApplication app(argc, argv);
  std::cout << "start" << std::endl;
  QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  db.setDatabaseName("test.db");
  if(!db.open()){
    //
  }else{
    QSqlQuery q;
    q.exec("create table testtable (id integer primary key,"
      " c1 varchar(255), c2 varchar(255), c3 integer);");
    for(int i = 0; i < 500; ++i){
      QString s(QObject::tr("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
        "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"));
      QString v(QObject::tr("'%1', '%2', %3").arg(s).arg(s).arg(i));
      q.exec(QObject::tr("insert into testtable (c1, c2, c3) values (%1);")
        .arg(v));
    }
    db.close();
  }
  std::cout << "end" << std::endl;
  return app.exec();
}
243デフォルトの名無しさん:2010/04/20(火) 21:19:23
>>241
まじですか
やってみます
244デフォルトの名無しさん:2010/04/20(火) 21:26:53
>>241
解決しました! 爆速ですw 本当にありがとうございました!!!

#include <QtCore>
#include <QtSql>
#include <iostream>
int main(int argc, char **argv){
  QCoreApplication app(argc, argv);
  std::cout << "start" << std::endl;
  QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  db.setDatabaseName("test.db");
  if(!db.open()){
    //
  }else{
    db.transaction();
    QSqlQuery q;
    q.exec("create table testtable (id integer primary key,"
      " c1 varchar(255), c2 varchar(255), c3 integer);");
    for(int i = 0; i < 500; ++i){
      QString s(QObject::tr("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
        "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"));
      QString v(QObject::tr("'%1', '%2', %3").arg(s).arg(s).arg(i));
      q.exec(QObject::tr("insert into testtable (c1, c2, c3) values (%1);")
        .arg(v));
    }
    q.clear();
    if(!db.commit()) db.rollback();
    db.close();
  }
  std::cout << "end" << std::endl;
  return app.exec();
}
245230:2010/04/20(火) 22:17:44
>>231
ちゃんと動きました
ありがとうございます
246デフォルトの名無しさん:2010/04/20(火) 23:32:55
    ヘ⌒ヽフ
   ( ・ω・) dd
   / ~つと)
247デフォルトの名無しさん:2010/04/21(水) 00:46:03
>>82の続きですが、qtの解説サイトでお勧めはありますか?
248デフォルトの名無しさん:2010/04/21(水) 02:28:14
249デフォルトの名無しさん:2010/04/21(水) 11:32:56
LGPLでアプリを配布するとき書かなきゃならない文章ってありまつか?
250デフォルトの名無しさん:2010/04/21(水) 13:36:34
前提条件が何も書いてないので,それだけじゃ返事のしようがない。
↓ここのやり取りでも読んでくれ。
ttp://qtusersforum.s2.zmx.jp/forum/viewtopic.php?f=16&t=219
251デフォルトの名無しさん:2010/04/21(水) 13:37:05
実験段階のソフトを他人(特定多数)に期間限定で使ってもらおうとする場合
その時点で既にライセンスとかソースの公開とか確認しておくことはありますか?
252デフォルトの名無しさん:2010/04/21(水) 14:05:49
つ [d] >>250
253デフォルトの名無しさん:2010/04/21(水) 14:10:12
実験段階だろうが特定多数だろうが事情は変わらない。
254デフォルトの名無しさん:2010/04/21(水) 14:18:08
QCharの文字をcharにしたいのですが方法が分かりません。
ヘルプでQStringとか調べて、QString::utf16()はあるんだけど、QString::utf8()はコンパイルでエラーっぽいけど、どういうことでしょう。
Utf16とUtf8は簡単に変換できる筈ですよね???
255デフォルトの名無しさん:2010/04/21(水) 14:31:57
質問がいみふめ。
最初のQChar→charの話と後のUTF-16とUTF-8の話のつながりがわからん。

ヘルプでQString調べたんならQString::utf8()なんていう関数がないのはコンパイルして
エラーを出すまでもなくわかるだろ?

要するにUTF-16とUTF-8の変換をやりたいわけ?

■UTF-16→UTF-8
QString::fromUtf16()でushort*(=wchar_t*)からQStringに入れておいて,
QString::toUtf8()で一旦QByteArrayにしてからQByteArray::data()でchar*に取り出す。

■UTF-8→UTF-16
QString::fromUtf8()でchar*からQStringに入れておいて,QString::utf16()で
ushort*に取り出す。

やってみたわけじゃないけど,これで行けると思うが。
256デフォルトの名無しさん:2010/04/21(水) 14:43:56
QCharの文字をcharにしたいのですが
257デフォルトの名無しさん:2010/04/21(水) 14:49:34
d

from〜、to〜、ってのが要るんですね。
今回、QCharからcharにしたかったので、
> QChar qc; //←qcに値を入れる処理も行う!
>char c = qc.toAscii(); //これでUTF-16からUTF-8に変えてるれるつもり
で何とかコンパイル通りました。
258デフォルトの名無しさん:2010/04/21(水) 14:55:40
qc.toAscii() で確実に UTF-8 にしたいなら
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
しておかないといけないのでは
259デフォルトの名無しさん:2010/04/21(水) 15:00:03
dd >>258

QTextCodecの使い方やっと分かりますた。
理解するまで、意外に難しいですね。
260デフォルトの名無しさん:2010/04/21(水) 15:02:18
そうですね

誰もが一度は通る道

だから
>>1 に書いてある
261デフォルトの名無しさん:2010/04/21(水) 15:04:07
>>257
QChar::toAscii()のリターン値はcharであってchar*じゃないから1バイトしか入らない。
コンパイルは通るかも知らんが,UTF-8は可変長マルチバイトなんだから,QCharに
入っている文字が1バイト文字以外の場合は期待通りには動かないよ。

UTF-16からUTF-8に変換したいならQString使う必要があると思う。
262デフォルトの名無しさん:2010/04/21(水) 15:11:54
ddd >>260, 261

そうなんですかー。

後だしジャンケンみたいですが、やりたいことを最後に出します(藁):


char PathSeparator; //ライブラリのクラス変数(ファイルパスの区切り文字)

>PathSeparator = QDir::separator();
みたいな感じで、Qtからファイルパス区切り文字が欲しい。

解決策1:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QChar qc = QDir::separator();
PathSeparator = qc.toAscii();

解決策2:
QString qs = QDir::separator();
PathSeparator = qs.toUtf8();

263デフォルトの名無しさん:2010/04/21(水) 16:00:06
関係無いけど、
どのOSでもQStringの初期値は、
>Unicode 4.0
なんだ?
264デフォルトの名無しさん:2010/04/21(水) 16:13:04
>>262
なぁんだ。最初から結果は1バイトだってわかってるんじゃん。
それなら解決策1で良いし,

> QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

は必要ない。ASCII文字はUTF-8と互換性があるんだから。
265デフォルトの名無しさん:2010/04/21(水) 17:49:58
UTF-8
UTF8
utf-8
utf8
どれが正しいの
266デフォルトの名無しさん:2010/04/21(水) 18:11:36
Unicode Transformation Format-8
267デフォルトの名無しさん:2010/04/21(水) 18:13:20
>QTextCodec::setCodecForCStrings

の初期値は何が良いんだろ。
268デフォルトの名無しさん:2010/04/21(水) 18:23:51
>>267
ソースの文字コード
269デフォルトの名無しさん:2010/04/21(水) 19:00:59
システムのロケール
270デフォルトの名無しさん:2010/04/21(水) 21:01:25
qwebviewとqtextbrowerって何が違うの?
271デフォルトの名無しさん:2010/04/21(水) 21:10:12
>>270
QWebViewには通信機能まで含まれてるから、インターネット接続環境があれば
それだけで外の世界のwebページにまでアクセスできる。
簡単なブラウザならすぐ作れるよ。

QTextBrowserはHTMLが表示できるだけなので、リンクが貼ってあるHTMLでも
リンク先が外の世界だと飛べない。ローカルファイルなら大丈夫だけど。
272270:2010/04/21(水) 21:12:31
>>271
QTextBrowserで写真の表示/javascriptの対応を教えてください
273271:2010/04/21(水) 21:17:18
補足。>>248が紹介してくれたここ↓にQWebViewでブラウザを作る例があるね。
ttp://qt-labs.jp/2010/04/13/simplebrowser-with-qtcreator.html
274271:2010/04/21(水) 21:20:56
>>272
ごめん。知らんので調べないとわからん。
写真は普通にHTML内に<img>タグでローカルの画像ファイルを指定すれば良いんじゃないの?

エラい人フォローよろしく。
275270:2010/04/21(水) 21:24:33
>>273
ありがとう
276デフォルトの名無しさん:2010/04/21(水) 21:48:36
>>272
QTextBrowser で使える HTML のタグはこちら。
ttp://doc.qt.nokia.com/4.6/richtext-html-subset.html
<img> が使えるので画像はOKだが、JavaScript はない。

軽量だが制限も多く複雑なページや動きのあるページには向かないのが QTextBrowser/QTextEdit
普通の HTML + JavaScript も動くがでかいのが QWebView
というイメージ。
277デフォルトの名無しさん:2010/04/21(水) 21:56:43
>>272
>QTextBrowserで写真の表示/javascriptの対応を教えてください
http://doc.trolltech.com/4.6/qtextedit.html#html-prop
http://doc.trolltech.com/4.6/richtext-html-subset.html
を読めば分かる。
278デフォルトの名無しさん:2010/04/21(水) 21:58:36
>>270
>qwebviewとqtextbrowerって何が違うの?
http://doc.trolltech.com/4.6/qwebview.html
http://doc.trolltech.com/4.6/qtextbrowser.html
を読めば分かる。
279デフォルトの名無しさん:2010/04/21(水) 22:01:55
>>247
>qtの解説サイトでお勧めはありますか?
http://doc.trolltech.com/4.6/
これを読めば分かる。
280270:2010/04/21(水) 22:04:38
>>276
わざわざありがとうございます
281デフォルトの名無しさん:2010/04/21(水) 22:49:45
qtの日本語解説サイトお願いします
282デフォルトの名無しさん:2010/04/21(水) 22:59:10
>>281
>qtの日本語解説サイトお願いします
http://www.alc.co.jp/index.html
283デフォルトの名無しさん:2010/04/21(水) 23:02:56
demos/mainwindow の中に saveLayout で
geometory と state を保存している部分がありますが
これをメニューから実行するのではなく
アプリケーション終了時に自動でやりたいと思います
この場合 MainWindow::closeEvent() の中に書くのが妥当なのでしょうか?
他に的確な場所ってありますか?
284デフォルトの名無しさん:2010/04/21(水) 23:07:45
285デフォルトの名無しさん:2010/04/21(水) 23:42:36
>>284
出来ました
ありがとうございました
286デフォルトの名無しさん:2010/04/22(木) 00:03:05
>>281
さすがにalcには載ってないねw
日本語で参考になるのは、

ttp://qtprogramming.s2.zmx.jp/index.html

あたりかな。でも基本的に英語のドキュメント読むのは避けては通れないよ。
「を読めばわかる」の人が誘導してくれているけど、英語のドキュメント読まずに
聞いていると思われる人と、目的の解説が探せないで聞いていると思われる
人では明らかに対応が違ってるでしょ?
287デフォルトの名無しさん:2010/04/22(木) 00:20:32
>>286
>さすがにalcには載ってないねw
英語のドキュメントを読もうともしていないということ。
>基本的に英語のドキュメント読むのは避けては通れないよ。
読めないなら他のことをやっても同じ。
>英語のドキュメント読まずに聞いていると思われる人と、
論外。
>目的の解説が探せないで聞いていると思われる人では明らかに対応が違ってるでしょ?
書いてあることを探そうとすらしていないのでは?
288デフォルトの名無しさん:2010/04/22(木) 00:21:41
>>287
おまいは懇切丁寧でウィットの入った優しい返答の揚げ足をとって何が面白いんだ?
289デフォルトの名無しさん:2010/04/22(木) 00:29:13
ここで質問すると作業が捗るので
見る見る品質が上がって行きます
2chは糞スレ糞レスも多いですが
まだまだ捨てたものではないです
人類の発展に貢献していると思います
290デフォルトの名無しさん:2010/04/22(木) 01:48:23
肩の力抜こうぜ
適当な質問に適当に答えたり叩いたりできる場所だって必要さ
291デフォルトの名無しさん:2010/04/22(木) 06:13:44
exe を複数起動するとウィンドウも複数出来てしまいますが
ひとつしか起動出来ない(もし exe を起動しようとしたとき
既に立ち上がってればそれがアクティブになる)ようにするには
どのようにコーディングすればよいのでしょうか?
292デフォルトの名無しさん:2010/04/22(木) 06:31:01
293デフォルトの名無しさん:2010/04/22(木) 10:02:03
QTreeWidget と QTreeView は
どう使い分ければよいのでしょうか?
294デフォルトの名無しさん:2010/04/22(木) 10:12:56
わからないうちはQTreeWidgetでおk
295デフォルトの名無しさん:2010/04/22(木) 11:49:41
ttp://randt.jp/?p=729

>Qtアプリケーションを作成していて、undefined reference to vtable for <Class Name>エラーが出るなら

エラーが出るんですが、Qtと関係ないクラスにも”Q_OBJECT”って要るんですか?
自作クラスの中のQt部品といえば、QStringとメッセージボックスくらいしか無いのですが。
296デフォルトの名無しさん:2010/04/22(木) 12:03:06
>>292
それ使ってるよ。うまく動いてる。
297295:2010/04/22(木) 13:30:40
自己レス:

>”Q_OBJECT”が要る

のは勘違いでした。

>[ビルド]-[qmakeの実行]を実行

が必用でした。
298デフォルトの名無しさん:2010/04/22(木) 16:20:07
Qt Creator でコンパイル指定子(#define 、みたいな)設定できまつか?
299298:2010/04/22(木) 16:51:36
300デフォルトの名無しさん:2010/04/22(木) 20:26:20
これゲームとか作れるの?
301デフォルトの名無しさん:2010/04/22(木) 20:29:12
不可能じゃないけど、向いてないよ
302デフォルトの名無しさん:2010/04/22(木) 20:37:53
それは残念
303デフォルトの名無しさん:2010/04/22(木) 22:15:16
qtのクラスを継承しない時は、絶対に#include <QString>しないとダメなの?
304デフォルトの名無しさん:2010/04/22(木) 22:41:29
#include <QtCore>
305303:2010/04/22(木) 22:51:15
>>304
OK,Thx
306デフォルトの名無しさん:2010/04/22(木) 23:14:11
QButtonのフォーカスをクリックはできるけどフォーカスを保持しないように
(スペースとかでは反応しないように)するにはどうしたらいいのでしょうか?
ClickFocusだとフォーカスがボタンに残ってしまいます。
クリック後に自前でフォーカスを移動させるしかない?
307デフォルトの名無しさん:2010/04/22(木) 23:26:19
taborder=-1
308デフォルトの名無しさん:2010/04/23(金) 09:46:53
Qt Ctreatorで作成したウィンドウのサイズを実行時にユーザーが変更できないように
するには,フォームエディタでプロパティのminimumSizeとmaximumSizeをも同じ値に
するのが正しいやり方なの?
309デフォルトの名無しさん:2010/04/23(金) 09:49:40
yes
310デフォルトの名無しさん:2010/04/23(金) 11:49:44
no
311308:2010/04/23(金) 11:58:01
>>310
具体的にどうすれば良いか教えてください。
312デフォルトの名無しさん:2010/04/24(土) 00:48:40
>>311
>310 の no は no。>309 の yes が yes。
313デフォルトの名無しさん:2010/04/24(土) 09:10:06
QWidget::setFixedSize(const QSize&)
314デフォルトの名無しさん:2010/04/24(土) 10:14:04
>>313
ヘルプを読むと、それって結局minimumSizeとmaximumSizeを同じ値にしてるだけだから、
ソースコード上に書くか、Qt CratorのGUIデザイナ上でプロパティを設定しておくかの
違いだけ。
315デフォルトの名無しさん:2010/04/24(土) 10:35:14
で?
316デフォルトの名無しさん:2010/04/24(土) 10:39:40
QtのDemoに入ってるアプリはsetFixedSizeでやってたから
俺はsetFixedSizeを使ってる
317デフォルトの名無しさん:2010/04/24(土) 11:48:29
318デフォルトの名無しさん:2010/04/24(土) 12:42:48
フォームエディタでポチポチするよりコンストラクタに一行追加する方が楽だし応用もできる
319デフォルトの名無しさん:2010/04/24(土) 12:43:18
>>316
setFixedSizeの本質は>314。
320デフォルトの名無しさん:2010/04/24(土) 12:51:18
loopy
321デフォルトの名無しさん:2010/04/24(土) 13:09:35
>>311
src/gui/kernel/qwidget.cpp
コードを読めば分かる。
322デフォルトの名無しさん:2010/04/24(土) 14:09:00
>>318
GUIデザイナ上でプレビュー見ながら視覚的に丁度良いサイズにしておいて、
geometorytからminimumSize、maximumSizeにwidth/heightを書き写した方が
やりやすい。
323デフォルトの名無しさん:2010/04/24(土) 15:03:22
どうやったら、zipとrarw解凍できるの?
324デフォルトの名無しさん:2010/04/24(土) 15:12:00
>>323
unzipとunrar
325デフォルトの名無しさん:2010/04/24(土) 15:44:22
QTableViewを使うと、内容を編集する際に
前のデータがまるっと消えてしまいますが、
前のを残して修正するには、
やはりカスタムのデリゲートを作らないとだめでしょうか。
326デフォルトの名無しさん:2010/04/24(土) 16:32:10
>>325
モデル作っちゃったのなら、そうするのがいいかもしれないけど
まだ作ってないのならQTableWidgetにしたら消えなかった気がする
327デフォルトの名無しさん:2010/04/24(土) 17:43:07
TableView / TableWidget や
TreeView / TreeWidget の使い分けの基準が判らんのですが
どこかで判りやすく説明されているサイトとかありますか?
一応「入門Qtプログラミング」は持ってるんですが良くわからなかったので。
328デフォルトの名無しさん:2010/04/24(土) 17:52:23
329デフォルトの名無しさん:2010/04/24(土) 18:32:28
>>327
TableWidgetやTreeWidgetを使って行き詰まって後悔してからTableViewやTreeViewを使う。
330デフォルトの名無しさん:2010/04/24(土) 18:45:48
わかりました。
ありがとうございます。
*Widget で作ったソースをあとで *View に変更するときになっても
そんなに書き換えなくても済むという理解であってますか?。
331デフォルトの名無しさん:2010/04/24(土) 20:02:21
QFile::WriteOnly
QIODevice::WriteOnly
どっちが正しいのでしょう
332デフォルトの名無しさん:2010/04/24(土) 20:37:19
333デフォルトの名無しさん:2010/04/24(土) 20:40:29
>>330
目的に合った*Widgetを作るというようにすれば。
334デフォルトの名無しさん:2010/04/24(土) 21:31:26
処理時間のかかる共有ライブラリを実行中に
画面をフリーズさせない方法を教えてください

お願いします。
335デフォルトの名無しさん:2010/04/24(土) 21:38:03
>>334
スレッドを分ける
336デフォルトの名無しさん:2010/04/24(土) 21:40:54
>>335
スレッド分けて
a.start();
a.wait();
ってやるとスレッド実行中はフリーズしちゃいますよね
これはどうやって回避させるんでしょうか?
337デフォルトの名無しさん:2010/04/24(土) 21:46:19
>>336
waitじゃなくてfinished()かrunning()でポーリングすればいいんでね
338デフォルトの名無しさん:2010/04/25(日) 01:24:59
qDebug() << "日本語";はOKだけど
qDebug("日本語");は駄目なん?
339デフォルトの名無しさん:2010/04/25(日) 02:37:41
qDebug() << qPrintable(msg); と qDebug("%s", qPrintable(msg)); で結果が異なる

144 デフォルトの名無しさん [sage] 2010/02/08(月) 22:57:13 ID: Be:
    >>142-143
    qDebug(fmt, ...);
    の場合、渡す文字列はutf8固定。
    (ちなみに、fmtはLatin1固定)
    QString::sprintf() を内部で使っているため。
    ttp://doc.trolltech.com/4.6/qstring.html#sprintf

    qDebug("%s", msg.toUtf8().constData());
    としてみると動かないかな。
340デフォルトの名無しさん:2010/04/25(日) 07:43:13
qDebug(fmt, ...) じゃないとリリースビルドでもコード残っちゃうから
普通に日本語使えるようにして欲しいなあ
341デフォルトの名無しさん:2010/04/25(日) 08:40:51
>>340
>普通に日本語使えるようにして欲しいなあ
いろいろなコンパイラのことを考えれば、日本語文字列を使わないのが最もよい。
342デフォルトの名無しさん:2010/04/25(日) 09:52:17
>>341
Qtのサポートしてるコンパイラ(g++,msvc,icc etc)については
問題無いと思うが
343デフォルトの名無しさん:2010/04/25(日) 10:05:33
よいプログラムを書きたいのではなく、よいソフトウエアを作りたいのです
344デフォルトの名無しさん:2010/04/25(日) 10:13:09
よいソフトウェアを維持するために
よいプログラムを書きましょう
345デフォルトの名無しさん:2010/04/25(日) 11:57:27
QtAssistantでQWidgetを検索しても出てこないのって俺だけ?
ページはあるのに…
346デフォルトの名無しさん:2010/04/25(日) 12:28:30
>>339
さんくす
で、結局TRACEに対応するものはないってことか?
347デフォルトの名無しさん:2010/04/25(日) 13:43:05
>>340
「普通に」って書いてるから分かってるんだと思うけど
まったく日本語が使えない訳じゃなくて
fmtに日本語が使えないだけだから
qDebug("var: %1", qPrintable(var));
と書けばいい話
そもそもデバッグってそういうもんでしょ?
348デフォルトの名無しさん:2010/04/25(日) 13:46:50
たしかにdebugしようとして文字列表示させてるのに
それが文字化けしてたらdebugにはならん罠
349デフォルトの名無しさん:2010/04/25(日) 14:01:13
>>347
qDebug("var: %s", var.toUtf8().constData());
が正しい
350デフォルトの名無しさん:2010/04/25(日) 16:54:52
Qtのアプリケーションに日本語を使うと起動が遅くなる気がするんですが、
これは気のせいですか?
351デフォルトの名無しさん:2010/04/25(日) 17:13:26
気のせいです
352デフォルトの名無しさん:2010/04/25(日) 17:20:10
qjpcodecs4のpluginを起動時に読みに行くけど
気が付くほど遅くなるとは思えない
353デフォルトの名無しさん:2010/04/25(日) 19:10:43
>>342
VSは、UTF-8をSJISに変えてしまうという問題あり。
354デフォルトの名無しさん:2010/04/25(日) 20:16:05
>>350
プロファイリングをして解析し、日本語が問題だと特定してから言うべきことでしょう。
355デフォルトの名無しさん:2010/04/25(日) 20:17:27
>>348
文字化けせずに表示する方法があるのだから全く問題ない。
356デフォルトの名無しさん:2010/04/25(日) 20:35:27
プロファイリングをして解析し、日本語が問題だと特定したら2chのスレじゃなくて開発に報告してあげましょう。
357デフォルトの名無しさん:2010/04/26(月) 01:14:22
>>347->>349
回避法ありがと。まあテンプレでもqDebug(fmt)は避けてるし

プロジェクトで使うなら「ストリームqDebug使え」って方針がわかりやすくて無難だと思う

でもQtが内部UTF-16なのにsprintf/snprintfをUTF-16用に書き直さないのは謎だな
Qt4.6のQString::sprintfの説明には「We do not recommend using QString::sprintf() in new Qt code」とあるし、
qDebug(fmt)をobsoluteにしたいと思ってるのかな方向なのかな

>>350
多分気のせいだと思う
358デフォルトの名無しさん:2010/04/26(月) 02:44:58
>>340
>qDebug(fmt, ...) じゃないとリリースビルドでもコード残っちゃうから

まじ?
359デフォルトの名無しさん:2010/04/26(月) 20:18:35
ストリーム形式で%04xなんてどう書いていいのかわからん
360デフォルトの名無しさん:2010/04/26(月) 22:21:17
今回、初めてリリースビルドしたんだが
warningがいっぺんに40個もでて来てびっくり
その中で、
dereferencing pointer '<anonymous>' dose break static-aliasing rules
とは、どんな警告?
場所はqvector.h内の
void QVector<T>::free(Data *x)
{
if(QTypeInfo<T>::isComplex){
T* b = x->array;
T* i = b + x->ize; ここを差すんだけど
コード内で2箇所ほどQVectorを使ってるけど、どこが問題なのかよく分かりません

361325:2010/04/26(月) 22:41:20
>>326
遅くなりましたが325です。
モデルを分けたのは、
Widgetにするとデータ複製が入るしなあ、と思ったのです。
実際には想定行数は1万行未満なので、
今時問題ないのかもとは思いますが……

モデルは作ったけど、とりあえず状態だし
TableWidgetを試してみます。
ありがとうございます。
362デフォルトの名無しさん:2010/04/26(月) 22:51:23
363デフォルトの名無しさん:2010/04/28(水) 15:42:43
QTabWidget で,指定したページの可視/不可視をタブごと切り替えたいのですが,良い方法はないでしょうか?
各ページは QWidget になっているので,QWidget::hide() を使ってみたらページの中味が空になるだけでした。

また QTabWidget::setTabEnabled() だとタブ上のラベルが灰色になってクリックできなくなるだけで,タブ自体は
見えてしまっています。

QTabWidget::removeTab() や QTabWidget::insertTab() を使って何とかしようとしましたが,insertTab() は
引数に挿入位置のインデックスが必要なので,タブの可視/不可視を切り替えた時に,元の順番どおりに
タブを並べるのが困難で挫折しました(タブ上のラベルも保存しておかないとならないので QHash とか
使ってゴニョゴニョやったんですが)。

お知恵を貸してください。
364デフォルトの名無しさん:2010/04/28(水) 17:02:24
曖昧すぎる
どうしたいのかをもう少し厳密に説明してくれ
365363:2010/04/28(水) 17:39:23
>>364
曖昧にならないように説明したつもりだったんですが,伝わらなかったようですね。
まず「タブ」という言葉が曖昧なようなので,QTabWidget に表示される各ページ上部の四角く
突出した部分を「タブ」と呼ぶことにします。

やりたいのは,指定したページをタブごと見えなくしたり見えるようにしたりすることです。
あるページを見えなくした場合,次のページ以降のページがタブごと詰めて表示され,一旦
見えなくしたページを再び見えるようにした場合,元の位置に挿入されるようにしたいのです
(ページの順序は常に保存される)。

以前使っていたC++ Builderではこれが普通に出来たので,Qtでも同じようにしたいのですが,
やり方が見つかりません(現在,C++ BuilderからQtにソフトを移植中)。

よろしくお願いします。
366360:2010/04/28(水) 19:03:11
struct IDPoint{
double x;
double y;
int tool;
bool fl;
};

QVector <IDPoint> m_PntAry;

こう書いてたら、先の警告がでました。
std::vectorに換えたら警告はきえました。
どうして?
367デフォルトの名無しさん:2010/04/28(水) 20:09:43
>>365
TabView
368デフォルトの名無しさん:2010/04/28(水) 20:30:07
>やりたいのは,指定したページをタブごと見えなくしたり見えるようにしたりすることです。
>あるページを見えなくした場合,次のページ以降のページがタブごと詰めて表示され,一旦
>見えなくしたページを再び見えるようにした場合,元の位置に挿入されるようにしたいのです

この部分が何を言っているのかよくわからない。
特に「見えなくしたり見えるように」というのがどういう意味なのか図に書いて説明して
369デフォルトの名無しさん:2010/04/28(水) 20:35:03
>QTabWidget::removeTab() や QTabWidget::insertTab() を使って何とかしようとしましたが,insertTab() は
>引数に挿入位置のインデックスが必要なので,タブの可視/不可視を切り替えた時に,元の順番どおりに
>タブを並べるのが困難で挫折しました(タブ上のラベルも保存しておかないとならないので QHash とか
>使ってゴニョゴニョやったんですが)。

これをやるしかないだろ
手抜きを考えずにまじめにやろう
370デフォルトの名無しさん:2010/04/28(水) 20:42:32
>>365
それそのもの、といったメソッドはなさそうです。
QTabWidgetを継承して
void MyTabWidget::setTabVisible(int idx, bool show){
this->setTabDisable(idx, show);
this->tabBar()->tabButton(idx)->setVisible(show);
}
でいいのかなぁ。
371365:2010/04/28(水) 22:15:50
>>368
> 特に「見えなくしたり見えるように」というのがどういう意味なのか図に書いて説明して

これがわからないと言われてしまうと仕方ないですね。AAなんか簡単に描けませんし。
他の方にはわかっていただいてるようですが、簡単に言うと「消したり出したり」です。
QWidget::hide() とか QWidget::show() のようなことを言っています。

ただ、消した時、それ以降のタブが左に移動して詰められるところが単純に消すのとは
異なります。
372365:2010/04/28(水) 22:24:56
>>367
QTabViewというウィジットはないようですし、ヘルプでTabViewを検索しても何も
出てきませんが...

>>369
> これをやるしかないだろ
> 手抜きを考えずにまじめにやろう

おっしゃるとおりで、頑張ってやれば出来るのはわかってるんですが、想像以上に
ややこしくて、出来てから「なぁんだ、そんな手があったのか」ってことになるかも
しれないと思って、先に聞いてみた次第です。

>>370
私もそれを試して見ようと考え始めていました。
QTabWidget::tabBar() って protected なんですね。
ポイントは、tabBar()->tabButton(idx)->hide() とやってちゃんと消えてくれるか
どうかですね。
373365:2010/04/28(水) 23:38:25
>>370
Qt Creatorでフォームに貼ったQTabWidgetを格上げしてやってみましたが、
残念ながらダメでしたorz
tabBar()->tabButton() で返される QWidget* の値が 0 になってしまいました。

そもそも tabButton() の第二引数の ButtonPosition の意味がヘルプを読んでも
不明です。これに指定できるのは QTabBar::LeftSide か QTabBar::RightSide ですが、
意味がわかりません。まぁ、どちらを指定しても結果は同じなんですが。

やはり>>369の言われるように、頑張るしかなさそうに思えてきました。
374デフォルトの名無しさん:2010/04/28(水) 23:58:24
>>372
すまそ、tabButtonはまた別の機能っぽいですね。
他にtabBarにそれらしき機能ないっぽいので、タブバーを誤魔化すのは難しそうです。
(さすがにpaintEventの再定義するのだったら、indexを管理した方が簡単そうですから)
嘘教えて申し訳ないです。
375デフォルトの名無しさん:2010/04/29(木) 00:07:06
>>374
いえ、とんでもない。ヒントいただいただけでも感謝です。

しかし、個々のタブにアクセスする方法はどうやらないみたいですね。
ご承知の通り各ページはQWidgetなんですが、じゃタブは何者?

WindowFlagsに「タブつきウィジット」ってのがあるんじゃないかと思って
調べましたが、ありませんでした。うーん。
376デフォルトの名無しさん:2010/04/29(木) 00:13:02
場合によっては、ウィジェットは全部QWidgetListに保存して変更あるごとに一旦clear()してaddTabやり直した方が楽そうですね。
アホみたいに数あるとか、頻繁に数が変わるんだったら止めた方がいいですが。

タブ名はwindowTitleとして保存すればいいですし、有効・無効はenabled/disabledを利用すれば、QWidgetの機能だけで全部できます。
tabwid->clear();
QWidget *wid;
foreach(wid, wid_list){
if(wid->isEnabled()) tabwid->addTab(wid, wid->windowTitle());
}
377デフォルトの名無しさん:2010/04/29(木) 00:22:46
>>375
タブはどうやら、QTabBarがpaintEventの再実装してやってるらしく
(内部的には知りませんが公開APIとしては)タブというクラスはないようです。
378365:2010/04/29(木) 08:16:12
>>376
いろいろ考えていただいてありがとうございます。

> 場合によっては、ウィジェットは全部QWidgetListに保存して変更あるごとに
> 一旦clear()してaddTabやり直した方が楽そうですね。
> アホみたいに数あるとか、頻繁に数が変わるんだったら止めた方がいいですが。

はい。まずはそれでやってみようかと思います。
これだったら面倒はないですね。

> タブ名はwindowTitleとして保存すればいいですし、有効・無効はenabled/disabledを
> 利用すれば、QWidgetの機能だけで全部できます。

なるほど。私は accsessibleName や QObject::property を使うことを考えていました
が、この方が簡単ですね。

ありがとうございます。あとは手を動かすのみです!

>>377
そうなんですか。それじゃ弄りにくいですね。
379デフォルトの名無しさん:2010/04/29(木) 18:48:30
ここまで書いてくれてる人のレスを流し読みしかしてないけどタブの件にレス。
タブの順番とタイトルと表示するウィジェットのポインタと表示・非表示のフラグを保持するリストを作って
タブを消す、再表示するの操作がある度に全部並べ直せばいいんでない?
380デフォルトの名無しさん:2010/04/29(木) 19:22:01
>>379
>>376さんの言っているのは、まさにそういうことです。
一応、そのパターンではうまく行きました。

現在、一度消して全部並べなおすのではない方法で
やってみています。
381デフォルトの名無しさん:2010/04/29(木) 22:25:04
QtCreatorでデバッグビルドとリリースビルドを別々のフォルダに作成することは
可能でしょうか。
382デフォルトの名無しさん:2010/04/29(木) 22:35:49
>>381
Windowsだと普通にやればそうなります。
Linuxだとそうならないらしいので、.proファイルに例えば、

CONFIG(release, release | debug) {
DESTDIR = release
}
CONFIG(debug, release | debug) {
DESTDIR = debug
}

と書いておけば良いと思います(自分では未確認ですが)。
383365:2010/04/30(金) 00:02:52
タブの可視/不可視の制御ですが、ページを一旦全消して書く直す方法を使わずにやっと
出来ました。インデックスの管理に結構難儀しました。

長いのでコードまでは書きませんが、やったことは、Qt Creatorでフォームに貼った
QTabWidgetを格上げして派生ウィジットクラスを作り、addTab()、insertTab()、remove()
、setTabText()、setTabIcon()をオーバーライドして、privateメンバとして用意した
QWidgetListで各ページのポインタ(QWidget*)を管理するようにしたり、タブ上のラベル
やアイコンを保存するようにしました(QWidgetのwindowTitleやwindowIconに保存)。
可視/不可視の管理はQWidgetのenabledプロパティでやりました(この辺、>>376さんの
アイデアを頂戴しています)。

こうしておいて、新たにsetTabVisible()関数を作り、タブを不可視にしたい場合には基底クラス
のremove()を呼び出します。タブを可視にしたい場合は、現在表示中のページをインデックス
0から見て行って、可視にしようとするタブのページより後ろのページを見つけたら、その位置に
基底クラスのinsertTab()でページを挿入します。最後まで可視にしようとするタブのページより
後ろのページが見つからなかったら、末尾に基底クラスのaddTab()でページを追加します。

もう一つ、すべてのタブが不可視の場合は、単純に可視にしたいタブのページを基底クラスの
addTab()で追加します。

こんな感じですが、これじゃ当事者以外には意味が伝わらないですねw
一応報告だけはしないといけないと思いまして...
とにもかくにも、レスいただいた皆さん、ありがとうございました。
384365:2010/04/30(金) 00:08:19
↑ remove()はremoveTab()の間違いです。スマソ。
385デフォルトの名無しさん:2010/04/30(金) 00:35:04
どうせソース貼らないんだったら
いちいち発表しなくてもいい
ここの人はみんなそれくらい分かってると思うよ
386デフォルトの名無しさん:2010/04/30(金) 01:05:44
>>385
君のレスよりは有益だ。

まるで初心者な解決法じゃなく、慣れた人っぽい解決法だから役に立つ人もいるかもしれぬ。
387デフォルトの名無しさん:2010/04/30(金) 01:22:49
>>384
QTabWidgetって仮想デストラクタ持ってないから、メモリリークしないように気をつけてね。
388365:2010/04/30(金) 08:58:43
>>387
え? そうなんですか...
ふと気が付いて調べてみたら、そもそもQWidgetのデストラクタもvirtualになってないですね。
QObjectはなってますが。

まぁ、今回作った派生クラスはデストラクタでやるべきことがないので、宣言も定義もしていません
から大丈夫なんですが、なんだかなぁ。

あとuicで作られたui_xxxxx.hの中身を見ると、格上げされた派生クラスをnewした時のインスタンス
ポインタは、基底クラスのポインタ型ではなくて、派生クラスのポインタ型の変数に代入されてます
から、一応問題はないですね。

しかしなぜデストラクタをvirtualにしないんでしょうね。何か理由があるんでしょうか。
また一つ勉強になりました。ありがとうございました。
389365:2010/04/30(金) 11:23:31
>>386
やっぱりソースがないと、情報として不足だと思いますので、Qt Users Forun Japanに添付ファイル
付きで書き込みしました。よろしかったら参考にしてください。
ttp://qtusersforum.s2.zmx.jp/forum/viewtopic.php?f=14&t=433
390デフォルトの名無しさん:2010/04/30(金) 12:47:27
>>387
>QTabWidgetって仮想デストラクタ持ってないから、メモリリークしないように気をつけてね。
持ってますよ。

>>388
>しかしなぜデストラクタをvirtualにしないんでしょうね。何か理由があるんでしょうか。
理由は↓だからです。
>QObjectはなってますが。
391365:2010/04/30(金) 12:59:38
>>390
基底クラスでvirtualになってれば、派生もvirtualになるんでしたね
思いっきり忘れていました
どうもありがとうございました
392365:2010/04/30(金) 13:06:48
>>391
何で本物の>>365でない人が>>365を名乗るんですか?
単なる間違いならいいんですが。
393392=本物の365:2010/04/30(金) 13:13:32
>>390
> >しかしなぜデストラクタをvirtualにしないんでしょうね。何か理由があるんでしょうか。
> 理由は↓だからです。
> >QObjectはなってますが。

デストラクタは継承されませんが、その場合でも基底クラスでvirtualならば派生クラス
でvirtualになるんでしたっけ? (この辺、知識があいまいです)
394デフォルトの名無しさん:2010/04/30(金) 14:43:31
>>393
そうです。
395393:2010/04/30(金) 16:26:18
>>394
ちょっと手元で実験してみましたが、確かにおっしゃるとおりでした。
また一つ勉強しました。ありがとうございます。
396デフォルトの名無しさん:2010/04/30(金) 23:59:17
>>390
基底クラスがデストラクタのvtbl持ってるから、派生クラスもvtblもってることになるって認識でいいのかなぁ?
397デフォルトの名無しさん:2010/05/01(土) 04:09:33
スレ違い
398デフォルトの名無しさん:2010/05/01(土) 11:23:51
tabbox内のタブをtabboxの横幅いっぱいに拡大したいんだけどこれってどこで設定すれば?っていうか無理なのかしら
┌─┐──┐──┐──────┐
└──────────────┘ タブ3枚、右側は空白

この状態を
┌────┐────┐────┐タブ3枚、横幅いっぱい
└──────────────┘
こうしたいんだが・・・
399デフォルトの名無しさん:2010/05/01(土) 11:39:24
>>398
QTabBarのexpandingは違うかなぁ……
400デフォルトの名無しさん:2010/05/01(土) 11:55:36
>>399
TabBoxだけじゃなくてTabBarもあるんですね…無事対応出来ました、即レス感謝です!
401デフォルトの名無しさん:2010/05/01(土) 14:02:12
細かいハナシで申し訳けないのですが、、、

QtCreatorのヘルプで本文中の文字列を検索した際のハイライトの色ってどこかで変更出来ないでしょうか?
薄いグレーでで毎回見つけるのに苦労してます。
402デフォルトの名無しさん:2010/05/01(土) 19:30:07
コマンドラインオプションを解析する方法を教えてください
403デフォルトの名無しさん:2010/05/01(土) 19:58:46
>>402
QCoreApplication::arguments() を使うのもよし、普通にargc、argvを使うのもよし。
404402:2010/05/01(土) 20:13:39
>>403
thx
405デフォルトの名無しさん:2010/05/02(日) 07:21:16
>>401
俺も変更したいと思って探したけど、残念ながらないみたい。
406デフォルトの名無しさん:2010/05/02(日) 08:27:05
薄すぎw
407デフォルトの名無しさん:2010/05/02(日) 11:10:17
最初気が付かなくてなんで検索できないのか悩んだw
408デフォルトの名無しさん:2010/05/02(日) 15:46:23
javaのIDEは左側に、メソッド一覧が表示されるけど
qt-creatorは上にしか表示できないの?
409デフォルトの名無しさん:2010/05/02(日) 16:34:34
サイドバーにアウトラインはめっちゃ欲しい
なんでないんだろか
410デフォルトの名無しさん:2010/05/02(日) 19:11:58
IME入力の問題なんとかしてくれないかなー
TableWidgetにかな入力するのがトロいし時々落ちるし・・・
これじゃぁ人に使ってもらうには渋いよなぁ・・
みなさんどう回避してるんですか?
411デフォルトの名無しさん:2010/05/02(日) 19:19:12
lineeditは知ってたけど、テーブルもそうなのか
俺のレベルじゃ原因の特定すれできん
412デフォルトの名無しさん:2010/05/02(日) 19:33:11
別にWindowsのバージョン依存じゃないんだよなあれ
XPでもVistaでも7でも平等に不安定だし
413デフォルトの名無しさん:2010/05/02(日) 19:42:43
Qtの中の人ここ見てるかなぁ?
ぜひともWindows版での日本語入力を改善してください
とりあえずLineEditとTabeWidget
まさか、商用版は問題ないとかじゃないよね?
414デフォルトの名無しさん:2010/05/02(日) 20:10:19
コードからMS-IMEの状態を切り替える(かな→英数など)ことはできますか?
415デフォルトの名無しさん:2010/05/02(日) 20:11:16
へー本当だ
今まで気づかんかったけどIME入力にすると
LineEditが不自然に遅くなるne @WindowsXP SP3
416デフォルトの名無しさん:2010/05/02(日) 20:16:40
まだ誰もバグ報告してないみたいだな
417デフォルトの名無しさん:2010/05/02(日) 20:21:54
みんな何の用途にQt使ってるの?www
QtってGUI用ライブラリでしょ?www
418デフォルトの名無しさん:2010/05/02(日) 20:58:02
TextEditも文字が消えなくなるバグあるし、OpenTypeフォントのバグもどうにかしてもらいたいもんだ
自分でソース見てもさっぱり分からん
419デフォルトの名無しさん:2010/05/02(日) 21:21:44
qt3からqt4にバージョンが上がるときに、qtは大幅な書き直しがあったの?
420デフォルトの名無しさん:2010/05/02(日) 21:26:57
日本語周りがそんな状態なのに長らく放置されてるってことは
Win版で日本語で商用ライセンスで使ってる開発者ってほとんどいないってことなんですかね?
じゃなかったら苦情出てるはずだと思うんだけど・・
421デフォルトの名無しさん:2010/05/02(日) 21:36:32
もうWindowsXP使わないから、Nokiaに送ったら改善してくれるかな
422デフォルトの名無しさん:2010/05/02(日) 21:45:59
知らなかった。
そんなに目立つバグがあるんかい。Qt。
423デフォルトの名無しさん:2010/05/02(日) 21:57:14
IME周りの不安定さはこのスレでも何度か指摘されてるはず
424デフォルトの名無しさん:2010/05/02(日) 21:57:29
425デフォルトの名無しさん:2010/05/02(日) 22:04:15
Creator1.3.1なんだけど
置換ってつかえる?
検索はできるんだけど、置換のやり方が分かりません
426デフォルトの名無しさん:2010/05/02(日) 22:24:43
Qt Creator+Designer で簡単なテストプロジェクト作っているのですが
単に slider からから得られる値を加工した値(例えば10倍するとか)
を lcdNumber に表示させることを Designer の機能をフルに使って
タイプして入れる量を最低で作ろうとしています。

まず,単に slider の返す値を表示させるアプリケーションであれば
マウスでポトペタ,edit signal/slot でつないで Build, Run で
全くタイピングしないで作れます。

これに関数を一個挟むだけなのですが,これを挟む箇所が見えません。
編集できるのは main.cpp, mainwindow.h,.cpp,.uiと<プロジェクト名>.pro
だけですがここには slider や lcd は無いので挟めません。
slider, lcd を promote すると今度はそれらのコードが無いために compile
error となります。

実質的に変換の関数を1個書けば作れるはずだと思うのですが,どうしたら良
いのでしょうか?

いろいろ tutorial のサイト見たのですが,実質的にコードを全部手書きする
感じで本来の Designer の機能を使い切っていないように見えます。

こういったことができれば色々作る見通しができるように思えます。
Qt初心者でレベルの低い質問で申し訳ありません。
427デフォルトの名無しさん:2010/05/02(日) 22:26:21
>>425
Ctrl+Fで入力枠が上下に2つ出るじゃろ?
下のほうが置換えや
428デフォルトの名無しさん:2010/05/02(日) 22:27:21
>>425
Ctrl+Fはいけるけど
Ctrl+Shift+Fの方はないっぽいね
429デフォルトの名無しさん:2010/05/02(日) 22:53:36
>>414
これはネイティブAPIじゃないと無理なんでしょうか・・・
430デフォルトの名無しさん:2010/05/02(日) 23:03:56
>>418
英語でバグ報告するのが大変なら、ここで詳しく報告してみたら?
誰か気が向いた人が報告するかも知れないし、もちろんしないかも知れないが

■バグトラッカー入力事項
・要約(1行で)
・Qtバージョン
・関連するコンポーネント(Widgets、Phnon、QtScript、OpenGLなど。複数可)
・バグ報告本文(症状と再現方法。簡潔な再現コードがあればそれも)
・再現環境
 OS:Windows Vista Home SP2, MacOS X v10.6.3, ubuntu 9.10 など
 その他(例えばIMEならMS IME Standard 2002 ver 8.1、Google日本語入力0.10.288.0など)
431デフォルトの名無しさん:2010/05/03(月) 00:07:42
>>429
InputMethodで検索するくらいのことはしようよ。
QWidget::setAttribute(Qt::WA_InputMethodEnabled, true)
432デフォルトの名無しさん:2010/05/03(月) 00:13:59
>>431
thx
よく見つけられるなぁ・・・
QtCreatorではInputMethodでは見つけられなかったし
ぐぐってもsetAttributeは見つけられなかった・・orz
どうやって検索したのか教えてください

どうも頭が.netになってるから探す場所がそもそも見当ちがいなのか・・・
433デフォルトの名無しさん:2010/05/03(月) 00:27:08
>>432
QtAssistantのインデックスのところにinputmethodって入れてみたらsetInputMethodEnabledってのが見つかって、
そこ見たら
Use setAttribute(Qt::WA_InputMethodEnabled, enabled) instead.
って書いてあった。
434デフォルトの名無しさん:2010/05/03(月) 00:44:41
>>433
なるほど。探してくれてありがとうございます。
どうもC#的な構文の発想が抜け切れておらず・・・・ですいません。助かった。
435425:2010/05/03(月) 07:58:04
>>427 428
ありがとう
Ctrl+Shift+Fの方ばかり探してた
436デフォルトの名無しさん:2010/05/03(月) 08:09:42
便乗質問だけど、webkit を使って表示したwebページでのテキスト入力エリアで
3つ以上の文節の変換(例えば テストテストテスト)を行うとクラッシュするんだけど
これはどう回避したらいいのでしょうか?

webkit が生成するテキスト入力エリア全てに以下のメソッドを呼ぶの?
QWidget::setAttribute(Qt::WA_InputMethodEnabled, true)
437デフォルトの名無しさん:2010/05/03(月) 08:23:27
Webkitのクラッシュの話は前も指摘されてたけど
やっぱり原因不明だから直るまで待つしかないと思う
一応バグレポートで報告済みで、すでに開かれてるみたいだし
438デフォルトの名無しさん:2010/05/03(月) 09:11:37
>>418 >>430
日本語入力のバグなら日本で Qt の商売をしている SRA にバグ報告する方が
早いかも。
誰か SRA のサポートや講習会を受けている人がいたら連絡してみては?
(たぶん、SRA の人もこのスレを見ているだろうとは思うけれど…)

ttp://www.sra.co.jp/qt/point/index.html#n004
>SRA は Nokia, Qt Software のサポートに加えて、日本語による時差の
>無いローカルサポート窓口、日本語環境に特化した問題の迅速な解決支援、
>カスタムトレーニングや開発支援サービス等を提供します

>問題の内容によっては、SRA のサポートの方が対応が早い場合もあります。
>特に、日本語特有の問題等が生じた場合には、どうしても
>Nokia, Qt Software の技術者だけでは、不具合内容の確認が困難となります。
>そのような場合には、Nokia, Qt Software が対策を行う前に、弊社が
>先行で暫定パッチを作成して提供することもあります。

この問題の暫定パッチが SRA の顧客「だけ」には提供されていたりしてw
439デフォルトの名無しさん:2010/05/03(月) 09:17:05
そのLineEditとIMの組み合わせで遅くなるバグはlinux版4.6.2でも確認したよ
とりあえず俺は4.5に落した上で4.7待ちにすることにした
440デフォルトの名無しさん:2010/05/03(月) 09:31:57
>>439
Linuxではバージョン落とせばいけるのか
つことはやっぱバグとみていいのか
仕様なのかと思ってたw
441デフォルトの名無しさん:2010/05/03(月) 11:50:32
SRA の人はこのスレを見ていない
442デフォルトの名無しさん:2010/05/03(月) 11:58:40
Windows 版 4.5.1 使ってますが無問題です
443デフォルトの名無しさん:2010/05/03(月) 12:05:48
linuxのqtはxlibを叩いているんですか?
444デフォルトの名無しさん:2010/05/03(月) 12:23:31
日本の今の現場の状態だと、IT業界に先はないだろ。
どんどん人材を消耗するだけ消耗して使い捨て、いっつも現場は新人だらけ。
スパゲティソースが残るだけで熟練した技術なんて絶対に蓄積しないよ。
最近は何でもかんでも技術の標準化が進んでるから
「技術は○○が握ってる」とかいうことはあまりない。
むしろ日本勢が旧態依然とした「独自技術」に拘って
ノロノロと研究してる間に中韓みたいなところから標準技術を組み合わせただけの
製品が出てきて市場を取られるんだよ。
丸投げピンハネがはびこっている間は欧米には勝てない。
445デフォルトの名無しさん:2010/05/03(月) 12:24:38
複数スレを跨ぐコピペって報告した方が良いのかな
446デフォルトの名無しさん:2010/05/03(月) 15:43:20
>>445
頼むわ
447デフォルトの名無しさん:2010/05/03(月) 16:16:50
>>441
Qt Users Forum Japanなら見てるし書き込んでる。
ttp://qtusersforum.s2.zmx.jp/forum/
448デフォルトの名無しさん:2010/05/03(月) 19:52:18
今、思ったんだけど
signalとslotって関数ポインタを隠蔽しているだけなのか?
449デフォルトの名無しさん:2010/05/03(月) 19:57:06
450デフォルトの名無しさん:2010/05/03(月) 21:04:15
>>448
connect() のソース読んでみると、いろいろわかっていいぞ
451デフォルトの名無しさん:2010/05/03(月) 21:25:30
円独歩安だな
他はどこも動いてないのにw
452デフォルトの名無しさん:2010/05/03(月) 21:26:19
誤爆失礼
453デフォルトの名無しさん:2010/05/03(月) 23:52:18
IME 遅い site:qtusersforum.s2.zmx.jp - Google 検索
http://www.google.com/search?hl=ja&lr=lang_ja&ie=SJIS&oe=SJIS&q=IME+%92x%82%A2+site%3Aqtusersforum.s2.zmx.jp

日本語入力 遅い site:qtusersforum.s2.zmx.jp - Google 検索
http://www.google.com/search?hl=ja&inlang=ja&ie=Shift_JIS&oe=Shift_JIS&q=%93%FA%96%7B%8C%EA%93%FC%97%CD+%92x%82%A2+site%3Aqtusersforum.s2.zmx.jp&lr=lang_ja

いずれも一致する情報は見つかりませんでした。

tableWidget, lineEditだけでなく
textEditも、debugビルドだとちょっと遅いですね。
使えるのはplainTextEditだけかも。。。。
454デフォルトの名無しさん:2010/05/04(火) 02:02:40
VS2010でコンパイルする方法はありますか?
ぐぐってもいい情報が出てこない
455デフォルトの名無しさん:2010/05/04(火) 07:04:20
456デフォルトの名無しさん:2010/05/04(火) 09:51:50
まだ予定に入ってるだけか…。
457デフォルトの名無しさん:2010/05/04(火) 10:10:23
まだ出たばっかじゃん
458デフォルトの名無しさん:2010/05/04(火) 10:13:14
Betaは相当前から出てるが
459デフォルトの名無しさん:2010/05/04(火) 11:27:08
qt-creatorの赤の波線どうにかして消せないの?
邪魔くさいんだけど
460デフォルトの名無しさん:2010/05/04(火) 14:38:53
文法間違ってると出る赤の波線じゃないの?それ。
461デフォルトの名無しさん:2010/05/04(火) 14:40:24
書いてる途中なのに出てくるのはちょっと邪魔ではあるなぁ。
設定も見あたらないし、消せないのかね?
462デフォルトの名無しさん:2010/05/04(火) 15:38:05
あるlineEditに入力されたアルファベットを小文字でも、すべて大文字に
したいんですが、可能ですか?
463デフォルトの名無しさん:2010/05/04(火) 16:03:18
>>462
QLineEdit *le;
QString t = le->text().toUpper();
464デフォルトの名無しさん:2010/05/04(火) 16:19:42
465デフォルトの名無しさん:2010/05/04(火) 16:34:55
大文字に変えるだけならQLineEdit::textChanged使うのが一番簡単じゃないかな
466デフォルトの名無しさん:2010/05/04(火) 17:21:28
OS(Windows)のAPIを使うにはどうやるんでしょうか?
467デフォルトの名無しさん:2010/05/04(火) 17:56:11
>>466
#if defined(Q_OS_WIN)
#include <Windows.h>
#endif
468デフォルトの名無しさん:2010/05/04(火) 21:00:31
>>465
一回余分にスロットが呼ばれるのでは。
469デフォルトの名無しさん:2010/05/04(火) 21:17:37
1回くらい気にしないか、QObject::blockSignalsを使うか
470デフォルトの名無しさん:2010/05/05(水) 10:57:07
>>467
お!できました。
ありがとうございます。
471462:2010/05/05(水) 11:21:56
QEventFilterのサンプルをまねて
bool MainWindow::eventFilter(QObject *obj, QEvent *ev)
{
if(obj == ui->lineEdit)
{
if( ev->type() == QEvent::KeyPress )
{
QKeyEvent *keyEvent = static_cast<QKeyEvent*>(ev);

keyEvent->text().toUpper();

return true;
}else{
return false;
}
}else{
return MainWindow::eventFilter(obj, ev);
}
}
としてみたんですけど
lineEditに入力できなくなりました。
ヘルプ
472デフォルトの名無しさん:2010/05/05(水) 12:48:05
サンプルって、"Ate key press"ってのをそのまま写したの?
Key Pressを食うサンプル写したら、そりゃあ食われちゃうよ。

ヒント: eventFilterはtrueを返すとイベントはフィルタリングされたとして、無視される。
     falseを返すとフィルタリングされなかったとして、通常どおり扱われる。

ところで、これってeventfilter使うのは適切なのか?
使うとすればイベントを消して再送出になると思うけど、
それだったらkeyPressEventの再実装の方が簡単な気がする。
473デフォルトの名無しさん:2010/05/05(水) 13:09:34
>>472
>>465の方法が簡単で確実。
474471:2010/05/05(水) 15:09:05
>>472
あぁ、そうだったんですね。分かりました。

>>それだったらkeyPressEventの再実装の方が簡単な気がする。
え、そんなのがあったんですか。
また、勉強してみます。

475デフォルトの名無しさん:2010/05/05(水) 22:33:26
x64 環境にインストールして試してみてる
x86 で作ったいくつかのプロジェクトはそのまま qmake/make も正常に出来て動作した
あるプロジェクトだけ make は正常だったのに実行すると再現性のある場所で必ず落ちる
どうも qDebug() が怪しいみたいだ
もう少し最小限のテストプログラムで同じ操作で落ちるかどうか試してみよう
476デフォルトの名無しさん:2010/05/06(木) 09:27:22
QtCreator1.3.1でフォームデザイナの画面にヘルプを表示した後に
ヘルプを閉じるとオブジェクトブラウザとプロパティシートが
幅が狭くなったまま戻らない問題、改善してくれると有難いんだが・・
それより、VSやEclipseみたいな動作のドックウィンドウになって欲しい・・
477デフォルトの名無しさん:2010/05/06(木) 09:41:13
ttp://codepad.org/9OYfLai8
QFutureの辺りを読んでこのようなコードを書いたのですが
multの終了時にfが呼び出されません
なにがおかしいのでしょうか?
478デフォルトの名無しさん:2010/05/06(木) 09:41:55
あとエディタをタブ式にしてほしい
多段タブで
479デフォルトの名無しさん:2010/05/06(木) 09:57:09
>>462
Validatorを使うといいよ
480デフォルトの名無しさん:2010/05/06(木) 10:35:16
>>478
同意
Ctrl+Tabでも切り替えはできるけど
コンボボックスって頻繁に操作するには面倒だよね
481デフォルトの名無しさん:2010/05/06(木) 10:49:30
左下の小さいウィンドウを『開いているドキュメント』に設定すればいい
多段タブより見やすいし場所取らないし便利だよ
482デフォルトの名無しさん:2010/05/06(木) 11:16:18
>>481
thx
そういうことができるのか
シングルクリックで切り替わるから楽だね
483デフォルトの名無しさん:2010/05/06(木) 12:25:26
左にあるプロジェクトとかを右にもってくるにはどうすればいいの?
484デフォルトの名無しさん:2010/05/06(木) 21:32:59
QStringとstringはどのようにすれば変換できるのですか?
485デフォルトの名無しさん:2010/05/06(木) 21:40:56
toStdString
486484:2010/05/06(木) 21:44:24
>>485
thx
487デフォルトの名無しさん:2010/05/07(金) 00:31:03
>>477
return app.exec();
488デフォルトの名無しさん:2010/05/07(金) 00:49:25
>>487
ありがとうございます
動作しました
489475:2010/05/07(金) 03:24:28
やはり qDebug() が糞だった
490デフォルトの名無しさん:2010/05/07(金) 10:11:57
>>489
どのように
491デフォルトの名無しさん:2010/05/07(金) 10:22:41
qDebugの存在自体知らないので、kwsk教えて欲しいw
492デフォルトの名無しさん:2010/05/07(金) 10:49:51
493475:2010/05/07(金) 11:09:58
>>490
すみません治っちゃいました

Makefile と debug / release ディレクトリ全部消してから
qmake / make で作り直したら x64 でも普通に動きました orz

qDebug() のせいと言い切ったのは早計でしたが
何かがおかしいようです(ソースは同じのを元に make しました)

っていうか mingw は 32bit 用のをそのまま x64 上で使っているだけなので
バイナリが混ざってたとかいうのが原因とも思いにくいのですが・・・
494デフォルトの名無しさん:2010/05/08(土) 09:46:18
Fedora 9 QtCreator1.3.1
QFileDailog::getOpenFileNameで開いたダイアログから、ネットワークの
共有ファイルを開くには
495デフォルトの名無しさん:2010/05/08(土) 10:29:22
>>477
app.exec()
496デフォルトの名無しさん:2010/05/08(土) 12:10:57
> 494:
やってみたところでは、OSの方でmountしないと無理っぽい。
497494:2010/05/08(土) 12:34:51
>>496
smbclientをインストールしてfstabでcifsを設定してsystem(mount /mnt/XXX);
しているので/まで上がってから/mntをたどれば開けるんですが、Nautilasみたいに
ネットワークを開くことはできないものでしょうか?

498デフォルトの名無しさん:2010/05/08(土) 21:10:58
>>497
NautilasでなくてNautilus。
デスクトップ環境とツールキットは別物。KDEと同じように自分で処理する。
499497:2010/05/08(土) 22:54:56
>>498
わかりました。
Windows環境でも、マイネットワークはでないのかな?
500デフォルトの名無しさん:2010/05/09(日) 00:34:07
テキストボックスで、
改行なしの1行ボックスにしたいのですが、
どうすればよいのでしょうか。
(エンターおすと改行されてしまう)
qt designerを使っています。
501デフォルトの名無しさん:2010/05/09(日) 01:00:43
QLineEdit ではだめなのか?
502デフォルトの名無しさん:2010/05/09(日) 04:04:28
VS2010でQtコンパイルしてみたひといる?
503デフォルトの名無しさん:2010/05/09(日) 07:54:54
>>499
Windowsだと、QFileDialog::getOpenFileName()のoptions引数に
QFileDialog::DontUseNativeDialogを指定しなければ、Windows標準の
「ファイルを開く」ダイアログが出るから、マイネットワークは選択できる。

QFileDialog::DontUseNativeDialogを指定してQt固有のダイアログを
表示させるとマイネットワークは選択できない。
504デフォルトの名無しさん:2010/05/09(日) 08:34:54
>>500
イベントフィルターで、リターンとエンターを無視すればよいです。
505デフォルトの名無しさん:2010/05/09(日) 17:02:36
>>200読んでちょっと試してみたけど、2chブラウザ作る用途ならまだQTextBrowserの方が速いな
QWebViewは日本語文字列の描画が極端に遅くて、レス1000個描画するのにQTextBrowserの倍くらい時間がかかる
開発はマルチバイト文字軽視し過ぎなんじゃないのか・・・
506デフォルトの名無しさん:2010/05/09(日) 19:28:17
>>505
>開発はマルチバイト文字軽視し過ぎなんじゃないのか
マルチバイトが不要な人達が開発しているから、どうしても後付けだからね。
507デフォルトの名無しさん:2010/05/09(日) 20:00:58
ファイルをアップロードしたいので
ttp://www.qtcentre.org/threads/22435-QNetworkRequest-file-upload-please-help
の最後のレスを参考に
ttp://codepad.org/OnrYEyQh
としてみたのですがアップロードできません
なにが不味いのかわかりますでしょうか?

cgiの方はhttp://codepad.org/7GOdZ9UDです
508デフォルトの名無しさん:2010/05/09(日) 22:58:11
アップロードできないとは具体的にどうなるの?
エラー落ちするのか、リクエストが送信されないのか、ファイルが保存されないのか、それすら分かってないのか
コード貼るのは偉いけど、エラー内容は各自で調べてくださいって言われても正直面倒だよね
509デフォルトの名無しさん:2010/05/09(日) 23:09:54
>>508
すいませんでした
とくにエラーもなく終了します
wiresharkで監視したところPOSTリクエスト自体は発行されていました

ちなみにcgiが動作はブラウザで確認しています
510デフォルトの名無しさん:2010/05/09(日) 23:35:27
ここが2択を強いる糞ライブラリのスレか
511デフォルトの名無しさん:2010/05/09(日) 23:56:49
>>509
じゃあブラウザからアップロードした時のリクエストと、
>>507のプログラムからアップロードした時のリクエストを比較すればいいんじゃないかな
512デフォルトの名無しさん:2010/05/11(火) 12:44:48
>>507
boundaryの使い方がめちゃくちゃ
513デフォルトの名無しさん:2010/05/14(金) 18:50:44
QtCreator って、ファイルを16進ダンプで表示できない?
514デフォルトの名無しさん:2010/05/14(金) 19:44:57
tableViewWidgetでGUIから要素を変更とかできるんでしょうか?
http://www.saltycrane.com/blog/2007/06/pyqt-42-qabstracttablemodelqtableview/
ここのサンプルから勉強してるんですが、要素の変更ができないっす。。。
515デフォルトの名無しさん:2010/05/14(金) 20:28:29
ubuntuでQt creatorを使って書いたプログラムをWindows環境に持ってきたんだけど、2点ほど困ったので教えてください。
MinGW版です。

・QScrollBarのmaxとminの差が大きい時、スライダを大きく動かそうとすると、マウスの動きに追随してこない。
 マウスが0.5秒くらい止まって初めてスライダがその位置に飛んでくる感じ。
 trackingはonにしてあるし、Ubuntuの時は感じなかったのだけど。

・アイコンが表示されない。
 新しくプロジェクトを作っても駄目なので、何かの設定がおかしいのだとは思いますが・・・。
516デフォルトの名無しさん:2010/05/14(金) 21:01:03
>>513
プロジェクトの中のファイルを右クリックして エディタを指定して開く > Binary Editor
517513:2010/05/15(土) 09:28:43
>>516
ありがとうございました。
でも、ファイルデータの内容を確認したかったんですが、これはプロジェクト内の
テキストしか表示できないんですね。残念
518デフォルトの名無しさん:2010/05/15(土) 09:47:01
>>514
むり
519デフォルトの名無しさん:2010/05/15(土) 12:39:52
520デフォルトの名無しさん:2010/05/16(日) 02:39:54
QListIteratorについて質問させてください。
1, 2, 3, 4という要素が入ったリストを->キーを押すたびに1から順に、もしくは<-キーで戻ったところの1つ次から表示したいのですが
進んだ後に<-で戻る、もしくは戻った後に->で進もうとすると1回目がうまくいきません(<-で戻って表示したところと同じところがもう一度表示される)

-> 1が表示される
-> 2が表示される
-> 3が表示される
<- また3が表示されてしまう
<- 2が表示される
(進むのにQListIterator::next()、戻るのにQListIterator::previous()を使用しています。)

直前にどちらを使ったかでフラグを立てることで一応うまく行くと思うのですが、もっとスマートな方法はないでしょうか。よろしくお願いします。
521デフォルトの名無しさん:2010/05/16(日) 03:03:44
->のとき
表示; next();
<-のとき
previous(); 表示;

じゃだめ?
522520:2010/05/16(日) 03:36:59
>>521
ありがとうございます。
ただ、next()やprevious()を使わないとデータを取り出せないようなのでそれは出来ないみたいです・・・
523デフォルトの名無しさん:2010/05/16(日) 04:06:05
JavaスタイルイテレータよりもC++スタイルイテレータ使ったほうが良いだろうね。その場合は。
524520:2010/05/16(日) 15:16:48
>>521, 523
STLスタイルを使用することで解決出来ました。
ありがとうございました。

表示(i.previous())」を「i.previous; 表示(i.previous()); i.next()」に置き換えることでJavaスタイルでも一応うまくいきました。
525デフォルトの名無しさん:2010/05/16(日) 21:41:20
QtCreatorに既存のクラスに新しくメソッドを追加するコマンド等はありますか?
526デフォルトの名無しさん:2010/05/16(日) 22:07:23
何がしたいのかもう少し詳しく書かないと、質問の意図がわからん。
527デフォルトの名無しさん:2010/05/17(月) 01:34:29
VCのクラスデザイナみたいなものを期待しているなら
標準では存在しない
528デフォルトの名無しさん:2010/05/18(火) 20:55:46
qt4でテトリスを作りたいんだけど、格子状の線を引きたい
どのクラスを使えばできるの?
529デフォルトの名無しさん:2010/05/18(火) 21:25:17
530デフォルトの名無しさん:2010/05/18(火) 22:00:02
Qt Creatorでビルドする際、コンパイル前に任意のコマンドを実行させる方法があったら
教えてください。リンク前なら、.proファイルでQMAKE_PRE_LINKを設定しておけば
できるようですが、コンパイル前に実行するコマンドの指定というのは、qmake Variable
Referenceを探しても見つけられませんでした。

具体的に何をやりたいのかと言うと、TortoiseSVNのSubWCRevコマンドで、ソースコード
にSubversionのリビジョン番号を埋め込んでからコンパイルしたいのです。
531デフォルトの名無しさん:2010/05/19(水) 10:40:40
>>530
プロジェクト
ビルドステップを追加
順番age
532530:2010/05/19(水) 20:15:06
>>531
おー、そっちでしたか。そちらには発想が行きませんでした。
ありがとうございました。
533デフォルトの名無しさん:2010/05/21(金) 00:35:46
これってVS2010で使える?
534デフォルトの名無しさん:2010/05/21(金) 08:12:11
FAQ
535デフォルトの名無しさん:2010/05/21(金) 15:57:23
536デフォルトの名無しさん:2010/05/22(土) 02:15:17
Qt Creatorを英語化するのってどこだっけ?
ヘルプが英語なのにメニューが日本語だと逆に探せねぇorz
537デフォルトの名無しさん:2010/05/22(土) 06:28:59
Qt Creator のインストールディレクトリ以下の、share/qtcreator/translations の中にある
qtcreator_ja.qm を一時的にリネーム(先頭に _ 付けるとか)してやると英語になるよ。
もしかすると qt_ja_JP.qm もリネームする必要があるかも。
538デフォルトの名無しさん:2010/05/22(土) 10:02:46
>>537
さんくす。
539デフォルトの名無しさん:2010/05/25(火) 20:33:20
540デフォルトの名無しさん:2010/05/28(金) 09:39:03
test
541デフォルトの名無しさん:2010/05/29(土) 22:50:06
Creator の使い方を学ぼうとしているのですが
Qt Creator 1.0.0 (Linux, 64bit, Ubuntu)をで class を (たとえば
QLineEditを継承して)promote しても何もファイルは自動生成されません
web で調べた感じだと自動生成されるはずみたいなのですが実際どうなのでしょうか?
promote する際のメニューには自動生成に関係するものは無さそうです

自分で手書きで class 定義を加えると
no matching function call to xxx::xxx(QWidget*&)
といったエラーメッセージが出てしまいます(xxxは継承した class 名)
ただこれを全部手書きで加える必要があるのもIDEとしておかしい気がします

多分使い方を間違っているのではないかと考えているのですが



542デフォルトの名無しさん:2010/05/29(土) 23:08:49
なんで 1.0.0 なんて古いのをつかってるんだ?
まずは 1.3.1 か 2.0-beta1 を試してみれば。
543デフォルトの名無しさん:2010/05/30(日) 00:39:36
どうもありがとうございます
もう安定しているだろうと思ってレポジトリにあったものを使っていました
本家のを入れ直してみます
544デフォルトの名無しさん:2010/05/30(日) 08:23:04
>>541
Qt Creator1.3.1でも自動生成はされないよ。

[格上げ](promote to)をやっておいてから、メインメニューの[ファイル]⇒
[ファイル/プロジェクトの新規作成]で[C++ クラス]を選択して、ウイザードで
必要な情報を記入して進めば、ソースとヘッダーファイルが作成されるから、
後は手書きするしかない(1.3.1はGUIが最初から日本語化されてるから日本語
GUIの表現で書いてる)。

自動作成してくれてもいいと思うのは同意だけど、やってみるとそんなに面倒じゃ
ない。
545543:2010/05/30(日) 15:16:53
どうもありがとう
1.3.1にしてもやはり自動生成されないので何を間違えたのかと悩んでいました
クラス生成で Widget から継承してうまく行きました
なんか感じが少し分かった気がします

Trolltech の docs も結構見たんですが,意外と Creator を最大限
に利用する方法って見つからないんですよね
ガシガシ書くだけなら例はあるんですがせっかくの IDE なので「正しく」使いたいなと思って
546544:2010/05/30(日) 21:11:42
>>545
どういたしまして。

> Trolltech の docs も結構見たんですが,意外と Creator を最大限
> に利用する方法って見つからないんですよね

確かに。何となく「Qt Designerのマニュアルを見ろ」みたいな感じで...
それでも見つからないのもあるね。

例えば今回の「格上げ先を指定」のダイアログの中にある、「グローバル
にインクルードする」というチェックボックスの意味がわからないし、説明も
どこにも見当たらない。

どなたか知ってます?
547デフォルトの名無しさん:2010/05/30(日) 23:33:44
>>546
"〜" か <〜> の違いです。
548546:2010/05/31(月) 21:23:57
>>547
サンクス。それだけなんだぁ。
何か間違い探しみたい。
549デフォルトの名無しさん:2010/06/01(火) 23:06:05
1 :名無しさん@どっと混む:2009/12/14(月) 20:45:15 ID:unnBMLw10
高根社長のSM趣味サイトMaskRと
副業のSMクラブ銀座プレジス・動画配信専門リアルミストレスばかり語られるが
高根社長の本業コムラッドについても語ろう

銀座プレジス
http://www.prezis.jp/top.htm

MaskR
http://maskr.com/

プレジスを語ろう
http://set.bbspink.com/test/read.cgi/sm/1246009466/

動画配信専門リアルミストレスってどうよ?
http://set.bbspink.com/test/read.cgi/sm/1249183350/

9 :名無しさん@どっと混む:2010/01/03(日) 18:27:00 ID:RSEbBiG0O
高値はもう大麻やめたの?

10 :名無しさん@どっと混む:2010/01/04(月) 05:15:29 ID:A3l1qdv+O
タカネ社長ってどうやってばれないように脱税してんだろ?
億単位で脱税して億ション暮らしなんて凄いよな
監査役の奥さんもグルなのか?

12 :名無しさん@どっと混む:2010/01/05(火) 01:47:06 ID:KAHwqMrBO
株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade
株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade

13 :名無しさん@どっと混む:2010/01/05(火) 01:47:47 ID:KAHwqMrBO
高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉
550デフォルトの名無しさん:2010/06/01(火) 23:06:51
18 :名無しさん@どっと混む:2010/01/07(木) 09:26:06 ID:5NL2jyJpO
高根はMASKRでレイプ仲間募集するのやめたんだね
mixiで募集中か

21 :名無しさん@どっと混む:2010/01/10(日) 19:36:45 ID:FdRwgXUTO
風俗店やってるってことは高根社長は暴力団と繋がってるんだね
どこの組にいくらみかじめ料払ってるんだかw

23 :名無しさん@どっと混む:2010/01/23(土) 03:43:12 ID:Pdcv8aq0O
タカネ社長未成年に酒飲ませてレイプ

24 :名無しさん@どっと混む:2010/01/29(金) 18:16:06 ID:zMwtdkIsO
高根社長のレイプ趣味は病気だから治らない

25 :名無しさん@どっと混む:2010/02/01(月) 01:39:32 ID:uaH5mo2nO
前科者

26 :名無しさん@どっと混む:2010/02/09(火) 00:52:46 ID:JwGmN2cG0
>>25
容疑はレイプ?買春?管理売春?公然猥褻?薬物?脱税?詐欺?傷害?

28 :名無しさん@どっと混む:2010/02/14(日) 22:56:30 ID:lykq8x1VO
どこかのスレで人を死に追いやったと書いてあった

33 :名無しさん@どっと混む:2010/03/04(木) 12:49:19 ID:J8YxaRGO0
金がないって脱税がばれて追徴課税でも来たか?
せっかく脱税の隠れ蓑にプレジス営業してるのに残念だったなw

38 :名無しさん@どっと混む:2010/03/12(金) 21:09:53 ID:L0W4+sivO
首吊り首絞めプレイ大好き高根英哉
551デフォルトの名無しさん:2010/06/01(火) 23:08:00
53 :名無しさん@どっと混む:2010/05/17(月) 13:14:06 ID:E/7OZVtz0
>>18
高根英哉blogでレイプ仲間募集中

私とともにマスクの女どもを弄ぶ仲間を募集する
急に思いついたら連絡をして、集まれるような仲間だ
だから、複数名募集するし、いついつという日時があるわけでもない
条件は以下のとおりだ
    ・SMを実践している、または興味がある
    ・マスクを用意できる
    ・都内でイベント参加できる
    ・イベント内容およびこの仲間を通じて知りえた情報を口外しない
    ・成人男子である
    ・携帯電話および携帯メールアドレスを私に公開できる
    ・酒が好きである
希望者は私宛にメールを送ってほしい
全員が参加できるわけでもないので、こちらの選択に任せてもらう
なるべく想いを書いてもらうほうがわかりやすいし
経験や顔写真も歓迎。
[email protected]
[email protected]
[email protected]
552デフォルトの名無しさん:2010/06/02(水) 11:42:43
Qt Creator 1.3.1をLinuxで使っていてプロジェクトを他のところからコピー
してクリーン,ビルドするとCreatorからはPermission deniedとなってしまいます
実行ファイルはできていてターミナルやファイルブラウザからは不思議な事に普通に走ります

どうしたらCreator内からも走るようになるのか分かっている方いたら教えて下さいますか?
553デフォルトの名無しさん:2010/06/02(水) 13:03:21
質問です:

QString qsBuf;
に文字列が入ってるとして、
この文字列をUTF8ととして、
std::string sBuf;
に入れるにはどういうコードになりますでしょうか?

OSはWindows(とMAC OS X)を想定しています。
554デフォルトの名無しさん:2010/06/02(水) 13:08:58
555デフォルトの名無しさん:2010/06/02(水) 13:51:26
d

見てみると、
>std::string sBuf = qsBuf.toStdString();
みたいな感じですか?

>QString::toUtf8() const
の使い方や意味が丸で分からない感じなんですが。。。
556デフォルトの名無しさん:2010/06/02(水) 14:35:57
この程度の英語辞書引けば中学生でも読めるだろ。

toStdString()はtoASCII()呼んでるから、QTextCodec::setCodecForCStrings()見るって書いてる。
これにUTF8セットしてるなら
>std::string sBuf = qsBuf.toStdString();
でいいんじゃね?
557デフォルトの名無しさん:2010/06/02(水) 14:43:12
>>555
4.7 のドキュメントの方が少し詳しいな。
ttp://doc.qt.nokia.com/4.7-snapshot/qstring.html#toStdString

QString::toStdString() は toAscii() を使っているが、
toAscii() は QTextCodec::codecForCStrings() を使って QString を std::string へ変換する。
ので、 >>5 を参考に QTextCodec::setCodecForCString() で UTF-8 のコーデックを指定するといい。
toUtf8() は QByteArray へ変換するのでこの場合は使わない。

setCodecForCString() の副作用が気になる場合は
std::string str( qstring.toUtf8().constData() );
でも行けるはず。
558デフォルトの名無しさん:2010/06/02(水) 14:47:56
これ、数字の三桁区切り簡単にできるのね
便利だわ
559デフォルトの名無しさん:2010/06/03(木) 01:48:18
VS2010対応はまだかいな
560デフォルトの名無しさん:2010/06/03(木) 02:03:19
Qtって検索しづらい
561デフォルトの名無しさん:2010/06/03(木) 11:21:58
ウィンドウがアクティブになったときのイベントって無いのですか?
562デフォルトの名無しさん:2010/06/03(木) 12:54:39
あります
563デフォルトの名無しさん:2010/06/03(木) 19:24:04
聞かれたことだけにしか答えない人っているよな
564デフォルトの名無しさん:2010/06/03(木) 19:27:23
565デフォルトの名無しさん:2010/06/03(木) 20:57:21
>>563
「無いのですか」とろくな調べ方もしていないのがありありだからじゃないか。
566デフォルトの名無しさん:2010/06/03(木) 21:57:06
>>563
お願いしますを素直に言えない人っているよな
567デフォルトの名無しさん:2010/06/03(木) 22:07:36
そういうことはついったーにでも書いてろ
568デフォルトの名無しさん:2010/06/03(木) 23:26:23
>>560
つ[もう1つQt特有のキーワード][-quicktime]

まあ、Qtの名をつけたのはかなり前だから
仕方ないんじゃまいか。
今変えても混乱起こすだけになりそうだし。。。
569デフォルトの名無しさん:2010/06/04(金) 12:59:31
いやっほう
570デフォルトの名無しさん:2010/06/04(金) 18:26:56
検索って google とかのことか
Qtのdocs 内の検索かと思ってた
いつも google とかでは qt4 と何かキーワードで検索していて不便感じない
571デフォルトの名無しさん:2010/06/04(金) 20:21:20
mysqlと接続したプログラムを書こうと思っている
mysqlのapiを使って接続するのと、qtを経由させて接続する方式のどっちがおすすめ?
572デフォルトの名無しさん:2010/06/04(金) 20:42:56
qt
573デフォルトの名無しさん:2010/06/04(金) 22:11:05
>>572
なぜ
574デフォルトの名無しさん:2010/06/04(金) 22:59:51
Qt
575デフォルトの名無しさん:2010/06/04(金) 23:17:58
MySQLのAPIがどんなのか知らないけど、
余分にライブラリ入れなきゃいけなかったり、
クライアント入れた環境じゃないと動かないとかいうなら、
Qtのライブラリの方が面倒が少ないと思う。
576デフォルトの名無しさん:2010/06/04(金) 23:18:02
>>573
両方で試してみれ
そうすりゃわかる
577573:2010/06/04(金) 23:19:13
>>576
わかったよ、どっちも試してみることにする
578デフォルトの名無しさん:2010/06/04(金) 23:39:55
QtでMySQL使うには、MySQLのライブラリを入れなければ使えません。
579デフォルトの名無しさん:2010/06/06(日) 10:00:52
MySQLの話題が続いてますので、便乗させてください。
WindowXPのVM Player上でUbuntuを走らせQtを使ってます。
ネットワーク越にMySQLにopenすると5秒ぐらい帰ってきません。
localhostならワンテンポ遅れるぐらいですが。

これって、VMのせいでしょうか?
ちょっと板違いですいませんが
580デフォルトの名無しさん:2010/06/06(日) 13:43:27
openに失敗してるのなら単にタイムアウトの設定の問題かもしれない
581デフォルトの名無しさん:2010/06/06(日) 15:32:04
>>579
VMの設定内容もバージョンも晒さずになにをE.S.P.しろと言うのかね
582デフォルトの名無しさん:2010/06/06(日) 15:34:26
>>579
WireShark か tcpdump でホスト側とゲスト側の両方で通信内容を見たら分かるよ
583デフォルトの名無しさん:2010/06/06(日) 15:40:04
MySQLがHost側で動いてるのかGuest側で動いてるのかも
584579:2010/06/06(日) 22:38:04
VMware Playerはたしか2?
openに失敗してる訳じゃなく、開けるんだけど、5秒ほど掛かる
MySQLはサーバーで、クライアントをQtで作ってます。
もともと、VMの今の設定では自分のMyDocumentsを開くにも時間がかかるので
このせいだろとは思うんですが、VMなしの直通の環境がすぐ出来そうにないので
MySQLサーバー、Qt製クライアントをネット越に使ってる方でレスポンスに問題が
無ければ、納得するんですが。
ただ、同じ環境でMS SQLサーバーとオリジナルのODBCで繋ぐと
まったくレスポンスが問題にならないので、あれと思ったわけです。

585デフォルトの名無しさん:2010/06/07(月) 03:50:06
MySQLがHost側で動いてるのかGuest側で動いてるのかも
586579:2010/06/07(月) 11:38:16
>>585
あ、失礼しました。
1台は、WinodwsにVMを入れUbuntuをゲストOSしにして、QtでMySQLのクライアント
を組んでます。
で、ネットワーク内の別のUbuntuマシンでMySQLサーバーを走らせてます。
587579:2010/06/07(月) 11:42:20
あと
サーバーネームはIPアドレスを直接指定してます
588デフォルトの名無しさん:2010/06/07(月) 14:37:36
自分の環境すら満足に説明できないのに
まともなプログラム書けると錯覚してるのか
589デフォルトの名無しさん:2010/06/07(月) 15:22:17
Qt外からはスムーズに接続出来るの?
590デフォルトの名無しさん:2010/06/07(月) 22:53:20
Qt4.3.0から4.6.2に移行したいんですけど
ファイル移動させてVSのインクルードの設定変更だけでいけますか??

未解決の外部シンボルってのが大量に出ます・・・
591デフォルトの名無しさん:2010/06/07(月) 22:57:30
>>590 一回クリーンしてからビルドしてるんだよね?
592デフォルトの名無しさん:2010/06/07(月) 22:58:35
>>590
良い機会だと思ってその辺の事も調べてみたら?
593デフォルトの名無しさん:2010/06/07(月) 22:59:15
ライブラリの場所も指定しなきゃな
594デフォルトの名無しさん:2010/06/07(月) 23:15:07
クリーンは行っています
環境を移行できないと困るので頑張ってみます
ライブラリの設定もリンカで行っていました。すいません
4>editor.obj : error LNK2001: 外部シンボル ""protected: void __thiscall CQEditorWindow::stop(void)" (?stop@CQEditorWindow@@IAEXXZ)" は未解決です。
4>editor.obj : error LNK2001: 外部シンボル ""protected: void __thiscall CQEditorWindow::pause(void)" (?pause@CQEditorWindow@@IAEXXZ)" は未解決です。
4>editor.obj : error LNK2001: 外部シンボル ""protected: void __thiscall CQEditorWindow::areaSelected(void)" (?areaSelected@CQEditorWindow@@IAEXXZ)" は未解決です。

このようなエラーが51個ほどでています・・・
ビルドログで
c:\Qt\4.6.2\bin\uic.exe title_v.ui -o ui_title_v.h

if errorlevel 1 goto VCReportError

goto VCEnd

:VCReportError

echo Project : error PRJ0019: ツールはエラー コードを返しました : "UIC title_v.ui"

とこのようになっていたんですがこれが原因でしょうか?
595デフォルトの名無しさん:2010/06/08(火) 01:41:16
また明日がんばります
596デフォルトの名無しさん:2010/06/08(火) 05:58:40
4>pptLoader.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) public: class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >
__thiscall QString::toStdWString(void)const " (__imp_?toStdWString@QString@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ)" は未解決です。
4>editor.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) public: class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >
__thiscall QString::toStdWString(void)const "(__imp_?toStdWString@QString@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ)" は未解決です。
4>QDisplayWidget.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) public: class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >
__thiscall QString::toStdWString(void)const " (__imp_?toStdWString@QString@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ)" は未解決です。
4>editor.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static class QString __cdecl QString::fromStdWString(class std::basic_string<wchar_t,struct
std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (__imp_?fromStdWString@QString@@SA?AV1@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z)" は未解決です。
4>editor.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) public: static class QString __cdecl QString::fromWCharArray(wchar_t const *,int)"
(__imp_?fromWCharArray@QString@@SA?AV1@PB_WH@Z)" は未解決です。

となってQString関係かと思うのですがなにかアドバイスいただけないでしょうか
597デフォルトの名無しさん:2010/06/08(火) 08:04:52
環境変数QT_DIR変更してねぇんじゃね?
俺は必ずソースからビルドしてるから違うかもだけど
598デフォルトの名無しさん:2010/06/08(火) 10:01:12
599デフォルトの名無しさん:2010/06/08(火) 10:45:29
俺もソースからビルドするからなんとも言えないけど
QMakeが吐き出したvcprojの「wchar_tを組み込み型として使用する」が「いいえ」になってたりしない?
600デフォルトの名無しさん:2010/06/09(水) 00:04:14
ダイナミックリンクライブラリ(DLL)zyなくて
スタティックリンクライブラリでビルドする方法教えて
601デフォルトの名無しさん:2010/06/09(水) 03:31:12
>>597
QTDIRにおいてC\Qt\4.6.2で指定しています
QT_DIRも追加しましたが変わりなかったです
>>599
wchar_tをビルトイン型として扱うってとこでしょうか?
ここは「はい」になってます
前の環境でも「はい」になっていました

VS2005+Qt4.3.0からVS2008+4.6.2に移行しようとしています
前の環境でクリーンしたものをこっちに持ってくるだけではだめなのでしょうか?
602デフォルトの名無しさん:2010/06/10(木) 00:17:40
Qt4.7とQt Creator 2.0入れてみたのですが、どこからQMLを作ればいいのでしょうか?
ちなみに File -> New File or Project... を開くとこのように表示されます。
http://fx.104ban.com/up/src/up20410.png
603デフォルトの名無しさん:2010/06/10(木) 01:01:10
>>602
Qt Creator 2.0 RC ではなく、2.0 Beta を使う。
604602:2010/06/10(木) 01:39:58
>>603
ありがとうございます。新規作成にQMLが表示されるようになりました。


すみませんが、もうひとつだけ質問させてください。
QDeclarativeView や QDeclarativeContext を使うためには .pro に QT += declarative を追記する以外にもやらなければならないことがあるのでしょうか。
605デフォルトの名無しさん:2010/06/10(木) 02:30:58
>>604
#include <QtDeclarative>
は?
それに失敗しているならプロジェクトが4.7系のQtを使う設定になってないか。
606デフォルトの名無しさん:2010/06/10(木) 09:51:15
ありがとうございます。
607602:2010/06/10(木) 11:44:32
>>605
補完の候補に表示されないので設定が間違っているのかもしれません。(無理やり打ち込んでも、そのようなファイルもしくはディレクトリはありませんと表示されてしまう)

現在の設定はこのようなっています。
http://fx.104ban.com/up/src/up20440.png
http://fx.104ban.com/up/src/up20443.png
608デフォルトの名無しさん:2010/06/10(木) 14:15:52
>>607
Mac で Qt 4.7 Beta のバイナリーパッケージか?
自前のビルドばかり試してたから今初めて気がついたが、
こいつ QtDeclarative モジュールが入ってないような。
609602:2010/06/10(木) 15:29:49
>>608
そうです。Mac版 4.7 Beta のバイナリパッケージです。
入ってない・・・みたいですね・・・
いろいろと有難うございました。

$ ls /Library/Frameworks/
Qt3Support.framework/           QtOpenGL.framework/
QtCore.framework/               QtScript.framework/
QtDBus.framework/               QtScriptTools.framework/
QtDesigner.framework/           QtSql.framework/
QtDesignerComponents.framework/ QtSvg.framework/
QtGui.framework/                QtTest.framework/
QtHelp.framework/               QtWebKit.framework/
QtMediaServices.framework/      QtXml.framework/
QtMultimedia.framework/         QtXmlPatterns.framework/
QtNetwork.framework/            phonon.framework/
610デフォルトの名無しさん:2010/06/10(木) 17:23:03
iPad, iPhoneは対応しまつか?
611デフォルトの名無しさん:2010/06/11(金) 02:11:39
>>610
難しい質問。開発元がノキアだから、単にQtを普及させるための戦略としてのiPad, iPhoneに進出はありえない。
612デフォルトの名無しさん:2010/06/11(金) 02:30:09
確かに
613デフォルトの名無しさん:2010/06/11(金) 10:16:27
Mac OS と iOS は別物なんだね→ ttp://newsweekjapan.jp/stories/business/2010/06/post-1353.php
614デフォルトの名無しさん:2010/06/11(金) 19:19:53
>>613
何でこのスレでその話題なのか知らんけど、iOS の基盤に Mac OS X がある事を書くと、
その記事のストーリーラインが崩れるからじゃないの。
615デフォルトの名無しさん:2010/06/12(土) 12:08:02
Pentium3のノートに入れてみた
デバッグ開始までに5分以上掛かるw
616デフォルトの名無しさん:2010/06/12(土) 21:05:57
Qtのサンプル、解説の日本語サイトない?
今Qtについてるサンプルを解読するしか方法がない
Win32Apiから移行してみたが情報の少なさに絶望した
617デフォルトの名無しさん:2010/06/12(土) 21:35:59
英語だってだけで,情報は多いよ。Qtのヘルプだけで充分な情報が得られる。
ヘルプ内にサンプルコードも豊富に書いてあるし。

そんなに難しい英語じゃないから,頑張って読むのが吉。
618デフォルトの名無しさん:2010/06/12(土) 21:59:27
>>616
サンプルと公式ドキュメントの充実度合いはかなりのもの。
困ったときによくヒットするのも、Qt開発者のブログかQtフォーラムで、どっちも英語。

日本語にこだわるなら
ttp://qt.linux-life.net/4/
ttp://gihyo.jp/dev/feature/01/qt
だけど、英語頑張った方がいいと思うよ。
619デフォルトの名無しさん:2010/06/12(土) 22:00:38
620デフォルトの名無しさん:2010/06/12(土) 22:03:34
>>602
http://labs.trolltech.com/blogs/2010/06/09/qt-creator-20-its-a-release-candidate/
に書いてある方法でQML使えるようになります。
621デフォルトの名無しさん:2010/06/13(日) 01:18:34
OS: Mac OS 10.6
Qt: Qt 4.7 beta(ソースからビルドしたもの)

コンパイルしようとすると
ld: framework not found XXX(XXXにはQtGuiなどが入る)
とコンパイル出力に表示されてしまいます。

/Users/username/libでlsをやってみると下のようになるのですが、なぜnot foundになってしまうのでしょうか。

Qt3Support.framework/ QtOpenVG.framework/
QtCore.framework/ QtScript.framework/
QtDBus.framework/ QtScriptTools.framework/
QtDeclarative.framework/ QtSql.framework/
QtDesigner.framework/ QtSvg.framework/
QtDesignerComponents.framework/ QtTest.framework/
QtGui.framework/ QtWebKit.framework/
QtHelp.framework/ QtXml.framework/
QtMediaServices.framework/ QtXmlPatterns.framework/
QtMultimedia.framework/ phonon.framework/
QtNetwork.framework/ pkgconfig/
QtOpenGL.framework/
622デフォルトの名無しさん:2010/06/13(日) 02:26:32
ttp://qtusersforum.s2.zmx.jp/forum/viewtopic.php?f=37&t=483&sid=a6bd7c50fdbbfe04ac9c82b112361010

すみませんが、こちらに書いた問題についてわかる方はおられますか?
お手元の環境で再現するかどうか、というのでも構いませんので
教えて頂けると嬉しいです。


623デフォルトの名無しさん:2010/06/13(日) 10:39:32
>>622
俺の環境(Ubuntu i686)だとビルドは成功するけど

X Error: BadMatch (invalid parameter attributes) 8
Extension: 128 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x4800018

みたいなエラーが出て再現以前に走らん
624デフォルトの名無しさん:2010/06/13(日) 10:54:26
>>621
フレームワークは /Library/Frameworks/ に入れておかないと意味がないと思うのだが。
625デフォルトの名無しさん:2010/06/13(日) 13:34:16
>>624

/Library/Frameworks/にコピーしてみましたが駄目でした。
下のエラー文(書き込みエラーがでるので途中で改行してあります)を見ると/Users/username/libを見に行っているように見えるのですが、どう対応したら良いのでしょうか。

make: Entering directory `/Users/username/TestLabel-build-desktop'
g++ -headerpad_max_install_names -Xarch_x86_64 -mmacosx-version-min=10.5 -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -o TestLabel.app/Contents/MacOS/TestLabel
.obj/debug-shared/main.o -F/Users/username/lib -L/Users/username/lib -framework QtGui -L/Users/username/lib -F/Users/username/lib -framework QtCore
ld: framework not found QtGui
collect2: ld returned 1 exit status
make: *** [TestLabel.app/Contents/MacOS/TestLabel] Error 1
make: Leaving directory `/Users/username/TestLabel-build-desktop'
コード:2 で終了しました。
Error while building project TestLabel (target: Desktop)
ビルドステップ '' を実行中
626デフォルトの名無しさん:2010/06/13(日) 15:24:52
>>625
macportsのqtを使えばいい気がするんだけどな〜
627デフォルトの名無しさん:2010/06/13(日) 15:27:15
>>623
動作確認ありがとうございました。
こちら(Atom N270 + GMA950)では見かけないエラーですね…。

628デフォルトの名無しさん:2010/06/13(日) 15:47:43
>>626
MacPortsのだと4.6.3なんです
4.7のQt Quickが使いたくて。。。
629デフォルトの名無しさん:2010/06/13(日) 16:07:41
>>624
>フレームワークは /Library/Frameworks/ に入れておかないと意味がないと思うのだが。
DYLD_LIBRARY_PATHに入れれば大丈夫です。
630デフォルトの名無しさん:2010/06/13(日) 16:11:51
>>628
>4.7のQt Quickが使いたくて。。。
configure、ビルド、>>629の設定で使えます。
Qt Creatorも>620 のようにすれば、QMLが使えるようになります。
631デフォルトの名無しさん:2010/06/13(日) 17:44:49
うーむ、このスレ見るとAroraが日本語入力で落ちるのもQtのせいっぽいな。
632デフォルトの名無しさん:2010/06/13(日) 19:17:12
Qt 4.6 インストールして、visual studio 2008j上でビルドしようとしても
#include<QApplication>のところで、ファイルが開けません。とでてくる。
環境変数の設定で、PATH=c:\qt\4.6\bin:c:\Qt4.6\includeとしているんだけど、
これだけじゃ駄目なの?
633デフォルトの名無しさん:2010/06/13(日) 19:34:18
>>632
c:\Qt4.6\include\QtGui
も加えればいけんじゃないかな
634デフォルトの名無しさん:2010/06/13(日) 20:00:36
>>632
PATHにinclude指定するとか意味ふすぎる・・・
635デフォルトの名無しさん:2010/06/13(日) 20:10:21
MainWindow w; が
w.show(); される前
MainWindowのコンストラクタか、ShowEventで条件によって
qApp->quit(); することはできない?
636デフォルトの名無しさん:2010/06/13(日) 20:42:53
>>635
MainWindowにフラグ用の適当なメンバ変数を追加して
if(m_flg){
qApp->quit();
return ほにゃら;
}
637デフォルトの名無しさん:2010/06/13(日) 21:43:56
>>632
ていうか、windowsだと区切り文字:じゃなく;だろ。
638635:2010/06/13(日) 22:19:44
>>636
サンクス
639デフォルトの名無しさん:2010/06/14(月) 06:57:47
ビルドしたら

mt.exe : general error c101008d: Failed to write the updated manifest to the res
ource of file "..\..\..\..\plugins\imageformats\qicod4.dll". The operation faile
d.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\mt
.exe"' : リターン コード '0x1f'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
\nmake.exe"' : リターン コード '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : リターン コード '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : リターン コード '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : リターン コード '0x2'
Stop.

こんなエラー出たんだけど失敗してるよね?
configure -debug-and-release -D _CRT_SECURE_NO_WARNINGS
した後
nmakeしました
640デフォルトの名無しさん:2010/06/14(月) 10:28:07
>>622
MacBook PRO, Mac OS X 10.6.3, Qt 4.6(Carbon) で最初のサンプルが何も表示されず。
二つ目は正常動作。
641622:2010/06/14(月) 11:46:39
>>623
すみません、もう一点確認させて下さい。
そちらでは QtCreator 付属の OpenGL サンプルはちゃんと動いてますか?

> X Error: BadMatch (invalid parameter attributes) 8
このエラーメッセージでググると、同様に glXMakeCurrent() で落ちている人の記述が見つかりました。
ttp://yohei21.blog10.fc2.com/blog-entry-137.html
この方は nVidia ドライバを入れ直したら治ったそうです。
(まったくの憶測ですので、外していたらすみません)

>>640
ありがとうございます。やっぱり2つ目(FBO版)でないと表示されませんか…。
1つ目が表示されない問題はバグとして開発元に報告した方がよさそうですね。

また、2つ目は 10.5 において以下の2つの問題が起きているんですが、10.6 では問題ないでしょうか?
・クリックイベントを連打するとたまにすり抜ける
・ドロップシャドウがフォーカスが変わった時にしか更新されない
(10.6で治っているならきっと未来が見える…!)
642640:2010/06/14(月) 13:45:45
>>641
>また、2つ目は 10.5 において以下の2つの問題が起きているんですが、10.6 では問題ないでしょうか?
どちらの問題も再現する。

もう一つ悪い知らせを。
Qt 4.6(Cocoa)、Qt 4.7(Cocoa)だとどちらのサンプルでもウィンドウが表示されない。
それぞれレポジトリからの自前ビルド。
643デフォルトの名無しさん:2010/06/14(月) 16:06:19
>>642
> どちらの問題も再現する。
了解です。ありがとうございました。こちらも報告した方がよいですね。
ググって見つけた [#QTBUG-8638] QGLWidget obscuring other widgets on Mac
怪しいんですがサーバが重すぎて内容が読めません…。

> Qt 4.6(Cocoa)、Qt 4.7(Cocoa)だとどちらのサンプルでもウィンドウが表示されない。
まじですか…。Cocoa 版ではやり方自体を変えないとダメかも知れませんね。orz
こちらでもソースから Cocoa 版をビルドして試してみます。
(BoingX のサンプルによると Cocoa には NSBorderlessWindowMask があるので
背景抜き OpenGL 描画は正式にサポートしているっぽい)
644デフォルトの名無しさん:2010/06/14(月) 23:01:28
>>642
64ビットでビルドしてない?うちではi386とx86_64のユニバーサルでビルドして、
64ビットではサンプルを起動できなかったんだけど32ビットだと起動できた。
645デフォルトの名無しさん:2010/06/15(火) 20:42:54
gj
646デフォルトの名無しさん:2010/06/15(火) 23:21:22
GUIアプリ一般に関することかもしれませんが質問があります。

たとえば、ファイル開くメニューで処理が重い場合、バックグラウンドスレッドで処理させるとします。
その間、ファイル開くやほかのメニューが起動されると困るのですが、その場合の対応は一般的にどのようにするものなのでしょうか?

実行されては困るメニューをすべてDisableにすることを考えたのですが、
ショートカットキーでメニューハンドラを実行される可能性もありうまくいかないかと。

メニューハンドラすべてにスレッド処理中ステータスを持たせるのも、メニューが増えるとあまりスマートではないかと思ったり。
647デフォルトの名無しさん:2010/06/15(火) 23:27:35
>>646
ヘルプを読む限り,QAction::setEnabled() でコントロールすればショートカットキーも効かなくなるから
大丈夫なんじゃない?
648デフォルトの名無しさん:2010/06/15(火) 23:39:06
>647
即レスありがとう。メニューをDisableするだけでOKなんですね。余計なこと考えすぎていました。
649デフォルトの名無しさん:2010/06/16(水) 20:15:30
いちおう実行関数の入り口でも弾いた方がいいと思うよ
今は大丈夫でも、あとで抜け道ができちゃう可能性もあるし
650デフォルトの名無しさん:2010/06/17(木) 19:38:37
>>646
ショートカットも含めて再突入禁止する
そのためにActionMappingが
651デフォルトの名無しさん:2010/06/17(木) 22:00:08
>>646の場合は処理が終わるまで一番上にダイアログ出しておくのが普通でないの?
652デフォルトの名無しさん:2010/06/17(木) 22:51:41
>たとえば、ファイル開くメニューで処理が重い場合、バックグラウンドスレッドで処理させるとします。
653デフォルトの名無しさん:2010/06/18(金) 01:40:43
>>646
メニューじゃなくてQActionをDisabledにしたらショートカットも無効にならない?
654デフォルトの名無しさん:2010/06/18(金) 07:07:22
>>647 はそう言ってるだろ。よく読めよ。
655561:2010/06/18(金) 14:52:26
つ [d] >>564

ウィンドウがアクティブになったときのイベントを作ろうと思って、
ウィンドウを選択してGo to slotしましたが、
・iconSizeChanged
・toolButtonStyleChanged
・destroyed
・destroyed
・customContextMenuRequested

というイベントしか表示されないのですが、
どうしたら宜しいでしょうか?
656561:2010/06/18(金) 16:26:30
eventFilterメソッドってのを手書きすれば、おkでしょうか?
657デフォルトの名無しさん:2010/06/18(金) 18:50:13
これ見てよ↓
http://livedoor.blogimg.jp/tekepo/imgs/3/4/3414dfca.jpg
ばらまこうぜ!
658デフォルトの名無しさん:2010/06/18(金) 20:23:10
>>654
>>648には伝わってないだろ。ちゃんと読め。
659デフォルトの名無しさん:2010/06/18(金) 20:29:05
>>656
うん。そゆこと。そこで>>564が役に立つ。
660デフォルトの名無しさん:2010/06/18(金) 21:34:07
>>658
そんなら同じような書き方を二度しても仕方ないだろ?
少なくとも>>647を読んでないように受け取られるようじゃ無意味。
661デフォルトの名無しさん:2010/06/18(金) 23:14:50
>>660
「メニューじゃなくて」ってあえて書いたのが分からなかった?
まぁ、書いてあることを理解できない人には何言っても無意味なんだけどね。
662デフォルトの名無しさん:2010/06/19(土) 08:21:14
>>661
そんな書き方じゃ誤解を生むよ。的確に書く練習した方がいい。

模範解答:「>>647も書いているように,メニューじゃなくてQActionをDisableに
するんだよ。そうすればショートカットも無効になる」
663デフォルトの名無しさん:2010/06/19(土) 09:00:31
言葉足らずの典型だね。
664デフォルトの名無しさん:2010/06/19(土) 09:12:50
>>662
お前、女の会話みたいな文章が好きなんだな。

「>.647読み直せ」か、ああいう風に書くかどちらかで十分だったし、それ以上は冗長だった。
ポインタと値を両方渡す意味はない。
665デフォルトの名無しさん:2010/06/19(土) 10:11:08
>>647>>653が同一人物ではないと確信できた>>654をもっと評価すべき。
666デフォルトの名無しさん:2010/06/19(土) 10:15:48
>>665
もし同一人物だったらこうなってたわけですね。

女『車のエンジンがかからないの・・・』
男『あらら?バッテリーかな?ライトは点く?』
女『昨日まではちゃんと動いてたのに。なんでいきなり動かなくなっちゃうんだろう』
男『トラブルって怖いよね。で、バッテリーかどうか知りたいんだけどライトは点く?』
ちくわ大明神『それさっき言っただろ。自分の言ったことくらい覚えてろ』
男『え?』
ちくわ大明神『模範解答:「さっきも言ったけど、ライトは点く?」』
男『さっきも言ったけど、ライトは点く?』
女『もしかしてちょっと怒ってる?』
男『いや別に怒ってはないけど?』
女『怒ってるじゃん。何で怒ってるの?』
男『だから怒ってないです』
667デフォルトの名無しさん:2010/06/19(土) 14:16:05
>>664は言葉足らずが男らしいと勘違いしてるみたいだから、自分でもメッセージや
ヘルプが言葉足らずのソフトを作って、ユーザーから沢山問い合わせが来るのにも
男らしく責任取って自分で対応してるんだろうなw

さ,次いこうか。
668デフォルトの名無しさん:2010/06/19(土) 14:56:57
どれぐらいのマシンスペックがあればQtのIDEで快適に開発できるんだろうか?
C++BuilderとかVisualStudioよりデバッグ重いよねこれ
669デフォルトの名無しさん:2010/06/19(土) 17:45:14
デバッグは確かに重い。最近Qtでの開発用にマシンとして Core i7 2.8GHz/2.0GBメモリ
のものを購入したけど,MinGWでgdb使う場合でもVCでcdb使う場合でも大差なく遅い
(もちろんWindowsでの話)。

以前はCentrino DuoのノートPCで,コンパイルはプリコンパイルド・ヘッダー使えば
我慢できる範囲だったけどデバッグが余りに遅いんで速いマシンにしたんだけど,
何とか使えるギリギリの線ぐらいにはなったけど,期待したほどは速くならなかった。

前述のノートPCでC++ Builderも使ってたけど,デバッガーはストレスなく動作
してた。やはりIDE内蔵のデバッガーと,外部のコマンドラインデバッガーを
コントロールして使うのじゃ,差があるんだと思う。

それなんで,簡単なデバッグは qDebug() 使ったいわゆる「デバッグライト」で
やって,どうしてもというときだけデバッガー使うようにしてる。

ただ,コンパイルはさすがに劇的に速くなった。
あと,Qt自体をソースからビルドしてみたけど,前のノートPCでは退社前にスタート
させて,朝出社しても終わってなかったのが,今度のマシンでは3時間で終わった。
670デフォルトの名無しさん:2010/06/19(土) 17:47:26
>>664
> 「>.647読み直せ」か、ああいう風に書くかどちらかで十分だったし、それ以上は冗長だった。
> ポインタと値を両方渡す意味はない。

しつこいけど前者はOK。後者(>>653)はアンカーが>>646になってるから誤解されたんだろ。
>>648になってれば問題なかったはず。
671デフォルトの名無しさん:2010/06/19(土) 17:51:19
いい加減空気読めよ
672デフォルトの名無しさん:2010/06/19(土) 18:30:00
>>667
なんで書いてないことを勝手に妄想で補完するかなぁ。
ていうかメッセージやヘルプを2chに書き込むのと同じ感じで作るバカはそうそういないぞ。
673デフォルトの名無しさん:2010/06/19(土) 18:52:41
>>668-669
大した事してないからかも知れんが,そんなに重い?
core i7 3.2GHz Linux で使ってるけど debug もそんなに重くは感じない
Linux と Windows で重さ違うのかしらん

ただcache 関係のバグなのかたまにヘルプ画面ががうまくリフレッシュ
されないことが有る…
674デフォルトの名無しさん:2010/06/19(土) 20:02:44
C++ Builderはその10分の1のスペックで
普通に動いていたかなら。

qtが重いのは間違いない。
675デフォルトの名無しさん:2010/06/19(土) 21:20:11
i7でもきついのかやっぱ・・・
しかしQtでの開発案件とかないかなどっかに
676669:2010/06/19(土) 23:30:00
>>673
まぁ,重いと思う感覚は人によっても違うだろうからね。
Linuxじゃ比較できないけど,C++ Builderのデバッガーの速さに比べると,
やはりストレスは感じる。

特に最初のブレークポイントで停止してから,ローカル変数の内容が表示される
までが長い。>>669に書いたノートPCだと数十秒も掛かった。今でも5秒くらい
掛かってると思う。測ったわけじゃないけど。

C++ Builderだと,デバッガーでツールチップで変数の値を表示するのも
ほぼ瞬時で出るからなぁ。

とは言ってもC++ Builderはもう使いたくないんでQtに移って来たんだけど。
677669:2010/06/19(土) 23:33:26
>>675
うちの会社にはあるよー。Qtにある程度慣れた人なら大歓迎状態。
678デフォルトの名無しさん:2010/06/20(日) 16:54:32
vs2010で使いたいと思ってgitから4.7落としてきたんだけど
configureできる?
qstringlist.hが見つからないとか言われるぜ
679デフォルトの名無しさん:2010/06/20(日) 17:15:48
16%で120MiB超か…
先は長いぜ
680デフォルトの名無しさん:2010/06/20(日) 21:03:00
>>677
在宅でできますか。
681デフォルトの名無しさん:2010/06/20(日) 22:07:36
お前ら、qtで何作ってんの?
682デフォルトの名無しさん:2010/06/20(日) 22:33:30
>>680
残念ながら在宅では無理。ハードウェアを制御するソフトなので,実機がなければ
テストもデバッグもできない。
683デフォルトの名無しさん:2010/06/20(日) 22:50:53
実機くれ
684デフォルトの名無しさん:2010/06/20(日) 22:55:43
重さ数トンもある大型機械だよ。いる?
685デフォルトの名無しさん:2010/06/20(日) 22:58:11
なぜqtでそんなものを?
686デフォルトの名無しさん:2010/06/20(日) 23:22:45
Qt組み込み系は強いんじゃないかな
687デフォルトの名無しさん:2010/06/20(日) 23:23:46
ハニー、それはもちろん・・・  キュートだからさっ!
688デフォルトの名無しさん:2010/06/20(日) 23:24:39
qtはいろんなものをコンテナに組み込む仕事に強いのです。
689デフォルトの名無しさん:2010/06/20(日) 23:25:42
大きさはともかく、signalとslotで機械制御できたらおもしろそうだな。
レゴのマインドストームってLabViewベースで動いてるらしいけど、Qtでも動かせたら楽しそう。
690デフォルトの名無しさん:2010/06/20(日) 23:30:03
> 大きさはともかく、signalとslotで機械制御できたらおもしろそうだな。

そうか? C++でイベントドリブンでプログラミングしたこと無い?
691デフォルトの名無しさん:2010/06/20(日) 23:30:32
>>685
あぁ,建設機械みたいなものを想像されたんだと思うけど,そうじゃなくて,
分類としては精密機械に入る生産装置なんだ。

それで,各種のパラメーター設定とか,グラフ描画とか,GUIの比率が
とても高いし,顧客ごとのカスタマイズも多いのでQtを選択した。
692デフォルトの名無しさん:2010/06/21(月) 00:18:58
>>690
Qtででもevent driven なプログラミングするでしょ
マウス関係とか

signal/slotは通常の event driven なプログラミングより
使いやすい感じするけどね
Designer で繋げる場合が多いのも結構好きだ
693デフォルトの名無しさん:2010/06/21(月) 00:28:40
>>691
ちょっと楽しそうw
作業場所は都内ですか?
694デフォルトの名無しさん:2010/06/21(月) 00:38:23
北海道だろ
695デフォルトの名無しさん:2010/06/21(月) 03:14:48
ipod touchに入るの?
696デフォルトの名無しさん:2010/06/21(月) 03:15:48
誤爆
697デフォルトの名無しさん:2010/06/21(月) 09:57:35
>>690
Qtのsignal/slotやらwin32apiのWindowProcはイベントドリブンに入るんだろうか…入らないなら、ないな。
どれ使おうが結局は似たようなもんなんだろうが、使いやすさとかの点では変わってくるからなぁ。
698デフォルトの名無しさん:2010/06/21(月) 21:12:55
>>693
YOKOHAMA
699デフォルトの名無しさん:2010/06/21(月) 21:37:54
マシンAからマシンBにテキストを送信するだけの、C/Sシステムを作りたいんだけど
何か参考になるページとかない?
てか、どのクラスを使えばいいんだよwww
700デフォルトの名無しさん:2010/06/21(月) 21:52:02
>>699
ttp://doc.qt.nokia.com/4.6/examples-network.html
まずは Fortune Server/Client でも見てみたら。
701デフォルトの名無しさん:2010/06/21(月) 22:29:24
>>700
thx
702デフォルトの名無しさん:2010/06/21(月) 22:30:34
void Widget::changeEvent(QEvent *e)
{
QWidget::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}

qt creatorを使ってguiを作ると、なんでこんな関数ができちゃうの?
てか、何してんだよこれ
703デフォルトの名無しさん:2010/06/21(月) 22:38:40
そもそもC++はGUI(イベントドリブン)が
作りにくい言語。

だから使いやすいRADを実現した処理系は
ことごとくC++標準とはいえないような
奇妙な実装をしている。

qtもまたしかり。
704デフォルトの名無しさん:2010/06/21(月) 22:39:17
gitから落としてきたのってwindowsでビルドするときにやることある?
705デフォルトの名無しさん:2010/06/21(月) 22:43:16
じっと見てる。
706デフォルトの名無しさん:2010/06/21(月) 22:54:48
>>702
実行中の言語切り替え対応。
707デフォルトの名無しさん:2010/06/21(月) 22:58:58
>>702
>実行中の言語切り替え対応。
C++以外でqtは書かないんだけど
なんで、言語切り替え機能なんて
708デフォルトの名無しさん:2010/06/21(月) 23:00:07
>>707
英語とか日本語とか。Qtは多言語対応が得意。
709デフォルトの名無しさん:2010/06/21(月) 23:10:14
>>702
ヘルプでQWidget::changeEvent()や「Internationalization with Qt」を見てごらん。
あとビルドすると生成される ui_widget.h に retranslateUi() の実装が記述
されてるから、中身を読めば何をやってるかわかる。
710デフォルトの名無しさん:2010/06/22(火) 00:47:16
>>703
他の言語だとそんなに楽か?
Java使ってたけどそんなにわかりやすいとも楽だとも思っていなかったが

Button startButton = new Button("start");
startButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){

}});

みたいな感じかな
すべてバラしても良いけど大分長くなる
マウス関係も同様

signal/slot 使うと楽に感じる

「C++標準とはいえない」と言うがC++標準にGUIが無いのに
何が言いたいの?

711デフォルトの名無しさん:2010/06/22(火) 00:49:42
>>707
Qtまともに使った事無いのか
712デフォルトの名無しさん:2010/06/22(火) 01:09:48
横レスだけど、

>>710
>「C++標準とはいえない」と言うがC++標準にGUIが無いのに
>何が言いたいの?

moc を咬まさないといけないのは C++ の表現力に限界があるからだと言いたいんじゃないの。
別に難しい話でも複雑な話でもない様に思えたけど?
713デフォルトの名無しさん:2010/06/22(火) 01:27:44
C++もやりにくくはないと思うのだけど、smalltalkとか使うと意見変わるのかなぁ?

確かにQtはsignals:とかpublic slots:とか、いくらマクロとはいえC++の範囲を逸脱してるように見えるし、
mocなんてもはや反則技に近いと思うけど、ある意味これもC++の表現力なのかな、と思ったり。
いちQt信者として言わせてもらうと、作ってる人たち、ほんとC++のことよくわかってんだな、と。
714デフォルトの名無しさん:2010/06/22(火) 02:09:14
>>712
>moc を咬まさないといけないのは C++ の表現力に限界があるからだと言いたいんじゃないの。
>別に難しい話でも複雑な話でもない様に思えたけど?

mocのおかげでC++とは別物になってるけど
それもこれもC++の仕様が糞すぎたからだろ

mocの出来が良すぎてQt気に入ったよ
むしろC++だと思わない方が良い
715デフォルトの名無しさん:2010/06/22(火) 02:12:54
ああもうひとつ言い忘れた
個人的にはC++のテンプレートでごちゃごちゃしたのが気に入らない
ついでにQt使い始めてBoostいらなくなったと感じた
716デフォルトの名無しさん:2010/06/22(火) 02:32:33
>>714
mocすごすぎわろたwww
簡単なcppソース吐いてるだけなのにすげーwww
717デフォルトの名無しさん:2010/06/22(火) 07:26:50
オレオレpreprocessorを作って言語拡張やってるところは結構多いと思う
少なくとも素のC preprocessorで滅茶苦茶するよりかはマシ
718デフォルトの名無しさん:2010/06/22(火) 08:52:42
そもそもC++がCのプリプロセッサだったからな。昔の話だが。
C++の「何でもあり」感は嫌いじゃない。
719561:2010/06/22(火) 10:44:46
d>>659

>bool QMainWindow::eventFilter ( QObject * o, QEvent * e ) [virtual]
を、手書きでQMainWindowを派生したクラスに書いて、メッセージボックス出してみましたが、
どうもコールされてないみたいです(><)

”QEvent::WindowActivate”と”eventFilter”でググってもイマイチ全く同じのも無いし、
insertEventFilterメソッドはQMainWindowには無いみたいだし。。。

ttp://nonspam.blog.shinobi.jp/Entry/22/
ttp://see-ku.com/wiki/wiki.cgi?page=Qt%A4%CE%A5%A4%A5%D9%A5%F3%A5%C8%BD%E8%CD%FD%A5%E1%A5%E2

を参考にしたのですがorz
720デフォルトの名無しさん:2010/06/22(火) 10:51:23
>>719
installEventFilter() な。
QMainWindow にもある。基底クラスの QObject の機能。
721561:2010/06/22(火) 11:59:47
dd

QMainWindowを派生したクラスで、
>this->installEventFilter(this);
としたら動いたっぽいです。

つまり、
コールバック関数はQObjectのメソッドだし、
そのコールバック関数をQObject::installEventFilterで登録する、
ってことですか。
722561:2010/06/22(火) 13:50:17
ついでなので、Qtの中の人の動きを知っておきたいです。

>1.イベントハンドラで処理する
>2.QObject::event()を再定義する
>3.オブジェクトにイベントフィルタを指定

QObject::event()ってのが、Qt/QObjectフレームワークで実行されていて、
その中で、登録されたイベントフィルタやイベントハンドラを実行するんですよね?

イベントハンドラとイベントフィルタの違いってのは以下の通りですか?

・見た目には、Qt CreatorのGo to slotのリストに出てくるのがイベントハンドラ
・QActionを定義して置いて、SIGNALとconnectできるのがイベントハンドラ

う〜ん、イベントハンドラとイベントフィルタの位置付けがまだハッキリしないお。
723561:2010/06/22(火) 15:47:46
連投スマソ:

ttp://www.kde.gr.jp/~ichi/qt/eventsandfilters.html
を見ると、
>bool MyClass:event( QEvent * e ) {
ってのが、
コールバック関数であって、
QEventに該当するものがあればイベントハンドラを実行して、
カスタムイベントの場合はカスタムイベントを実行して、
その後に実行してる
>QWidget::event( e );
ってのが、イベントフィルターの実行なんかなぁ???
724デフォルトの名無しさん:2010/06/22(火) 19:04:22
実装見てないけど、全部イベントフィルターに送られるんじゃないの?
イベントフィルターがシグナルの発生とかコールバック関数の呼び出し受け持って、
処理しなかったイベントは親クラスのイベントフィルターに送られる。

イベントのもっと基本的な処理は環境依存で、例えばWindowsならwin32api、LinuxならX11を分からないとどうにもならない。
725デフォルトの名無しさん:2010/06/22(火) 20:01:03
>>712
C++だったGUI(イベントドリブン)のプログラミングするならC++標準とは
いえないようなものになるんじゃないの?
それともRADでない処理系であればC++標準のプログラミングになる?
それなら具体的にどうするのか興味あるけど
726712:2010/06/22(火) 20:12:36
>>725
済まんが、君の言いたい事も >>712 との繋がりもよく分からないんだけど…

『GUI を実装する場合はイベントドリブンなプログラムになるが、
C++ の標準機能でイベントドリブンのプログラムを作成するのは
難しいんじゃないか』

って言いたいの?

もしそうなら、C++ はイベントドリブンなプログラムを書くのにも十分な
機能を標準で備えていると思うよ。

ただし C++ が理想的な言語であるとは思わないけどね。

http://doc.qt.nokia.com/4.6/templates.html
727デフォルトの名無しさん:2010/06/22(火) 21:07:42
つっても、windows3.1時代はMSもボーランドも勝手な言語拡張してたし、
C++標準+マクロテクのMFCはあのザマだし、やっぱQtみたいに言語拡張しないと見通し悪いよ>C++
728デフォルトの名無しさん:2010/06/22(火) 21:16:04
具体的にどんな時にどういう問題があるのか書かないと、単に君の感想でしかない訳だが…
729デフォルトの名無しさん:2010/06/22(火) 21:44:00
>>726
君が>>712 で「わかりやすい」と言っている >>703
に書いてることだからきいたんだけど

機能的に十分というなら Qtが作れるんだから十分でしょ

ただQtは「C++標準とはいえない」というのならどのような
「GUI(イベントドリブン)」のためのフレームワークや環境が
C++標準なのかってことなんだけど
「GUI(イベントドリブン)」と書いたのはできるだけ元の >>703
趣旨にそって引用したからだよ
730707:2010/06/22(火) 21:49:43
>>708
ようやく言っている意味が分かった
国際化ね
731712:2010/06/22(火) 21:59:38
>>729
済まんが、君が何が言いたいのかさっぱり分からん。そもそも君は誰?

ID が出ない板だと言う事を理解した上で、もう少し質問を絞って、
具体的に書いてくれ。
732デフォルトの名無しさん:2010/06/22(火) 22:06:55
>>731
>>710 で質問した人だよ

GUIや event driven のプログラムを標準といえる書き方で書く
ならどういうフレームワークで書くの?
それができないならQtが「C++標準とはいえない」と言ってもどれも
標準ではないから意味が無い

機能的にはスクラッチから書けばフレームワークもC++で書けるのだから
できるが,それをするならQtの方が「標準とはいえない」という理由もない
733デフォルトの名無しさん:2010/06/22(火) 22:11:57
>>729
横からだが、C++標準ライブラリだけでGUIが作れないのは自明で、
unixシステムコールやら、win32apiやらがないとGUIにはならない。

外してるかもしれんが、ここでのC++標準というのは、
・ライブラリじゃなく言語の話
・マクロなどによるトリッキーな実装、mocのような外部プログラムによるコード自動生成は
 「ことごとくC++標準とはいえないような」に含まれる
・いえる、いえないの基準はわりと曖昧。特にマクロ実装のトリッキーさの評価なんて個人差ありすぎ
・目安として「このライブラリを知らない人がこのコードを見たら、クラスや関数の仕様は分からないだろうが、
 構文自体は理解できるだろうか? エラーが出ない構文に見えるだろうか?」という基準があげられる

そういう基準だと、Xlib、Win32API、GLUTあたりはC/C++の標準に近い形でGUIが書けるのではないかと思う
(どれも、C++ってよりむしろCだけど)
734デフォルトの名無しさん:2010/06/22(火) 22:18:46
qtは英語の説明しかありませんが、お前らはそこら辺どうしているんですか?
735712:2010/06/22(火) 22:19:09
>>732
>それをするならQtの方が「標準とはいえない」という理由もない

Qt は moc を使うから C++ 標準ではないよ
Cfront を使っていた初期の C++ が C では無い様に
736デフォルトの名無しさん:2010/06/22(火) 22:24:36
>>734
頑張って読む。最初は面倒に感じたけど,単語は何度か辞書引けば(アルクで調べれば)
覚えるし,だんだん慣れた。
737デフォルトの名無しさん:2010/06/22(火) 22:40:43
>>733
サンクス
そういう意味でC標準ならわかる気がする

自分では強いて言えばC++の感覚とズレてる感じが少しあるのはsignal/slot
を使うことと Q_OBJECT と入れる(で行終わり!)こと位かな
APIは比較的自然で直感的に感じる
どのフレームワークも癖や「ノリ」みたいなのがあるから慣れは必要だわな
738デフォルトの名無しさん:2010/06/22(火) 22:44:33
>>734
英語を勉強する良い機会と
739デフォルトの名無しさん:2010/06/23(水) 08:52:50
イベントハンドラの実体って関数ポインタだし、
それがNULLで無ければ実行するっていうようなクラスライブラリになる。

その先フレームワークは、ウィンドウシステムがコールバック関数を受け取るわけだから、関数ポインタが必須。

そーゆー意味ではC++がベスト。
740デフォルトの名無しさん:2010/06/23(水) 09:03:22
コールバックをクロージャで渡せた方が柔軟だわな
今の所、C++ では無理な話だが
741デフォルトの名無しさん:2010/06/23(水) 09:28:10
C++ Builderだと独自拡張みたいだけど、__closureってのがあるよね。
イベントハンドラの型が、
>typedef void __fastcall (__closure *TNotifyEvent)(System::TObjectTObject* Sender)
みたいな感じで。

クロじゃーってどういう意味?
742デフォルトの名無しさん:2010/06/23(水) 09:40:10
環境にアクセス出来て状態を保持出来る関数リテラルの事
743デフォルトの名無しさん:2010/06/23(水) 09:48:16
d

文章難しくて、意味理解できないけどwww
744デフォルトの名無しさん:2010/06/23(水) 10:26:42
イベントハンドラだと、関数ポインタを実行するところをトレースすればデバッグできるよね。

で、Qtのシグナル・スロットってクラスライブラリだと、スロットを実行してるところってどこにあんだろ。
てか、何て文字を検索すれば良いんだろ?
745デフォルトの名無しさん:2010/06/23(水) 13:26:44
内部処理を全てUTF-8にしたい場合は、
どういう初期処理を書けば良いですか?
746デフォルトの名無しさん:2010/06/23(水) 13:59:05
747745:2010/06/23(水) 14:15:48
dd

>QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));
>QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));

上が実行時の文字コードで、下がソースコードの文字コードですか。
748デフォルトの名無しさん:2010/06/23(水) 15:17:25
内部処理は16bitUnicode固定じゃなかったっけ?
その2つは、
QString s1="CString";
QString s2=tr("TrString");
ってした時に、""内をUTF8とみなして内部コードに変換するってだけで。
749745:2010/06/23(水) 16:09:29
>内部処理は16bitUnicode固定

そうなんでしか?

とりあえず、747のコード書くだけで、
>フォームから文字入力→ファイル出力→ファイル読み直し
がUTF-8で出来たっぽいです。

ファイルをUTF-8モードで見てもおkですたw
750デフォルトの名無しさん:2010/06/23(水) 16:38:00
公式(http://doc.qt.nokia.com/4.6/qstring.html#details)によると
QString stores a string of 16-bit QChars,
where each QChar corresponds one Unicode 4.0 character.
て書いてる。
751745:2010/06/23(水) 16:57:31
d>>750
あ、その文面見たことあるような気がします。


ところで、ソースファイルがShift-JISで、アプリの動作をUTF-8にしたかったので、

>QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); // 実行時の文字コードをutf-8
>QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); //ソースの文字コードを環境にあわせる

ってのが、ベストっぽいです。

ソースファイルをUTF-8できれば綺麗なんだけど、既存のソースコードがorz
752デフォルトの名無しさん:2010/06/23(水) 17:04:51
>>742
それがC++で書けないから、
>connect関数
でカバーしてるってことかい?
753デフォルトの名無しさん:2010/06/23(水) 17:46:20
>•Windows - Q_WS_WIN
>•Mac OS X - Q_WS_MAC

みたいのはあるみたいですが、

Qt Creatorでコンパイルしてるときに#defineか埋め込みされてるコンパイラ指定子はありまつか?
754デフォルトの名無しさん:2010/06/23(水) 21:23:43
Qt Creator 2.0.0がリリースされた
755デフォルトの名無しさん:2010/06/23(水) 22:11:02
QAbstractSocket ってAbstractのくせに、実体化できるんですか?
756デフォルトの名無しさん:2010/06/23(水) 22:20:55
>>753
自前のライブラリなどで,Qt以外の開発環境と処理を変えるが目的なら,QT_CORE_LIB が
定義されてるかどうかで切り替えるのが良いみたいだよ。

#ifdef QT_CORE_LIB
// Qt環境でビルドされてる場合の処理
#endif

みたいに。
757デフォルトの名無しさん:2010/06/24(木) 00:12:47
>>751
できたならいいんだが、ほんとにそれでできたのか?
参考:
ttp://qtprogramming.s2.zmx.jp/Qt4Examples/Japanese.html
758753:2010/06/24(木) 11:23:11
QT_CORE_LIBデキマスタ(・∀・) >>756
759751:2010/06/24(木) 11:31:26
>>757
え”、どこか間違ってますか???
760デフォルトの名無しさん:2010/06/24(木) 15:38:55
>>754
> Qt Creator 2.0.0がリリースされた
日本語メニューはまだみたいだね。
761デフォルトの名無しさん:2010/06/24(木) 18:38:39
隣の席のガキがうざい
762デフォルトの名無しさん:2010/06/24(木) 22:37:21
日本語化の仕方来た
763sage:2010/06/26(土) 12:58:03
>>754
> Qt Creator 2.0.0がリリースされた
なんかデバッガが速くなってない? VS2008版だけど。
764デフォルトの名無しさん:2010/06/26(土) 13:21:36
ドキュメント読んでもよくわからないから、qtのソースを読もうと思っているんだけど
kernelってディレクトリがあるんだけど、何これ?
765デフォルトの名無しさん:2010/06/26(土) 13:31:33
>>764
ソース読め
766デフォルトの名無しさん:2010/06/26(土) 15:21:29
>>763
速くなってると思う。ステップ実行で一呼吸ある感じがなくなった。
最初のブレーク後の「ダンパを初期化しています」はあいかわらずだけど。
767デフォルトの名無しさん:2010/06/26(土) 18:20:37
Windows用のプログラムを書く時に、VisualStudio2010ExpressよりQtを使う
メリットてあるの?
768デフォルトの名無しさん:2010/06/26(土) 19:03:10
C++でGUIアプリ作るならQtのほうが楽
VSはC#ならポトペタできるけどVC++ではできない上にMFCもないのでほぼベタCかC++でAPI叩くしかない
QtかC++Builderかって迷うところはあるけどVSと迷うことはない
VS2008までしか触ってないから2010はどうか知らんけど
769デフォルトの名無しさん:2010/06/26(土) 19:59:54
不幸にも流行って*nixへ移植するときとか
770デフォルトの名無しさん:2010/06/26(土) 20:29:41
>768
MFCあってもうれしくないけどなw
771デフォルトの名無しさん:2010/06/26(土) 20:51:37
まなげどC++なんてC++じゃない
772デフォルトの名無しさん:2010/06/26(土) 21:04:24
文字列操作とか国際言語化とかも考慮しても
CStringのアホな子いらない子を使うよりも
QStringの方が圧倒的アドバンテージがあるな
773デフォルトの名無しさん:2010/06/26(土) 21:33:13
VisualStudio2010Express使うメリットがあるなら別だが、そうじゃなければ好みの問題。
774デフォルトの名無しさん:2010/06/26(土) 21:50:52
俺は Qt 使ってるけど,なぜか周りにはMFC使う位だったら
Win32APIそのまま使うわ,という人間の割合高いな
ようわからん
775デフォルトの名無しさん:2010/06/26(土) 22:10:49
>>774
それは理解出来る
MFC は糞すぎるから

まあ Qt 使えば良いのにとは思うけど
776デフォルトの名無しさん:2010/06/27(日) 08:49:06
>>771
「まなげど」って「ま、だけど」の間違いかと思ったらManagedのことか。同意。
777デフォルトの名無しさん:2010/06/27(日) 10:50:40
WindowsオンリーならVSでいいけど、
個人でも企業でもLinuxやMacの需要が高まってるから、
これから手を出すならQtの方がいいでしょ。
778デフォルトの名無しさん:2010/06/27(日) 13:12:26
ライセンスの問題がなければな
779デフォルトの名無しさん:2010/06/27(日) 13:35:28
>>778
ないだろ?
> ライセンスの問題がなければな
ライセンス契約すればいいじゃん。
780デフォルトの名無しさん:2010/06/27(日) 14:18:51
聞いてる時点でやる気も調べる気も行動する気も最後までやり遂げる気も無い
781デフォルトの名無しさん:2010/06/27(日) 20:24:52
Qt(2010.01版)のWindows/mingw版を使って
QTextEditやQPlainTextEditを貼り付けただけの
ポトペタアプリを起動すると、微妙に遅いよね。
(IMEがOFFでも、あまり変わらない感じ)

別にだめってほどでもないんだけど、
軽快なアプリケーションを作るのは難しいのかな。。。
782デフォルトの名無しさん:2010/06/27(日) 22:25:31
自分のCPUやメモリ環境OSも晒さずに何を言っておるのかね
783デフォルトの名無しさん:2010/06/27(日) 22:26:09
javaやC#よりは快適だろ
784デフォルトの名無しさん:2010/06/27(日) 22:45:50
速いが、javaやC#より不安定なイメージ
linuxでもgtkの方が安定している気がする
785デフォルトの名無しさん:2010/06/28(月) 02:29:00
mingwなんて使っているから
786デフォルトの名無しさん:2010/06/28(月) 03:01:47
>>784
Linuxだが、IMまわりは不安定だけどそれ以外ではそこまで不安定でもない感じがするぞ。
787デフォルトの名無しさん:2010/06/28(月) 09:38:21
gtkは糞
788デフォルトの名無しさん:2010/06/29(火) 07:31:27
Excelのデータ読み書きしたいんだけどどうすんの?
789デフォルトの名無しさん:2010/06/29(火) 11:24:09
QTで作ったアプリを一つのパッケージにしたいんですけどどうすればいいんでしょうか??
QT createor でbuild してから Run させて実行はできるんですが、
必要なdllだけまとめて配布用にパッケージ化したいんです。
なんかボタン一発で出来たりはしないんでしょうか??
790デフォルトの名無しさん:2010/06/29(火) 12:36:40
Qt4ってマイナーバージョンによっても結構機能違うみたいやね
常に最新にしておいたほうがいいのかな
791デフォルトの名無しさん:2010/06/29(火) 23:56:25
>>788
Qt側では用意されてない。COMでも使ってみたら?
792デフォルトの名無しさん:2010/06/29(火) 23:58:45
>>791
dd
やってみるお
793デフォルトの名無しさん:2010/06/30(水) 09:36:20
Qt Creator 2.0にしたら、ツリー表示で便利になったね。
改悪でIDEが重くなったらどうしようかと思ったが、このツリーだとソース開きやすいね。
.cpp/.uiと.hが離れてるのはちょっと違和感だけど。

mingwが変わったのか標準C系のヘッダーファイルの明記漏れで2つコンパイルエラー出たけど、
Qtに必用なDLLもバージョンうpしたのかなぁ。
794デフォルトの名無しさん:2010/06/30(水) 13:11:21
QTextEditを使うと、漢字変換の際に、
未確定文字列に破線がつき、
変換中の候補の背景色が灰色になります。
(WinXP Lunaはカット、MS-IME Standard 2002 ver8.1、Qt4.6.1)

他のアプリケーションでは、
未確定文字列は波線で
変換中の候補の背景色は、そのほかの文字列と同じです。

他のアプリケーションと同じ見た目にしたいのですが
どうすれば変更できるのでしょうか。
QInputContextにも、フォーマットを指定するメンバ関数は
見当たらないし。
(Qt製のskypeは標準的な感じに見えます)
795デフォルトの名無しさん:2010/06/30(水) 17:11:51
QPushButtonのアイコンを実行時に条件に応じて変更したいのですが、
やりかた知っている方いますか?

QtDesigner上でアイコンを設定すると、そのアイコンは表示されるのですが、
コード上でsetIcon(QIcon(":/resource")); すると、アイコンが消えてしまいます。
796デフォルトの名無しさん:2010/06/30(水) 17:46:12
>>795
存在しない画像ファイルを指定して消してるだけのような・・・
797795:2010/07/01(木) 09:14:53
>>796 さん
レスありがとうございます。
おっしゃる通り、存在しない画像ファイル(リソース)を指定して消していただけでした。

ありがとうございました。
798デフォルトの名無しさん:2010/07/01(木) 10:40:05
QString moji = "xxxxx";
qDebug() << moji;
として、Qt Creator 2.0のApplication Outputに変数mojiの内容を表示した場合、
xxxの文字数が少なければ問題ないのですが、数百文字以上になると後半が文字化けしていまいます。

正しく表示させるにはどうすれば宜しいでしょうか?
799デフォルトの名無しさん:2010/07/01(木) 10:57:50
うちは問題ないけど?
800デフォルトの名無しさん:2010/07/02(金) 16:00:12
>>798
文字コードは?
>>3 は見た?
801デフォルトの名無しさん:2010/07/02(金) 21:49:30
>>794
見た目の事はStyle系のクラスをどうぞ
802デフォルトの名無しさん:2010/07/02(金) 23:46:48
Qtでhttpsアクセスしたい場合はQt自体をリビルドしないと無理なんでしょうか?
803デフォルトの名無しさん:2010/07/03(土) 00:05:34
Qt += network
804デフォルトの名無しさん:2010/07/03(土) 00:24:44
.netのSplitContainerみたいなことをしたいのだけど、Qtだと何を使えばいいのでしょう?
805デフォルトの名無しさん:2010/07/03(土) 00:26:47
QSplitter
806デフォルトの名無しさん:2010/07/03(土) 00:39:38
>>803
最新版はOpenSSLを入れてリビルドして…という手間はいらないのでしょうか?
807デフォルトの名無しさん:2010/07/03(土) 00:43:46
>805
thx.

DesignerのContainerにはなかったのですが、コードで書くしかないんですかね?
808デフォルトの名無しさん:2010/07/03(土) 18:20:45
signalって普通に呼び出していいの?
809デフォルトの名無しさん:2010/07/03(土) 19:26:35
ほい
810デフォルトの名無しさん:2010/07/03(土) 20:10:13
サンプル見るとemit使ってるね
シグナルだと明示してるだけで特に意味はないみたいだけど
811デフォルトの名無しさん:2010/07/03(土) 20:39:57
>>810
Qt 4.5.3, Linux X11版
/usr/include/Qt/qobjectdefs.h
#ifndef QT_NO_EMIT
# define emit
#endif
では、単に明示してるだけだな。
812デフォルトの名無しさん:2010/07/03(土) 21:14:19
まぁシグナルは中身ないんだし明示した方が後々読みやすいんじゃないか
813デフォルトの名無しさん:2010/07/04(日) 00:50:25
signalは呼び出すものではなく投げるものです
814デフォルトの名無しさん:2010/07/04(日) 00:51:16
オブジェクト指向用語で言えば、
メッセージですね。
815デフォルトの名無しさん:2010/07/04(日) 00:52:29
それがどうかしましたか
816デフォルトの名無しさん:2010/07/04(日) 11:40:39
qt creater ver2になってから、起動が遅くなったね
817794:2010/07/04(日) 13:16:28
>>801
ありがとうございます。そういえばスタイルシートがどうとかあったけど・・・
調べてみます。
818デフォルトの名無しさん:2010/07/04(日) 20:17:07
使わないプラグイン減らしたら
起動早くなったりしないかな
819デフォルトの名無しさん:2010/07/04(日) 20:31:22
サイズが大きい画像を表示したいんだけど、メモリ消費量抑えるにはどうしたらいい?
Image Viewer Exampleの真似してQLabel::setPixmap使ってみたけどメモリバカ食いで話にならん
820デフォルトの名無しさん:2010/07/04(日) 22:30:58
mipmap効かせるとか
821デフォルトの名無しさん:2010/07/04(日) 22:48:12
最終手段はWebKitだな、と思ったり思わなかったり。
822デフォルトの名無しさん:2010/07/04(日) 23:38:00
具体的にどういった画像をどのくらいのメモリでどう扱いたいのかが無いから何とも言えんが、
Qt の場合一部だけをデコードするとかしないから、最小でもデコード後の画像のサイズ分は
使うことになると思う。
823デフォルトの名無しさん:2010/07/05(月) 23:11:53
>>819
メモリ馬鹿食いって何と比較して?
比較の対象に比べてどの程度でかいの?
824デフォルトの名無しさん:2010/07/05(月) 23:13:03
QSpinBoxで16進数表示はできないですか?
825デフォルトの名無しさん:2010/07/06(火) 00:15:18
最新のIndyをC++Builder2010に入れるの成功した人いないかな…
826デフォルトの名無しさん:2010/07/06(火) 00:28:51
>>824
ttp://doc.qt.nokia.com/4.6/qspinbox.html#details
QSpinBox を継承して valueFromText() と textFromValue() を
オーバーライドすれば出来る。
827デフォルトの名無しさん:2010/07/12(月) 22:24:48
qtで使っているマクロ一覧があるサイト知りませんか?
828デフォルトの名無しさん:2010/07/12(月) 22:44:58
よくQIODeviceが登場しますが、これは何をするクラス何ですか?
829デフォルトの名無しさん:2010/07/12(月) 22:56:22
名前のまんまだと思うけど違うの?
830デフォルトの名無しさん:2010/07/12(月) 23:11:30
831デフォルトの名無しさん:2010/07/14(水) 01:24:02
>>827
Function listに関数と混ざって載ってるけど、公式ドキュメントではリストとしては特に用意してなさそうだね。

ヘッダファイルからgrepで#defineを切り出したら文字通り全マクロ出てくるけど、多重インクルード避けのマクロまで出てきてみてられん。
ヘッダ読むのはqobjectdefs.hだけよんで満足した上で、Qt Assistantで"Macros"で検索かけてクラスごとに見ていくのがおすすめ
832デフォルトの名無しさん:2010/07/14(水) 09:21:59
833デフォルトの名無しさん:2010/07/14(水) 11:18:21
>>832
それだけだと Q_OBJECT とか重要なマクロが含まれてない。

本当に全部欲しいなら >>831 の言うように grep で抜き出した方が早いが、
そもそも何のためにマクロ一覧が欲しいのか次第。
834デフォルトの名無しさん:2010/07/14(水) 11:31:23
普通にAll Functionsからリンク辿って行けばいいんじゃないの
http://doc.trolltech.com/4.6/functions.html
835デフォルトの名無しさん:2010/07/14(水) 15:49:39
それだと
signal とか slot とか emit とか出ないんでない?
836デフォルトの名無しさん:2010/07/14(水) 20:13:33
d_func()って関数が出てくるんですが、何しているんすか?
837デフォルトの名無しさん:2010/07/14(水) 21:29:36
QGLWidgetを継承したクラスととQWidget継承したクラスをを
QMainWindowクラスを継承したクラスのcentralWidgetにセットして
切り替えできるようにしたいんだけどどうすればいいでしょう?

普通にsetCentralWidgetで切り替えできるかなとか思ったけどエラー吐くみたいで…
838デフォルトの名無しさん:2010/07/14(水) 22:03:30
>>837
切り替えたいだけならStackedWidgetおすすめ。
839デフォルトの名無しさん:2010/07/14(水) 22:18:47
qtとpyqtって何が違うの?言語だけ?
qtにできてpyqtにできないこととかあるんだろうか
840デフォルトの名無しさん:2010/07/14(水) 22:26:37
>>839
QtをPythonから呼び出せるようにしたのがPyQt。
全部かどうかは知らないけど、だいたいの機能は使えるっぽいね。
841デフォルトの名無しさん:2010/07/14(水) 22:41:17
>>840
サンクス
842デフォルトの名無しさん:2010/07/15(木) 21:28:11
qt creatorってjavaのIDEとか、visual studioと比べると使いにくいような
843デフォルトの名無しさん:2010/07/15(木) 21:33:26
具体的に何と比べてどういうところが使いにくいの?
844デフォルトの名無しさん:2010/07/15(木) 21:41:13
左側が使いにくい
845デフォルトの名無しさん:2010/07/15(木) 21:52:49
qtのソースを読んでいると、初期化子でこんなコードを見ます
「test(* new QObject)」
どうやって*newの値をdeleteしているんですか?
846デフォルトの名無しさん:2010/07/15(木) 22:43:26
StatusBarにaddWidget()でQLabelを追加してsetText()で文字を追加しました。
文字がぴったりすぎたので、setMargin()でマージンを設定したのですが、
上下左右の間隔が空いてしまいます。
左右だけマージンを持たせる方法はないものでしょうか?
847デフォルトの名無しさん:2010/07/16(金) 01:13:06
>>845
それに関わらず、Qtにはどこでdeleteしてんだ?って処理がいっぱいあるよ。
QObjectの親子関係を使うと、QObjectがうまいことやってくれる。このへん参照。
ttp://d.hatena.ne.jp/eagletmt/20080912/1221225248

test(* new QObject)だけじゃクラスの定義知らんので何とも言えないが、考えられるのは、
ほんとにメモリリークしてるか、何渡してもtestがいつかdeleteするか、
testがオブジェクトを子として扱うか、どれかだろうなぁ。
848845:2010/07/16(金) 21:58:36
>それに関わらず、Qtにはどこでdeleteしてんだ?って処理がいっぱいあるよ。
俺以外にもそう思っている人は沢山いるんだな
849デフォルトの名無しさん:2010/07/16(金) 22:39:56
Qt4.7, QtCreator 2.0.0, MinGW, Winでデバッグしていると、Locals and Wathcersで変数がまったく見えなくなり、
デバッグを終了しないと復活しないんですが、これって仕様?
VC++使えばこういうこと起きないんですかね?
850デフォルトの名無しさん:2010/07/16(金) 23:17:05
>>848
親コンテナにthisを渡す奴らは
必要なくなったら自分で勝手に
死んでくれるものと思っている。
851デフォルトの名無しさん:2010/07/16(金) 23:18:28
>>849
はい、おきません。
852デフォルトの名無しさん:2010/07/16(金) 23:18:50
>>848
スマートポインタとか知ってる人には特に不思議はないとは思うけど。それ以外の人なら。
むしろ、仕組みを知ってるとかじゃなく単純にdeleteしてないことに気づいてないだけの人がいるとしたら、
C++勉強し直した方がいいと思う。
853デフォルトの名無しさん:2010/07/16(金) 23:20:27
親オブジェクトが0の場合はどうやって親子関係付けるんだ?
854853:2010/07/16(金) 23:21:36
0ってのは数のことじゃなくて、ヌルポインタのこと。
855デフォルトの名無しさん:2010/07/16(金) 23:24:46
頭悪い香具師でも使えるQtってすごいっすね
856デフォルトの名無しさん:2010/07/16(金) 23:27:51
char配列とかを展開しようとして、矢印をクリックすると変数が見えなくなります。
値がウォッチできないデバッガって、デバッガじゃない希ガス。
QtCreatorの問題なのだろうか。。。

>849
QtCreator+cdbで使ってますか?
Visual Studio Addinとかなのですか?
857849:2010/07/16(金) 23:59:36
ごめん。上の>849でなくて、>851
858デフォルトの名無しさん:2010/07/17(土) 10:42:44
お前らはQ_PROPERTYを使っていますか?
859デフォルトの名無しさん:2010/07/17(土) 10:45:53
>>858 意識して使ったことはないな.自動生成されてるかも知れんが
860858:2010/07/17(土) 11:15:12
>>859
本当にQ_PROPETYって便利なのかなって疑問に思ったもんでね
861デフォルトの名無しさん:2010/07/17(土) 11:50:51
文字列でアクセッサーを探して呼出せる。
862デフォルトの名無しさん:2010/07/17(土) 11:56:38
>>861
そうか、ありがとうよ
863デフォルトの名無しさん:2010/07/17(土) 11:59:44
QSettingsクラスを使ってWindowsのレジストリを読みたいんですが、
\HKEY_CURRENT_USER\Software\MyAppにあるキーを取得するにはどうすればいいんでしょうか?
単純にapplicationを空にするとOrganizationDefaultsという名前に置き換えられてしまいます
864デフォルトの名無しさん:2010/07/17(土) 14:45:03
organizationとapplicationを指定して呼び出してみてはどうですか。
865デフォルトの名無しさん:2010/07/17(土) 16:36:51
qtでecho serverを作りたいのですが、何か参考になるサイト知りませんか?
866デフォルトの名無しさん:2010/07/17(土) 16:48:02
前スレ
867デフォルトの名無しさん:2010/07/17(土) 20:04:13
デモのFortune Serverを適当に手直しすれば即完成じゃね
868デフォルトの名無しさん:2010/07/17(土) 20:34:05
*.uiを使ってプログラミングしている時は、
ラベルやボタンの名前はどのように決めていますか
869865:2010/07/17(土) 23:31:42
>>867
void Dialog::listend()
{
QTcpSocket *socket = m_server.nextPendingConnection();
QTextStream out(stdout);

out << (socket->readAll()) << endl;
socket->disconnectFromHost();
}

こんなコードを書いたんだけどね、送信側から送ってきた文字を読み込めないのorz
870デフォルトの名無しさん:2010/07/18(日) 00:03:58
読めてないんじゃなくて
表示出来てないだけとか
871デフォルトの名無しさん:2010/07/18(日) 00:11:40
>>868
Designerが適当に決めてる。
いじる必要がないときは適当に決めた名前を受け入れればいいが、
いじりたいときはそれじゃ不便なので、Designer上でnameの値をいじるといい。
872デフォルトの名無しさん:2010/07/18(日) 01:19:11
>>868 >>871
それは自分でルールを作るかチームで行動するならチームでルール作る
んじゃないか?自動生成だけだと label, label_2, label_3, pushButton,
pushButton_2 とか何と連動するかわからない名前連発となるから好きではない

俺は陳腐だけどstopButton, startButton,… みたいに内容と連動する名前にしてる
Qtの例を見ると良いんじゃないか
873デフォルトの名無しさん:2010/07/18(日) 02:11:00
>>869
そのタイミングだと接続されただけでデータきてない可能性がある。
isReadable() でチェックしてみれば。
普通は readyRead() シグナルを受けて読み込む。
874865:2010/07/18(日) 11:05:54
>>873
ありがとうございました
ビンゴです
875868:2010/07/18(日) 11:40:34
>>872
多くの人がvb.netでlblMessageとかってしているけど、
lblとかbtnってキモいなって思った

qtらしい名前の付け方って無いのかね
876デフォルトの名無しさん:2010/07/18(日) 13:34:01
>>875
>>872みたいにstopButtonとかでいいんじゃね?
877デフォルトの名無しさん:2010/07/18(日) 19:28:04
>>876
そうする事にするよ
ありがとうよ
878789:2010/07/19(月) 19:29:05
どなたか
>>789
お願いいたします・・
879デフォルトの名無しさん:2010/07/19(月) 20:38:41
>>789
DLL とあるから Windows だろうが、OS くらい書いておこう。
ttp://doc.qt.nokia.com/4.6/deployment.html
あいにく、ボタン一発みたいな楽な方法はない。
880デフォルトの名無しさん:2010/07/19(月) 22:29:22
gtkとかに比べたらライブラリが分散してない分、楽だろ
QCoreApplicationならQtCore?.dll
QApplicationなら +QtGui?.dll
追加で *.proの QT += で加えた dll を入れればいい
後は必要に応じて plugins 以下のdll

考えるのが面倒なら、lib と plugins 以下で、debug用(〜d?.dll)以外の
dllを抜き出しとけば間違い無い
881デフォルトの名無しさん:2010/07/19(月) 23:23:18
http://www.rupan.net/uploader/download/1279549185.zip
Echo Serverを作ったのですが、私の力ではいまいちわからな点があります

1.ポートをずーっと使い続けている
2.ボタンを何度も押すと返信される文字がおかしい

暇な人はコードを読んで見てください
882デフォルトの名無しさん:2010/07/19(月) 23:49:29
>>881
>1.ポートをずーっと使い続けている
もっと具体的に何が問題か。
>2.ボタンを何度も押すと返信される文字がおかしい
返信される文字は正しい。
client.cpp で bytearray.append() で以前の文字列に追加しているからそう見えるだけ。

s/complite/compele/
883882:2010/07/19(月) 23:56:05
>返信される文字は正しい。
>client.cpp で bytearray.append() で以前の文字列に追加しているからそう見えるだけ。
ごめん。間違い。もう一度見直す。
884882:2010/07/20(火) 00:20:53
>>881
>2.ボタンを何度も押すと返信される文字がおかしい
Server::connected() で m_tcpSocket を作るたびに readComplite() と writeDate() を coonect() しているため、
二回目以降はこの接続が二つ三つと増えていき、 writeDate() が複数回呼び出されるため。
この connect() だけ Server::Server() に移動すると OK。
885デフォルトの名無しさん:2010/07/20(火) 02:02:33
     ヘ⌒ヽフ
    ( ・ω・) dd
    / ~つと)
886デフォルトの名無しさん:2010/07/20(火) 08:47:54
アプリケーションが終了するときに(exitの中)、
スタックに確保したQProcessのデストラクタで以下のエラーが出るのですが、
何かご存知の方いますか?

QMutexクラスは、自分では一切使用していません。

>> エラーの内容
QMutex::lock: mutex lock failure:
887デフォルトの名無しさん:2010/07/20(火) 08:54:28
しかしQtは情報少ないな
セミナーとかやってないのかなほんと
888デフォルトの名無しさん:2010/07/20(火) 17:28:10
本があるでしょ。
889デフォルトの名無しさん:2010/07/20(火) 18:46:48
>>887
SRA がセミナーやってるぞ。
890デフォルトの名無しさん:2010/07/20(火) 19:51:59
本もあんまりなくねー?
891デフォルトの名無しさん:2010/07/20(火) 20:11:35
本出すっていってもあんまりターゲット思い浮かばないよな
とっかかりは入門Qt4プログラミング一冊で十分だし
892881:2010/07/20(火) 20:56:18
>>882
助かりました
ありがとうございます
893デフォルトの名無しさん:2010/07/20(火) 21:08:40
必要がなくなったのでdeleteしたオブジェクトは、
disconnect()を絶対呼び出さないとダメなんですか?
894デフォルトの名無しさん:2010/07/20(火) 22:16:02
数はいらないけど良い本もあまり無いように思う
コードガシガシ書くなら良いけど Creator を十分に生かしてコードを書く
方法を説明した本をまだ見たことない
895デフォルトの名無しさん:2010/07/21(水) 03:45:27
入門Qt4プログラミング
896デフォルトの名無しさん:2010/07/21(水) 07:01:29
Qt Creatorは世に出てまだ一年ちょっとだから本がないのも仕方ない。
情報少ない,少ないって言うけど,ヘルプは充分情報多いよ。
897デフォルトの名無しさん:2010/07/21(水) 09:10:46
そうそう、Qtの本はあるけど、Creatorは少なし。
898デフォルトの名無しさん:2010/07/21(水) 09:54:34
説明するのは難しいんだけど,ヘルプや例ではコードの例は豊富で参考になる
ただ Creator を生かして slot や signal を作ってつなげてそれで最低限
どれだけコードを書く必要があるのかといった事を説明している本が無いと思う

初めその辺ちょっと苦労した
多分もっと簡単な方法や Creator をもっと生かす方法があるだろうと
思いながらもポチポチ打っていて次第に分かった感じ
899デフォルトの名無しさん:2010/07/21(水) 11:01:57
youtube でいくつか見たことがある
リンクは前スレに貼られてたかな
900デフォルトの名無しさん:2010/07/21(水) 13:53:52
youtube にはいくつかあるけど結構見つけにくい
layout するだけならいくつもあるけどそれだけなら簡単
本来本家の tutorial にそういうのがあると良いのだけど
901デフォルトの名無しさん:2010/07/21(水) 20:14:44
GUIがシングルスレッドなのか調べるために、
GUIのスレッドを10秒ほど停止させたい

教えてエロい人!!
902デフォルトの名無しさん:2010/07/21(水) 20:23:54
それを調べるだけなら別に無限ループでいいじゃないか
903デフォルトの名無しさん:2010/07/21(水) 22:16:32
904デフォルトの名無しさん:2010/07/21(水) 22:17:55
クリックイベントのハンドラでSleep(10000)すればいいんじゃないか?
905デフォルトの名無しさん:2010/07/22(木) 00:00:27
QtDesiginerで、MainWindow上にQPushButtonを配置して、新たに作るQActionと先のQPushButtonを関連付けることはできるのでしょうか?
できるとしたらどうやればよいのでしょう?
906デフォルトの名無しさん:2010/07/22(木) 01:37:14
>>898
そんなに生かさなくてもなぁ。。。
本気で、最低限のコードで済ませたいのならVBとかC#をお勧めするが。

とりあえず、
・ウィジェットの情報をDesigner部分が持ってるのなら、シグナルとスロットはUIファイル上でつなぐことができる。
・UIファイル上のウィジェットからのシグナルを拾いたいときは、自動connectが便利。
  スロットの名前を on_ウィジェット名_シグナル名(引数)のようにすると、setupUi()で勝手にconnectされる。
  例: QLineEdit lineEditのtextChanged(const QString&)シグナルを受け取りたいとき
    スロットを void on_lineEdit_textChanged(const QString &str) のようにする
907デフォルトの名無しさん:2010/07/22(木) 10:30:41
それ以外にも
* promote のさせ方
* 新しい slot, signal の加え方(それで Creator 内でつなぐ)
とかある

知らないとほぼ全部手で書くことになってCreatorを生かせない場合が出てくる

C#でそんなにコード書かないで済む?
Qt,Creator とC++では結構無駄なコード書かないで済んでいるように感じるけど

908デフォルトの名無しさん:2010/07/22(木) 10:43:05
Qtで作ったアプリは大きいしもっさりしてるな・・・
でもプラットフォームに依存しないにはこうするしかないのか
909デフォルトの名無しさん:2010/07/22(木) 11:56:29
>>908
具体的にどのプラットフォームでどういうアプリの事言ってるの?
あと他の何で作ったアプリに比較して「大きいしもっさりしてる」の?

俺は Linux がメインで Qt 系は良く使うけど別に重くは感じてない
k3b, skype, vlc …
googleearth は重いような気もするが開発プラットフォーム変えるだけで
劇的に軽くなるようなアプリも思えないし
910デフォルトの名無しさん:2010/07/22(木) 12:21:10
LGPLだとちょっとした小物アプリ作るにも
巨大なDLL使わないといけなくて不便
かといって商用版は高くて買えないし
911デフォルトの名無しさん:2010/07/22(木) 12:32:01
>巨大なDLL使わないといけなくて不便

そうか?
912デフォルトの名無しさん:2010/07/22(木) 12:40:12
DebugBuildのこと言ってるのかもな
913デフォルトの名無しさん:2010/07/22(木) 12:51:00
>DebugBuildのこと

って何だっけ?
914デフォルトの名無しさん:2010/07/22(木) 15:23:49
Creator で build するとき Debug と Release とあるからそれのことかな (DebugBuild)

Windowsで作ってないけど,DLL嫌ならstatic で GPL にすることもできるはず
915デフォルトの名無しさん:2010/07/22(木) 18:41:57
GPLにすると他のライブラリが使えなくなる
916デフォルトの名無しさん:2010/07/22(木) 18:50:00
どうして?
917デフォルトの名無しさん:2010/07/22(木) 20:13:34
>>916
感染するから。

まあそのライブラリもGPLcompatibleならいいんだけどさ。
918デフォルトの名無しさん:2010/07/22(木) 20:17:26
少なくともGPLにしたくない小さなアプリだと
本体とは桁違いのQtCore4.dllとQtGui4.dllが必要なのは事実だよね。

Qtの生産性は素晴らしいと思うけど、
そういう意味での小回りはきかない。
そこは割り切らないと。
919デフォルトの名無しさん:2010/07/22(木) 20:17:27
>>917
マジか
別に派生物じゃないから大丈夫だと思ってた
920デフォルトの名無しさん:2010/07/22(木) 20:19:30
javaのsynchronizedに相当する機能ってあるんですか?
921デフォルトの名無しさん:2010/07/22(木) 20:39:50
>>919
その認識は超危険。

GPLは静的だろーが動的(DLL)だろーが
使ったらそのプログラム全部がGPLになる。
922デフォルトの名無しさん:2010/07/22(木) 20:58:47
自分の奴をGPLで出す気がないなら、GPLのライブラリは存在しないことにして
スルーすべきだな
923デフォルトの名無しさん:2010/07/22(木) 21:53:16
QtGui4.dll  9.3 MB
QtCore4.dll  2.4 MB

でかいっちゃでかいね。
機能毎に小分けしたライブラリを作って、GPLで公開。
メインの自作部分からは必要なライブラリだけリンクできるようにすれば、みんな幸せになれるかな。
Qtのソース見たことなくて適当な事を言ってみる。
924デフォルトの名無しさん:2010/07/22(木) 21:59:02
結局,問題視されている状況って(どの程度問題視してる人がいるか知らんが)

(商用Qtは買う気無い)かつ(GPLでコードリリースしたくない)かつ(大きいDLL嫌)

という場合だけだよね?

無料で自分勝手に使おうってんだからこのぐらいはしょうがないんでは?
って俺は思っちゃうが

925デフォルトの名無しさん:2010/07/22(木) 22:01:09
かつ(アプリションは公開したい)

という場合
926デフォルトの名無しさん:2010/07/22(木) 22:01:58
アプリション→アプリケーション

すまん
927デフォルトの名無しさん:2010/07/22(木) 22:02:49
まぁでかいdll添付しとけばいいだけだし
気にしても
928デフォルトの名無しさん:2010/07/22(木) 22:34:01
でかいとアップに時間かかるんだよな
ホームページのスペースも食うし
929デフォルトの名無しさん:2010/07/22(木) 23:19:51
930デフォルトの名無しさん:2010/07/22(木) 23:22:57
アプリと別途ダウンロードの形式ならそれほどでもないかも
931デフォルトの名無しさん:2010/07/22(木) 23:25:53
別途ダウンロード形式だと一般人には受け入れられない
932デフォルトの名無しさん:2010/07/22(木) 23:30:04
ネットワークインストール形式だとどうかな?
933デフォルトの名無しさん:2010/07/22(木) 23:41:59
dllふたつをupxで圧縮したらなにかの規約に引っかかるのかな
934デフォルトの名無しさん:2010/07/23(金) 00:09:57
「でかい」って繰り返してるけど今時10MB程度でそんなに「でかい」って認識?
ホームページとか言ってるけど、最近だと無料でも容量 1GBとかあったりするけど。
935デフォルトの名無しさん:2010/07/23(金) 00:19:12
10MBは本格的なアプリが期待されるレベル
936デフォルトの名無しさん:2010/07/23(金) 00:20:24
10MBならOK。
それよかバグ無くちゃんと動作するっていうのが大事。

クロスプラットフォームだとさらに感謝される。
937デフォルトの名無しさん:2010/07/23(金) 00:44:09
デスクトップで他に何も実行しないなら11.7MBくらい平気だろうけど、
ノートなんかだとメモリ少ないだろうし
938デフォルトの名無しさん:2010/07/23(金) 01:07:16
>>937
ノートの喩えはよろしくないな。
今日日のノートは2GB,4GB当たり前だから気にする必要はまったくない。
ふる〜いノートを大事に大事に使い続ける人の
がっちがちに固まった財布の紐を緩めるのは大変だぞ〜。

実行ファイルのサイズとメモリの使用量の相関性への突っ込みは控えておく。
939デフォルトの名無しさん:2010/07/23(金) 02:12:40
ファイルの大きさが10MBだからって
10MBメモリ食うわけじゃないから。
940デフォルトの名無しさん:2010/07/23(金) 02:17:01
dll を必要とする exe があったとして
exe が 100kB 程度
dll (複数)が合計 10MB 程度

exe を実行したときに使用されるメモリ量は?
941デフォルトの名無しさん:2010/07/23(金) 02:33:04
無料のホームページスペースだと1ファイル4MBまでなどということがあるので厳しい
942デフォルトの名無しさん:2010/07/23(金) 04:31:25
Pysideがwin対応してくれるのにはあとどれくらいかかりそうなの?
エスパーでいいから教えて
943デフォルトの名無しさん:2010/07/23(金) 08:31:09
>>941
GAE
944デフォルトの名無しさん:2010/07/23(金) 08:51:17
sourceforge.{net|jp}は?
と思ったがソースを公開しない前提か
945デフォルトの名無しさん:2010/07/23(金) 12:10:25
>>939
よくわからんが、10MBのexeやdllをローダがmmapしたら
仮想メモリ上は最低10MBは必ず食うんじゃないの
そのうちナンボが実メモリに食われるかは分からんけど

実際にはそれに加えてBSSやスタック、ヒープ用にもっとメモリが必要になるから
あくまで「最低」
946デフォルトの名無しさん:2010/07/23(金) 12:33:59
GAEは携帯持ってないと使えない
947デフォルトの名無しさん:2010/07/23(金) 12:41:33
プリペイドかって捨てアド作る
948デフォルトの名無しさん:2010/07/23(金) 13:21:53
GAEは1ファイル1MBだろ
使えなさすぎわろす
949デフォルトの名無しさん:2010/07/24(土) 23:06:45
QThreadPoolを使った事がある人いますか?
あんまりネットにも情報出てないね
950デフォルトの名無しさん:2010/07/25(日) 13:49:57
QByteArray.append("qbytearray");と
QDataStreamを経由してQByteArrayに書き込むのは
何が違うんですか?
951デフォルトの名無しさん:2010/07/25(日) 14:13:17
バッファリングとかエンコードとか
952950:2010/07/25(日) 16:11:02
>>951
つまり、QDataStreamを使うと幸せになれるのね
thx
953デフォルトの名無しさん:2010/07/25(日) 17:04:57
常に幸せとは限らないんじゃないかな
954デフォルトの名無しさん:2010/07/25(日) 18:46:47
スレッドプールを使ったプログラミングがしたいのですが、
qtを使った例があるサイトを教えてください
955デフォルトの名無しさん:2010/07/25(日) 19:21:38
>>954
メモリプールと大差ないじゃん
956デフォルトの名無しさん:2010/07/25(日) 19:48:13
ぬるぽーる
957デフォルトの名無しさん:2010/07/25(日) 19:48:29
ガッ
958954:2010/07/25(日) 22:58:37
>>955
>メモリプールと大差ないじゃん
そんな気はしないんですが
959デフォルトの名無しさん:2010/07/25(日) 23:50:37
スレッドプールはおまけ機能みたいなもんだから止めておけ
OMPやTBBのほうがいい
960デフォルトの名無しさん:2010/07/26(月) 02:43:25
ここのひとはむずかしいしつもんにはこたえられません
961デフォルトの名無しさん:2010/07/26(月) 09:08:52
QThredPoolは自作めんどいなと思った時にはよいと思う
QRunnnableから派生したクラスを与えるだけで動く
シンプルすぎて細かいことはできません以上
962デフォルトの名無しさん:2010/07/26(月) 18:18:28
QtOpenGLの中で、文字列の描画を行うことは可能でしょうか?
DirectXでいうところのID3DXFONTみたいな
963デフォルトの名無しさん:2010/07/26(月) 20:41:02
>>962
QGLWidget::renderText
964デフォルトの名無しさん:2010/07/31(土) 01:37:24
共通のModelを使用して、QTreeViewとQTableViewと同時に機能させたいのですが、何か良い方法はありますでしょうか。具体的には、QTreeViewではxml node親子関係、QTableViewでは、nodeのタブ名を表示させようと考えています。
965デフォルトの名無しさん:2010/07/31(土) 02:20:13
何か問題ある?
966デフォルトの名無しさん:2010/07/31(土) 10:18:04
ツリービューのカラム数を増やしてタブ名も表示するってのじゃだめなの?
967デフォルトの名無しさん:2010/07/31(土) 14:12:27
問題を分かっていないのかも知れんが,例えば Creator で作っているなら単に
ui->QTreeView->... ui->QTableView->...
に共通のmodelの結果を入れれば良いだけに思うんだけど違うのかしらん?
968デフォルトの名無しさん:2010/07/31(土) 18:26:08
>>967
問題を分かってないんじゃなくて
おまえが何を問題にしているのかが伝わって来ないんだよ
969デフォルトの名無しさん:2010/07/31(土) 19:25:46
>>968
俺も一瞬なに言ってんのこいつと思ったが
>>967は質問者じゃなく解答してくれてる方だろ
970デフォルトの名無しさん:2010/07/31(土) 21:10:53
まさかの質問者鴨試練
971デフォルトの名無しさん:2010/07/31(土) 21:32:44
>>967 がとても親切な回答です。
972デフォルトの名無しさん:2010/08/01(日) 00:10:46
>>964>>967 の意味がわかるんだろうか?
わかるなら初めから質問してないような気も…
973デフォルトの名無しさん:2010/08/01(日) 07:37:58
問題が判らないのが問題
974デフォルトの名無しさん:2010/08/01(日) 16:19:03
model作ったことないから黙ってたけど、>>967で何か問題あるの?
975デフォルトの名無しさん:2010/08/01(日) 17:07:07
問題ないよ。
976デフォルトの名無しさん:2010/08/01(日) 23:52:13
QTreeView ->setModel()、QTableView ->setModel()の引数に共通のカスタムModelを渡したい場合、どのようにしてModelクラスを書けばいいのわからない次第です。
977デフォルトの名無しさん:2010/08/02(月) 00:47:53
何か問題ある?
978デフォルトの名無しさん:2010/08/02(月) 00:48:24
普通にモデルのインスタンスを両方にセットしろよ。
979デフォルトの名無しさん:2010/08/02(月) 01:16:57
>>977
QTreeView、QTableViewのどちらかの表示アイテムの一つを削除した場合、簡単にもう一方のコントロールにもダイレクトに反映させたい次第です。
980デフォルトの名無しさん:2010/08/02(月) 02:29:52
>>979
サンプル見たら
981デフォルトの名無しさん:2010/08/02(月) 09:14:25
Model 使ってないから詳しくないけど
update ( const QModelIndex & )
とか使えないの?
982デフォルトの名無しさん:2010/08/02(月) 15:00:56
4.7いつでるんだ
VS2010に対応してくれよ
983デフォルトの名無しさん:2010/08/02(月) 22:29:44
>>981
フラット表示のQTableView Modelと、階層表示のQTreeView Modelとを一つのModelにまとめられないかなーって考えていました。browserサンプルにある、QAbstractProxyModelを使ってみます。




984デフォルトの名無しさん
>>983
で、今のモデルを両方にセットしたら、どんな不都合が起こってるの?