【RAD統合環境】 Qt 総合スレ 7 【Win/Mac/Linux】
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/
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 を使用する」のチェックを外してみる
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); //環境にあわせる
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //ソースの文字コードを指定("utf-8"や"Shift-JIS")
の方が無難な気がする
スレ立て乙です
前スレの
>>995 スレをまたいで話題を続けたくはなかったんだが、あまりに酷い誹謗中傷なので書かせてもらう。
>
>>989みたいな
> 「Delphi/Builderではできたからxxでもこうできなくてはならない」
> なんて価値観の押しつけってバカ丸出しだと思う。しかもエンバカ難民。
> 国を捨てて流れ着いた難民が、「元の国ではこんなサービスがあったんだから
> この国でも我々は同じサービスを受ける権利がある」なんて主張したらどう思う?
> 帰れよ元の国に、って思うんじゃない?
全く的外れ。難民と化したDelphi使いがそれに近い開発環境を求めた結果、
Qt+Qt Creatoにたどり着いた。機能的にはこれでほぼ文句ないと思っている。
ただ、前スレの
>>905はコンパイル時間が気になると言った。
それに対してはプリコンパイルドヘッダーとjomという軽減策がある。
それなのにDelphiを使ったことのない人が、事情もわからずに「コンパイル時間」
の一言を聞いてPyQtを勧めだした。これこそ価値観の押し付けじゃないのか?
>>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;
}
>>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で書いてもこれで通ってしまう。
>>7 それに対して、IDEの完成度でPyQtを非難していたヤツはまだいいけど、
なぜかPythonを「所詮はスクリプト言語」とか言い出すアホが居ただけの話。
>>7 IDEを非難してた方もひどいな
ポトペタ必要→ポトペタあるよ→統合されたIDEが必要→統合されたIDEあるよ→シームレスさが重要
本当に
>>905 がそこまで要求していたのかどうかなんて判らないのに、
「Delphi使いならこう思うはず」っていう主張を延々と。
>>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に入れてしまいます。
>>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"));
じゃまずいんじゃないの?っていう話
>>14 つまり Delphi 厨の自演だったってことですか
>>17 いや、俺はエンバカスレに書き込みがあったので前スレも含めて覗きに来たんだけど。
19 :
9:2010/04/04(日) 18:52:11
>>16 なるほど、そういうことか。理解した。
しかしテンプレに書くにはやはり話がややこしいね。
Phononって、Windows, Linux, Macで同じような仕様・挙動で動くって事でいいんですか?
Windowsのややこしいマルチメディア周りのAPIに触れずに。
前スレでPyQt勧めた張本人(は規制されてるため代行レス)だが、どうしてこうなった。
>>7 >それなのにDelphiを使ったことのない人が、事情もわからずに「コンパイル時間」
>の一言を聞いてPyQtを勧めだした。これこそ価値観の押し付けじゃないのか?
全くずれている。俺はコンパイル時間という観点での解決法を示しただけだ。それで不満なら、求めてたのと違う、の一言で済む話だ。
なんでそれだけで価値観の押し付けになるのか意味が分からない。
Delphiの事情は知らんが、そもそも事情を知っている必要を感じてなかった。
別環境に流れてくる人が、前と同じものを求めているなんて思わなかったから。
(同じもの求めてるなら、同じ場所に留まっていればいいのだから。昔のVBが好きな人はそうしてるよ)
で、その後、なぜか変に噛みついてきた奴がいて、それに変な応じ方をしたやつがいたせいで明後日の方向にずれた
ttp://anond.hatelabo.jp/20100403114254も見てくれ
>>21 なぁんだ。そういうわけだったのか。
> 全くずれている。俺はコンパイル時間という観点での解決法を示しただけだ。
> それで不満なら、求めてたのと違う、の一言で済む話だ。
> なんでそれだけで価値観の押し付けになるのか意味が分からない。
これは前スレの>995の余りに酷いずれた認識と表現に対して売り言葉に買い言葉で
書いた。あなたはもちろん前スレの
>>995じゃないよね。
それならあなたに対しては失礼なことをした。すまん。
まぁ、エンバカスレを見てもらえばわかると思うけど、Delphi/C++ Bulderは難民化
しようとしている。新しいWindowsで仕事をするには、バージョンアップする必要が
あるんだが、新しいバージョンは品質が悪くて不可解な現象が沢山起きたり、
ヘルプがメチャクチャだったりで、みんな閉口している。前バージョンで発覚したバグも
一向に直さない。
そんなわけでQt、特にQt Creatorへの関心度が上がってる。Qt CreatorはDelphi/Builderの
RAD環境に近いからだ。
だからDelphi/Builderからの移行の相談があったら、優しく対応してあげて欲しい。
>だからDelphi/Builderからの移行の相談があったら、優しく対応してあげて欲しい。
そこまでの寛容さを求めるのなら他の言語を「小物に向いている」などという排他的阿呆はきっちり
批判するべきだね。
ID出ないんしどれが誰の意見かさっぱりわかんないっつの
どうしても脊髄反射したいならコテつけてくれNGもしやすいし
俺はとにかくひたすらあぼんしまくっているから全然不快じゃないぜ。
>>20 Phononはバックエンド(OSのAPIとか)との橋渡し的なライブラリらしい
だから同じソースでOS問わず動くけど、挙動については
例えばWindowsならPCにCodecが入ってないと再生できないとかあるはず
>>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()を使うのがいいんじゃないか?
>26
あ、そうなんですか。
vlcのサイト見てたらPhononがどうこうって書いてあったんで、
Phonon内部にvlc由来かffmpeg由来の?codecが入ってるのかなと
想像してたんですが。
>>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だから需要少ないと思ったのかも
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()を使うのがいいんじゃないか?
そうだね
>>30 Qt::CustomizeWindowHint じゃね?サンプルあるよ
examples\widgets\windowflags
33 :
30:2010/04/05(月) 11:12:58
>>32 その通りだった。うまく行ったよ。サンクス。
>>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 は何で「商用利用」という単語に拘りたいのかな?
「商用利用」という単語は意味も範囲もかなり曖昧だから危険な言葉だと思うけど。
>>35 LGPLのリバースエンジニアリング禁止の禁止条項は、重要な落とし穴。
なんで「商用利用」を削除したがるん?
単にテンプレをすっきりさせたいのか
LGPLのQtが商用で普及すると困る立場の人なのか分からんよ
まあ、誰かがまとめWiki作ってくれれば消して構わんと思うけど
しかしリバースエンジニアリングの禁止なんて有効性があるのかな。
とりあえず書いてあることが多いけど、出るとこ出りゃ意味なしって感じもする。
>>36 だから、むしろそれをきちんと書いた方が良いと思うんだよね
>>37 きちんと正しい情報を書いてあげた方が親切でしょ
>>38 日本以外のほとんどの国では意味無いね
明文化されてない日本でも無効であるという説が有力
>>40 企業の法務からしたら、EULA にリバースエンジニアリング禁止条項を
入れ辛くなるだけでも嫌な場合もあるんじゃないの。
裁判をやる以前に企業イメージが損なわれるだけでも損失となり得る。
>>37 >LGPLのQtが商用で普及すると困る立場の人なのか分からんよ
どのライセンスでも商用利用が可能だと書いたのに、
何でそんな邪推をされるの分からんよ…
そんなに商用利用をアピールしたければ、ライセンスの
話と切り分けて、こんな感じにしたら良いんじゃないの。
『Qt は商用利用が可能です。
ただし、バイナリ保有者にもソースコードを公開したくない場合は LGPL
または Commercial Developer License を、リバースエンジニアリングを
禁止したい、Qt 自身を非公開で改変したい等、LGPL の要求から外れる
場合は Commercial Developer License を選択すると良いでしょう。
ライセンスを選択する前に各ライセンスの条項を必ず確認して下さい。』
相変わらずループしてる
どこが?
人類
>>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 を選択すると良いでしょう。
ライセンスを選択する前に各ライセンスの条項を必ず確認して下さい。
>>47 それだとまたGPLでも商用利用可能云々とかなりそうなので
Qt は上記のどのライセンスを選択しても商用利用が可能です。
位にしとくのがいいか?
>>48 GPLでも商用利用は不可能じゃないよ
ソースコードを要求にしたがって渡す必要があるけど
50 :
48:2010/04/07(水) 16:43:17
>>49 だから俺はそういうツッコミが入るから、どのライセンスでも商用利用可能と言っている。
ちょっと言葉が足りなかったな。
「どのライセンスでも商用利用可能」と明記した方がいいと言っている。
商業利用不可でライセンスされているものはいろいろある。
(あれ?)けれども、Qtは、どれを選んでも、商用可ってことで。
だからこういうことでいいんじゃね
■ライセンス
・オープンソース版(Open-source version)
LGPL 2.1 または GPL 3.0 のうちどちらかを利用者が選べます。
・商用版(Commercial version)
こっちはNokia社か日本の代理店(SRA社)とライセンス契約(年間30万くらい?)を結んで使います
Qt は上記のどのライセンスを選択しても商用利用が可能です。
ただし、バイナリ保有者にもソースコードを公開したくない場合は LGPL
または Commercial Developer License を、リバースエンジニアリングを
禁止したい、Qt 自身を非公開で改変したい等、LGPL の要求から外れる
場合は Commercial Developer License を選択すると良いでしょう。
ライセンスを選択する前に各ライセンスの条項を必ず確認して下さい。
質問したら正確に問題が伝わってなかった上にスレが落ちてた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 は、リバースエンジニアリングして、ライセンスキーを作り出したり、暗号化されているデータを復元ができる。
商用版は、前述のようなことを禁じるようにライセンスで縛れる。
>>56 > LGPL は、リバースエンジニアリングして、ライセンスキーを作り出したり、暗号化されているデータを復元ができる。
公開鍵暗号を使えば、作者しか知らない秘密鍵がバレない限り
ライセンスキーを作り出すことが不可能なのでは?
58 :
デフォルトの名無しさん:2010/04/07(水) 19:08:25
>>57 そういうことをしているということをリバースエンジニアリングして、そこをよけるようなバイナリパッチを作れる。
この辺は荒れるしスレ違いだからやめとこうぜ
60 :
デフォルトの名無しさん:2010/04/07(水) 19:29:44
>>58 できるかどうかに拘らず、調べることすらを法的に禁止しなければならないような組織には、
LGPLは向かないと言うことだ。
自分は
>>47 でも
>>54 でも良いよ。
もしこの後も異論が出なければ、次スレを立てる人はこれで立てて下さい。
一年後くらいかな
前スレは大体2ヶ月くらいで使い終わったみたいよ
64 :
デフォルトの名無しさん:2010/04/07(水) 20:47:04
>58
一応確認だけど、認証部分をよけるようなバイナリパッチを作るのはLGPLでも違法だよね?
65 :
デフォルトの名無しさん:2010/04/07(水) 21:16:17
>>64 リバースエンジニアリングが許されるので、その過程の検証のために副産物として
できてしまうのは違法とは言えない。ただし、それを他に伝えたり、伝わってしま
ったり、何かに使おうとしたりするのは別判断になる。
勝手な法解釈だなぁ
こいつらにとっては、シリアル入力必要ないものは、ライセンス取らなくても使い放題なんだろ。
>>65 違法とは言えない
わけねーだろ。
リバースエンジニアリングを許可するのと改変を許可するのとは全然違う。
リバースエンジニアリングを禁止して隠蔽しとけば安心みたいな考えが一番危い。
欧米中国はそんな文言があっても、リバースエンジニアリングしてクローン商品を作ることは法的に認められてる。
もちろんコードをコピーしたとか特許に触れたとか別の違法行為が無ければの話だが。
脱線して来たな
71 :
デフォルトの名無しさん:2010/04/07(水) 22:27:49
>>67 そんなこと言ってないじゃないか。使うのは別のことだと書いてある。
>>68 改変をしてよいとも言ってない。
商用で使わせていただくんだったら、ライセンス料ぐらい払えとは思う。
>>71 バイナリパッチが違法と言えないと言っているわけだsが
>>69 > 欧米中国はそんな文言があっても、
中国は「どんな文言があっても」の間違いだろwwww
中国の新著作権法自体にそれほど不備があるとは思えないな
その運用・執行について別問題
>>72 ライセンス料を気にせず自由に使って欲しいからオープンソースにしてるんだろ
俺はその心を大事にしたいと思う
以前LGPLを使う人のことを乞食呼ばわりしてるヤツがいたな。
NOKIAはQtで儲ける必要なんかないんだから、LGPLをありがたく使わせてもらえば
いいのに。商用ライセンスだけじゃ品質向上がなかなか進まないからGPL/LGPLを
用意してユーザーを増やしてるようだ。
商用ライセンスは、どうしてもLGPLでは困るケース...パッケージソフトを
開発して販売する場合とか...のためにあると思われ。
スレ違いなんで他でやってください。
リバースエンジニアリング禁止条項なんて、大して意味ないだろ
人気ソフトなら必ずだれかがやってる
>>78 こういう話は止めろと言っても終わらないよ
スレ本来の話題を提供するか、面白いコードを投下するか、
そうでなければ自然に話が終わるのを待つしかない
っつーか
基地外が自演してるだけにしか見えない
つ 「Qt プログラミング入門」
この話題つぶしっ
>>77 symbianの開発者が増えたら御の字だもんな
┌─┐
│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘ おっぱい!おっぱい!
どういたしまして
PyQt のプログラミングについてはここで質問しても良いですか?
python スレの方が良いですか?
sjisのテキストを読みたいんだけど、
うまく読み込めない
教えてエロい人!!
QFile file("test.txt");
QTextStream in(&file);
QTextStream out(stdout);
file.open(QIODevice::ReadOnly);
out << in.readAll();
file.close();
QTextCodec::setCodec()
つ 「Qt プログラミング入門」
▁▁▁▁ ▁▁▁▁ ▁▁▁▁ ▁▁▁▁
╱╲ ╲╱╲ ╲╱╲ ╲╱╲ ╲
╱ ╲▁▁▁╲ ╲▁▁▁╲ ╲▁▁▁╲ ╲▁▁▁╲
╲ ╱ ▁▁╱ ╱ ╱ ╱ ▁▁╱ ╱ ╱
╲╱▁╱╲ ╲╱▁▁▁╱╲╱▁╱╲ ╲╱ ▁▁╱
▔╱ ╲▁▁▁╲ ▔╱ ╲ ▔▔╲
╲ ╱ ▁▁╱ ▁╲ ╱▔▔▔╱
╲╱▁╱╲ ▔▔╲╱╲▔╲╱ ▁▁╱
▔╱ ╲▁▁▁╲ ╲ ▔▔╲
╲ ╱ ▁▁╱ ╱▔▔▔╱
╲╱▁╱╲ ╲╱ ▁▁╱
▔╱ ╲ ▔▔╲
╲ ╱▔▔▔╱
╲╱ ╱
▔▔▔▔
99 :
95: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;}
ヘ⌒ヽフ
( ・ω・) dd
/ ~つと)
>>99 最初に QCoreApplication app(argc, argv); を入れると改善したりしない?
102 :
95:2010/04/09(金) 23:27:51
>>101 ちゃんと表示されました
ありがとうございました
>>94 質問内容がQt寄りかpython寄りかを判断して決めてくれ。
こないだpythonの話題でこのスレ荒れたばっかなので、それでも迷ったらpythonスレの方で頼む。
>>104 される。
普段はAero環境でそれになじんだ表示がされているが、
XPからリモートデスクトップで入ってクラシック表示になると同じQtで作ったプログラムがクラシック表示になってたし。
XPにバイナリごと持っていったらXPになじんだ表示になってた。
出来ますがなにか?
つ 「Qt プログラミング入門」
>>106 勝手にデフォルト環境になじんだ設定になるっての。
とりあえずインストールして動かしてみろ。
すぐに分かる話だ。
110 :
106:2010/04/10(土) 12:20:04
ツールバーじゃね?
チャートコントロールって何を使ってますか?
113 :
デフォルトの名無しさん:2010/04/11(日) 12:08:54
QFileDialog::getSaveFileNameで、事前にファイル名をプリセットすることは
できますか?
上書き保存の場合
Qtは読み書きできる画像ファイルのフォーマットとしてTIFFには対応しているようだけど、
マルチページTIFFは扱えないの?
PyQtでPIL
118 :
116:2010/04/11(日) 22:58:06
>>117 サンクス。ただ、今回はC++で書かれた膨大に蓄積されたソース資産を利用するので、
残念ながらPythonは使えないんだ。
libtiff使えば自前サポートもそれほど手間じゃなかろ
ありがとうございました
121 :
116:2010/04/12(月) 15:15:56
>>119 やっぱりそれしかないか。サンクス。
何か尋ねた本人でもないのに「ありがとうございました」いうヤツが出没してるな。
ありがとうございました
pushButtonにフォーカスを移動した状態で、Enterキーを押した場合の
SLOTって作れるの?
Qt Creatorで、Newってやって、Qt Designer Formを選んで実行しました。
そうしたところ、〜.uiファイルしか出来ませんが、これって何なん?
.uiファイルだけじゃなくて、.h/.cppも一緒に作って欲しいに決まってるじゃね?
そうだね
127 :
125:2010/04/13(火) 10:24:46
いやだから、皆はどうやってんの?
Newってやって、Qt Designer Formを選んだのが間違い?
.uiファイルから.h/.cppを生成するメニューがある?
Qt デザイナーフォームクラス
129 :
125:2010/04/13(火) 10:45:53
d
あっという間にデキマスタw
これでダイアログ作りまくりwww
ダイアログのButton BoxにSLOT付けようとすると、
>No Documents matching 'ui_Dlg.h' could be found.
>Rebuilding the project might help
みたいなエラーが出ますが、何でしょう?
131 :
130:2010/04/13(火) 14:55:49
ダイアログ一式作り直したらエラーが消えたので、本当にバージョンミスマッチでした。解決しました。
再作成しなおしたダイアログでSLOT作ってコンパイルすると、今度は、
>Dlg.h:24: error: `QAbstractButton' has not been declared
なんですが、何ででつか?
>>131 QAbstractButton' has not been declared
133 :
130:2010/04/13(火) 15:38:59
対処方法教えて下さい(><)
declare QAbstractButton
135 :
130:2010/04/13(火) 15:54:25
>#include <QtGui/QAbstractButton>
を足して、
slotの実体書いたらコンパイル通りマスタ。
ヘ⌒ヽフ
( ・ω・) dd
/ ~つと)
>>123 signalじゃなくslot?
signalならclickedが出ると思うんだけど、普通のクリックと区別したいってことなら、
QPushButtonを継承して、keyEventをオーバーライドするか、
QObject継承してるクラス(親ウィジェットでしか使う予定ないなら、親ウィジェットでもいいよ)で
eventFilter実装して、そのクラスからのsignalにする手もある。
138 :
123:2010/04/15(木) 18:11:25
>>137 すいません、signalでした。lineEditなどには、returnPressedシグナルが
ありますが、pushButtonでも同じことができるとENTERキーだけで進めるかと
思ったもので、
keyEvent内でENTERキーを捕まえて、シグナルを発行すればいいんですね。
ありがとう やってみます
signal / slot ってプリコンパイルで標準C++に展開されるんですよね?
どのように展開されるのか説明キボン
qt creatorで仕事とか大きなプログラム作っている人いる?
>>139 debug
release
どっちかのフォルダに
moc_hogehoge.cpp
とか出来てるはず
質問です。
Vista 64とxpにQt 4.6.2、mingwを入れて使っています。
両者で同じプロジェクトをビルドするとき、xpでリリースビルドをqtcreaterからビルドした時だけ
qmakeが何か例外を出して止まってしまいます><
msysやcmdのコマンドラインからだとちゃんとビルドできるのですが・・・
ライブラリとCreaterをバラで入れたりSDK丸ごとに入れ替えたり色々やっても変わんないし・・・
xpだとおかしくなったりします?
まあ、コマンドラインからビルドできるから問題ないっちゃ問題ないんですが何か気持ち悪い・・・
で
その例外のメッセージを貼ろうとは思わないのかね
144 :
デフォルトの名無しさん:2010/04/15(木) 20:06:33
確かに貼った方が良いですね。
でも
問題が発生したため、qmake.exeを終了します。ご不便をおかけして申し訳ありません。
というMSへの通報ダイアログなんで情報量が皆無・・・
プロセスの戻り値は-1073741819 (要はゴミ値)。
FFFFFFFFC0000005
ゴミには見えない
色眼鏡で見ている人には見えない
QCoreApplication app(argc, argv);
app.exec();←これが無くてもちゃんと動く
何でですか?
意弁当投げてないから
フォルダ内をファイル名をfailname*.*とかでサーチして正確なファイル名を
得るのに便利なクラスってありませんか?
javaだとArrayListにStringを格納する事ができますが、
QStringは何に格納すればいいんですか?
QList
QStringList
>>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.
156 :
142:2010/04/16(金) 11:12:50
もう原因追究に疲れたのでwindows SDKとvs用Qtライブラリにしちゃった。
問題なく動くようになったしこれでいいや。
>>142 .pro の config をいじったら直ったかもなぁ
>>157 いや、もうその辺は結構いじったので。
そもそもコマンドラインやvistaじゃ動くのでかなりお手上げ。
>Qt フォルダ選択ダイアログ
でググったら、ファイル選択ダイアログが出てきた。
フォルダ選択ダイアログは無いんでつか?
公式のサンプルくらい見てから使うライブラリ決めろよ
あるよ。
162 :
sage:2010/04/16(金) 19:38:32
質問です。
Qt creator って、クラスを継承すると親クラスのメンバは補完してくれなくなりますか?
class my_reader : public ifstream
{...}
としたら、
my_reader->
の時ifstreamのメンバが補完されなってしまい、不便で。
OSは ubuntu 9.10 です。
my_reader-> としたときに、クラスmy_readerのメンバのみを補完候補に上げたいというなら無理じゃない?
インテリセンスでよく使うメンバだけを表示するにはどうしたらいい?
自作
166 :
162:2010/04/16(金) 21:19:10
>>163 失礼。
typoです。
ifstreamのメンバも補完候補に挙がって欲しいのですが、現状、my_reader固有のメンバしか補完候補に挙がってこないのです。
qtextstreamを使う前に、qfileでopenとしないと
テキストを読み込めないのですか?
yes
さーせん
Qtライブラリをwindows sdk x64でビルドしたら64bitバイナリが作れるようになったのはいいのですが、デバッグできません(64bit, 32bitどっちのデバッガも試してみたんでけどね)。
やっぱ、Qt Creatorも64bitでビルドしないとだめっすかね。
171 :
149:2010/04/17(土) 10:41:37
VisualC++では、ディレクトリ内のファイル検索にFindFileFirst関数がありますが
同じ様な Qt関数はないですか
qtcreatorで開発しているんだけど、
なんで*.proにQT += webkitと書かないとコンパイルに失敗するの?
>>171 QDir::entryList()
聞く前に自分でヘルプもっと探せないと、Qtやってくのつらいと思うよ。
175 :
172:2010/04/17(土) 11:29:08
>>173 そんくらい見りゃわかるよ
なんで、#includeだけじゃダメなのかってこと
176 :
174: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:
をを!そんな技が必要だとは。
ありがとうございます。試してみます。
>>175 そういう決まりなんだから、素直に従うしかないじゃん。
つ qmake Variable Reference の QT の項
予想としては、コンパイルエラーじゃなくてリンカーエラーなんじゃないの?
必要なインポートライブラリがリンクされないからだと思われ。
>>175 ヘッダには関数やらクラスの宣言だけが書いてあって、実態は別のところにある。
includeだけじゃ、宣言だけで中身の無い鳩山状態。
180 :
デフォルトの名無しさん:2010/04/17(土) 12:54:15
Qt Creatorで日本語のコメント書いてると文字削除した時にカーソル消えることがあるんですけど
一度消えたらQt Creator再起動するしかない?
182 :
171:2010/04/17(土) 13:21:18
>>175 VC だって #pragma hogehoge 書くか makefile にリンカオプションつけるだろ
それといっしょ
getOpenDialogのselectFilterって、特定の拡張子を除外することはできる?
All Files(*.*)だけど、*.abcだけは除外するとか
>>184 QFileDialog::getOpenFileName()のことだよね?
glob形式のパターンマッチング「〜以外」を表現できないから、無理なんじゃないか?
↑脱字スマソ
× glob形式のパターンマッチング「〜以外」
○ glob形式のパターンマッチングは「〜以外」
なんか FindFileFirst とか getOpenDialog とか selectFilter とか、
語句を平気で間違ったまま書くやつがいるな。
こういう手合いが一番タチ悪い教えて君になりやすい希ガス。
188 :
175:2010/04/17(土) 16:07:13
何でつけなきゃならないのか、わからないけど
結局はおまじないなんだな
感謝する
お前らがqtで2ちゃんねるブラウザを作るとしたら、
スレビュー(スレを表示する所)をどう作る?
QWebView
実質スレ表示にWebの機能なんていらないんだよな
QWebView使わなくてもQTextEditかQTextBrowserで十分じゃないかな?
196 :
190:2010/04/17(土) 17:07:32
>>196 >>193が言ってるのは恐らくJane Styleでいう「検索」→「スレのツリー形式表示」
なんか面白そうだけど、安価つけないやつも多いからな
安価つけなかったり番号間違ったり誤爆ったり
完全にツリーにするのは難しいだろうけど
あきらかにレスがあるのがわかると便利かな
ツリーじゃなくてもいいよ
201 :
デフォルトの名無しさん:2010/04/17(土) 21:22:16
202 :
デフォルトの名無しさん:2010/04/17(土) 21:24:31
loopyに2回も同じこと言われんでも分かる
204 :
デフォルトの名無しさん:2010/04/18(日) 10:10:36
どうすれば、foreachが使えるようになるの?
PowerPCにLeopardのmacがあったんで、xcode3.1とqt4.6.2を
インストールしてサンプルとか簡単なソースをビルドしてみたが、
「プログラムを開始できませんでした。パスかパーミッションに誤りはありませんか?」
と出てしまう。
んで、そのテストのプログラムを直接動かそうとすると、
ターミナルが起動して英文でいろいろと出た後に
"Bad CPU type in executable"って書いてあるんだけど
PowerPCでは使えない?
>>207 たしかに対応してるみたいだね。サンクス。
特に何も考えずにqt-sdk-mac-opensource-2010.02.dmgを
ダウンロードして実行してインストールしただけなんだけど。
Xcodeの方が最新版は使えないから一つ前のを探して
xcode314_2809_developerdvd.dmgってのをインストールした。
う〜ん、よくわからん。
>>209 SDK に PPC のバイナリが入ってない可能性があるかも。
ターミナルから file コマンドで qmake とか調べてみたら。
>>209 qmake -spec macx-xcode でプロジェクトを作り直してみる
QThreadの使い方が良くわかりません
なにか参考になるサイトとかありませんか?
"入門 Qt4プログラミング" で一応スレッドの例があるよ。
214 :
デフォルトの名無しさん:2010/04/19(月) 18:17:43
QNetworkAccessManager を使って
QNetworkRequest で get するとしばらくしてから
SLOT fin に戻ってくるようなのですが
(その間メインウィンドウの方では他の操作が可能です)
これはマルチスレッドの処理が元々 QNetworkAccessManager に実装
されているということでしょうか?
もしそうなら QThread は使わなくても済みそうなのですが・・・
216 :
デフォルトの名無しさん:2010/04/19(月) 18:20:17
218 :
デフォルトの名無しさん:2010/04/19(月) 18:29:15
>>215 >これはマルチスレッドの処理が元々 QNetworkAccessManager に実装
>されているということでしょうか?
マルチスレッドは使っていませんが、マルチスレッドは考慮されています。
>もしそうなら QThread は使わなくても済みそうなのですが・・・
QThreadを使うか使わないかは、スロットでの処理次第です。
>>218 あほなんでよくわかりません
もうすこし噛み砕いて説明して頂けないでしょうか
>>219 もしかしてこういうことができればいいのかな?
QNetworkReply *reply = manager->get(QNetworkRequest(QUrl("
http://www.hogehoge.com")));
while(!reply->isFinished()) QCoreApplication::processEvents();
qDebug() << reply->readAll();
reply->deleteLater();
それは変です
>>215 >これはマルチスレッドの処理が元々 QNetworkAccessManager に実装
>されているということでしょうか?
そうです。別スレッドで処理するのでブロッキングしません
分かると思うけどslot finを呼び出すスレッドはメインスレッドではないので注意
>>220 >>222 ありがとうございます
なんとなくモヤモヤ感が残ってるのですが
今のところ期待した動きになってきたので
とりあえずなんとかなりそうです
また詰まると思うのでそのときにもう少し
詳しく調べたいと思います
>>222 QNetworkAccessManager は別スレッド作って処理してないぞ。
225 :
222:2010/04/19(月) 20:15:01
あっちはあっちであほがあほにレスしてるんかな
qtextstream out(stdout); out << "test";
どうやったら、改行できるの?
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;
}
なんで、コンパイルエラー&うまく表示されないの?
out << qPrintable(s);
hoge.pro の方に
CONFIG += console
QSqlDatabase で SQLite を使ってるのですが
50文字 3column 程度で 500件の insert が 1 分くらい掛かってしまいます
QDataStream(QFile) だと一瞬で終わります
もちろんただのテキスト出力より遅いのは理解していますが
こんなに遅いものなのでしょうか?
>>232 補足情報です
db.open と db.close は最初と最後の一回だけです
commit も最後の一回だけです
(毎回 commit してもそんなに変わらず遅かったですが)
234 :
デフォルトの名無しさん:2010/04/20(火) 17:23:08
>>232 >こんなに遅いものなのでしょうか?
まずは、SQLiteを直に使って試してみることだ。
それらのqtの標準ライブラリがターゲットとしているRDBはODBC経由のみでつか?
Firebirdはやっぱ無理?
InterBase(firebird)用のplugin(qt4-ibase-plugin)があると思うけど
え”、そんなモノまであったとは(驚
238 :
デフォルトの名無しさん:2010/04/20(火) 18:21:36
>>234 そうですね
とりあえず python で同じくらいのデータ量でやってみました
ある意味予想通りですが一瞬で終わりました
インタプリタより遅いってありえなさすです
あとで Qt4 版で再現するソース晒すつもりです
他に原因があるかも知れないので出来るだけ単純なので試してまた来ます
Qtでカスタムウィジェットを作って、Qt Designerでそのウィジェットを使うと、
コンパイル時にそのウィジェットのヘッダファイルを入れないといけないし、
実行時にそのウィジェットのDLLを参照する必要があるけど、
もう少し簡単にカスタムウィジェットをQt Designer使えるようにならないかな?
dllを使わずスタティックリンクにできるだけでもいいんだけど・・・
とりあえず余計な部分を除いた再現するコードです
やっぱり遅いです(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();
}
>>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();
}
245 :
230:2010/04/20(火) 22:17:44
>>231 ちゃんと動きました
ありがとうございます
246 :
デフォルトの名無しさん:2010/04/20(火) 23:32:55
ヘ⌒ヽフ
( ・ω・) dd
/ ~つと)
>>82の続きですが、qtの解説サイトでお勧めはありますか?
LGPLでアプリを配布するとき書かなきゃならない文章ってありまつか?
実験段階のソフトを他人(特定多数)に期間限定で使ってもらおうとする場合
その時点で既にライセンスとかソースの公開とか確認しておくことはありますか?
実験段階だろうが特定多数だろうが事情は変わらない。
QCharの文字をcharにしたいのですが方法が分かりません。
ヘルプでQStringとか調べて、QString::utf16()はあるんだけど、QString::utf8()はコンパイルでエラーっぽいけど、どういうことでしょう。
Utf16とUtf8は簡単に変換できる筈ですよね???
質問がいみふめ。
最初の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*に取り出す。
やってみたわけじゃないけど,これで行けると思うが。
QCharの文字をcharにしたいのですが
d
from〜、to〜、ってのが要るんですね。
今回、QCharからcharにしたかったので、
> QChar qc; //←qcに値を入れる処理も行う!
>char c = qc.toAscii(); //これでUTF-16からUTF-8に変えてるれるつもり
で何とかコンパイル通りました。
qc.toAscii() で確実に UTF-8 にしたいなら
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
しておかないといけないのでは
dd
>>258 QTextCodecの使い方やっと分かりますた。
理解するまで、意外に難しいですね。
そうですね
誰もが一度は通る道
だから
>>1 に書いてある
>>257 QChar::toAscii()のリターン値はcharであってchar*じゃないから1バイトしか入らない。
コンパイルは通るかも知らんが,UTF-8は可変長マルチバイトなんだから,QCharに
入っている文字が1バイト文字以外の場合は期待通りには動かないよ。
UTF-16からUTF-8に変換したいならQString使う必要があると思う。
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();
関係無いけど、
どのOSでもQStringの初期値は、
>Unicode 4.0
なんだ?
>>262 なぁんだ。最初から結果は1バイトだってわかってるんじゃん。
それなら解決策1で良いし,
> QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
は必要ない。ASCII文字はUTF-8と互換性があるんだから。
UTF-8
UTF8
utf-8
utf8
どれが正しいの
Unicode Transformation Format-8
>QTextCodec::setCodecForCStrings
の初期値は何が良いんだろ。
システムのロケール
qwebviewとqtextbrowerって何が違うの?
>>270 QWebViewには通信機能まで含まれてるから、インターネット接続環境があれば
それだけで外の世界のwebページにまでアクセスできる。
簡単なブラウザならすぐ作れるよ。
QTextBrowserはHTMLが表示できるだけなので、リンクが貼ってあるHTMLでも
リンク先が外の世界だと飛べない。ローカルファイルなら大丈夫だけど。
272 :
270:2010/04/21(水) 21:12:31
>>271 QTextBrowserで写真の表示/javascriptの対応を教えてください
273 :
271:2010/04/21(水) 21:17:18
274 :
271:2010/04/21(水) 21:20:56
>>272 ごめん。知らんので調べないとわからん。
写真は普通にHTML内に<img>タグでローカルの画像ファイルを指定すれば良いんじゃないの?
エラい人フォローよろしく。
275 :
270:2010/04/21(水) 21:24:33
277 :
デフォルトの名無しさん:2010/04/21(水) 21:56:43
278 :
デフォルトの名無しさん:2010/04/21(水) 21:58:36
279 :
デフォルトの名無しさん:2010/04/21(水) 22:01:55
280 :
270:2010/04/21(水) 22:04:38
qtの日本語解説サイトお願いします
282 :
デフォルトの名無しさん:2010/04/21(水) 22:59:10
demos/mainwindow の中に saveLayout で
geometory と state を保存している部分がありますが
これをメニューから実行するのではなく
アプリケーション終了時に自動でやりたいと思います
この場合 MainWindow::closeEvent() の中に書くのが妥当なのでしょうか?
他に的確な場所ってありますか?
284 :
デフォルトの名無しさん:2010/04/21(水) 23:07:45
287 :
デフォルトの名無しさん:2010/04/22(木) 00:20:32
>>286 >さすがにalcには載ってないねw
英語のドキュメントを読もうともしていないということ。
>基本的に英語のドキュメント読むのは避けては通れないよ。
読めないなら他のことをやっても同じ。
>英語のドキュメント読まずに聞いていると思われる人と、
論外。
>目的の解説が探せないで聞いていると思われる人では明らかに対応が違ってるでしょ?
書いてあることを探そうとすらしていないのでは?
>>287 おまいは懇切丁寧でウィットの入った優しい返答の揚げ足をとって何が面白いんだ?
ここで質問すると作業が捗るので
見る見る品質が上がって行きます
2chは糞スレ糞レスも多いですが
まだまだ捨てたものではないです
人類の発展に貢献していると思います
肩の力抜こうぜ
適当な質問に適当に答えたり叩いたりできる場所だって必要さ
exe を複数起動するとウィンドウも複数出来てしまいますが
ひとつしか起動出来ない(もし exe を起動しようとしたとき
既に立ち上がってればそれがアクティブになる)ようにするには
どのようにコーディングすればよいのでしょうか?
QTreeWidget と QTreeView は
どう使い分ければよいのでしょうか?
わからないうちはQTreeWidgetでおk
ttp://randt.jp/?p=729 >Qtアプリケーションを作成していて、undefined reference to vtable for <Class Name>エラーが出るなら
エラーが出るんですが、Qtと関係ないクラスにも”Q_OBJECT”って要るんですか?
自作クラスの中のQt部品といえば、QStringとメッセージボックスくらいしか無いのですが。
297 :
295:2010/04/22(木) 13:30:40
自己レス:
>”Q_OBJECT”が要る
のは勘違いでした。
>[ビルド]-[qmakeの実行]を実行
が必用でした。
Qt Creator でコンパイル指定子(#define 、みたいな)設定できまつか?
299 :
298:2010/04/22(木) 16:51:36
これゲームとか作れるの?
不可能じゃないけど、向いてないよ
それは残念
qtのクラスを継承しない時は、絶対に#include <QString>しないとダメなの?
#include <QtCore>
305 :
303:2010/04/22(木) 22:51:15
QButtonのフォーカスをクリックはできるけどフォーカスを保持しないように
(スペースとかでは反応しないように)するにはどうしたらいいのでしょうか?
ClickFocusだとフォーカスがボタンに残ってしまいます。
クリック後に自前でフォーカスを移動させるしかない?
taborder=-1
Qt Ctreatorで作成したウィンドウのサイズを実行時にユーザーが変更できないように
するには,フォームエディタでプロパティのminimumSizeとmaximumSizeをも同じ値に
するのが正しいやり方なの?
yes
no
311 :
308:2010/04/23(金) 11:58:01
>>310 具体的にどうすれば良いか教えてください。
312 :
デフォルトの名無しさん:2010/04/24(土) 00:48:40
>>311 >310 の no は no。>309 の yes が yes。
QWidget::setFixedSize(const QSize&)
>>313 ヘルプを読むと、それって結局minimumSizeとmaximumSizeを同じ値にしてるだけだから、
ソースコード上に書くか、Qt CratorのGUIデザイナ上でプロパティを設定しておくかの
違いだけ。
で?
QtのDemoに入ってるアプリはsetFixedSizeでやってたから
俺はsetFixedSizeを使ってる
フォームエディタでポチポチするよりコンストラクタに一行追加する方が楽だし応用もできる
319 :
デフォルトの名無しさん:2010/04/24(土) 12:43:18
>>316 setFixedSizeの本質は>314。
loopy
321 :
デフォルトの名無しさん:2010/04/24(土) 13:09:35
>>311 src/gui/kernel/qwidget.cpp
コードを読めば分かる。
>>318 GUIデザイナ上でプレビュー見ながら視覚的に丁度良いサイズにしておいて、
geometorytからminimumSize、maximumSizeにwidth/heightを書き写した方が
やりやすい。
どうやったら、zipとrarw解凍できるの?
324 :
デフォルトの名無しさん:2010/04/24(土) 15:12:00
QTableViewを使うと、内容を編集する際に
前のデータがまるっと消えてしまいますが、
前のを残して修正するには、
やはりカスタムのデリゲートを作らないとだめでしょうか。
>>325 モデル作っちゃったのなら、そうするのがいいかもしれないけど
まだ作ってないのならQTableWidgetにしたら消えなかった気がする
TableView / TableWidget や
TreeView / TreeWidget の使い分けの基準が判らんのですが
どこかで判りやすく説明されているサイトとかありますか?
一応「入門Qtプログラミング」は持ってるんですが良くわからなかったので。
328 :
デフォルトの名無しさん:2010/04/24(土) 17:52:23
329 :
デフォルトの名無しさん:2010/04/24(土) 18:32:28
>>327 TableWidgetやTreeWidgetを使って行き詰まって後悔してからTableViewやTreeViewを使う。
わかりました。
ありがとうございます。
*Widget で作ったソースをあとで *View に変更するときになっても
そんなに書き換えなくても済むという理解であってますか?。
QFile::WriteOnly
QIODevice::WriteOnly
どっちが正しいのでしょう
332 :
デフォルトの名無しさん:2010/04/24(土) 20:37:19
333 :
デフォルトの名無しさん:2010/04/24(土) 20:40:29
>>330 目的に合った*Widgetを作るというようにすれば。
処理時間のかかる共有ライブラリを実行中に
画面をフリーズさせない方法を教えてください
お願いします。
>>335 スレッド分けて
a.start();
a.wait();
ってやるとスレッド実行中はフリーズしちゃいますよね
これはどうやって回避させるんでしょうか?
>>336 waitじゃなくてfinished()かrunning()でポーリングすればいいんでね
qDebug() << "日本語";はOKだけど
qDebug("日本語");は駄目なん?
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());
としてみると動かないかな。
qDebug(fmt, ...) じゃないとリリースビルドでもコード残っちゃうから
普通に日本語使えるようにして欲しいなあ
341 :
デフォルトの名無しさん:2010/04/25(日) 08:40:51
>>340 >普通に日本語使えるようにして欲しいなあ
いろいろなコンパイラのことを考えれば、日本語文字列を使わないのが最もよい。
>>341 Qtのサポートしてるコンパイラ(g++,msvc,icc etc)については
問題無いと思うが
よいプログラムを書きたいのではなく、よいソフトウエアを作りたいのです
よいソフトウェアを維持するために
よいプログラムを書きましょう
QtAssistantでQWidgetを検索しても出てこないのって俺だけ?
ページはあるのに…
>>339 さんくす
で、結局TRACEに対応するものはないってことか?
>>340 「普通に」って書いてるから分かってるんだと思うけど
まったく日本語が使えない訳じゃなくて
fmtに日本語が使えないだけだから
qDebug("var: %1", qPrintable(var));
と書けばいい話
そもそもデバッグってそういうもんでしょ?
たしかにdebugしようとして文字列表示させてるのに
それが文字化けしてたらdebugにはならん罠
>>347 qDebug("var: %s", var.toUtf8().constData());
が正しい
Qtのアプリケーションに日本語を使うと起動が遅くなる気がするんですが、
これは気のせいですか?
気のせいです
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のスレじゃなくて開発に報告してあげましょう。
>>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 多分気のせいだと思う
>>340 >qDebug(fmt, ...) じゃないとリリースビルドでもコード残っちゃうから
まじ?
ストリーム形式で%04xなんてどう書いていいのかわからん
今回、初めてリリースビルドしたんだが
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を使ってるけど、どこが問題なのかよく分かりません
361 :
325:2010/04/26(月) 22:41:20
>>326 遅くなりましたが325です。
モデルを分けたのは、
Widgetにするとデータ複製が入るしなあ、と思ったのです。
実際には想定行数は1万行未満なので、
今時問題ないのかもとは思いますが……
モデルは作ったけど、とりあえず状態だし
TableWidgetを試してみます。
ありがとうございます。
362 :
デフォルトの名無しさん:2010/04/26(月) 22:51:23
QTabWidget で,指定したページの可視/不可視をタブごと切り替えたいのですが,良い方法はないでしょうか?
各ページは QWidget になっているので,QWidget::hide() を使ってみたらページの中味が空になるだけでした。
また QTabWidget::setTabEnabled() だとタブ上のラベルが灰色になってクリックできなくなるだけで,タブ自体は
見えてしまっています。
QTabWidget::removeTab() や QTabWidget::insertTab() を使って何とかしようとしましたが,insertTab() は
引数に挿入位置のインデックスが必要なので,タブの可視/不可視を切り替えた時に,元の順番どおりに
タブを並べるのが困難で挫折しました(タブ上のラベルも保存しておかないとならないので QHash とか
使ってゴニョゴニョやったんですが)。
お知恵を貸してください。
曖昧すぎる
どうしたいのかをもう少し厳密に説明してくれ
365 :
363:2010/04/28(水) 17:39:23
>>364 曖昧にならないように説明したつもりだったんですが,伝わらなかったようですね。
まず「タブ」という言葉が曖昧なようなので,QTabWidget に表示される各ページ上部の四角く
突出した部分を「タブ」と呼ぶことにします。
やりたいのは,指定したページをタブごと見えなくしたり見えるようにしたりすることです。
あるページを見えなくした場合,次のページ以降のページがタブごと詰めて表示され,一旦
見えなくしたページを再び見えるようにした場合,元の位置に挿入されるようにしたいのです
(ページの順序は常に保存される)。
以前使っていたC++ Builderではこれが普通に出来たので,Qtでも同じようにしたいのですが,
やり方が見つかりません(現在,C++ BuilderからQtにソフトを移植中)。
よろしくお願いします。
366 :
360:2010/04/28(水) 19:03:11
struct IDPoint{
double x;
double y;
int tool;
bool fl;
};
QVector <IDPoint> m_PntAry;
こう書いてたら、先の警告がでました。
std::vectorに換えたら警告はきえました。
どうして?
>やりたいのは,指定したページをタブごと見えなくしたり見えるようにしたりすることです。
>あるページを見えなくした場合,次のページ以降のページがタブごと詰めて表示され,一旦
>見えなくしたページを再び見えるようにした場合,元の位置に挿入されるようにしたいのです
この部分が何を言っているのかよくわからない。
特に「見えなくしたり見えるように」というのがどういう意味なのか図に書いて説明して
>QTabWidget::removeTab() や QTabWidget::insertTab() を使って何とかしようとしましたが,insertTab() は
>引数に挿入位置のインデックスが必要なので,タブの可視/不可視を切り替えた時に,元の順番どおりに
>タブを並べるのが困難で挫折しました(タブ上のラベルも保存しておかないとならないので QHash とか
>使ってゴニョゴニョやったんですが)。
これをやるしかないだろ
手抜きを考えずにまじめにやろう
>>365 それそのもの、といったメソッドはなさそうです。
QTabWidgetを継承して
void MyTabWidget::setTabVisible(int idx, bool show){
this->setTabDisable(idx, show);
this->tabBar()->tabButton(idx)->setVisible(show);
}
でいいのかなぁ。
371 :
365:2010/04/28(水) 22:15:50
>>368 > 特に「見えなくしたり見えるように」というのがどういう意味なのか図に書いて説明して
これがわからないと言われてしまうと仕方ないですね。AAなんか簡単に描けませんし。
他の方にはわかっていただいてるようですが、簡単に言うと「消したり出したり」です。
QWidget::hide() とか QWidget::show() のようなことを言っています。
ただ、消した時、それ以降のタブが左に移動して詰められるところが単純に消すのとは
異なります。
372 :
365:2010/04/28(水) 22:24:56
>>367 QTabViewというウィジットはないようですし、ヘルプでTabViewを検索しても何も
出てきませんが...
>>369 > これをやるしかないだろ
> 手抜きを考えずにまじめにやろう
おっしゃるとおりで、頑張ってやれば出来るのはわかってるんですが、想像以上に
ややこしくて、出来てから「なぁんだ、そんな手があったのか」ってことになるかも
しれないと思って、先に聞いてみた次第です。
>>370 私もそれを試して見ようと考え始めていました。
QTabWidget::tabBar() って protected なんですね。
ポイントは、tabBar()->tabButton(idx)->hide() とやってちゃんと消えてくれるか
どうかですね。
373 :
365:2010/04/28(水) 23:38:25
>>370 Qt Creatorでフォームに貼ったQTabWidgetを格上げしてやってみましたが、
残念ながらダメでしたorz
tabBar()->tabButton() で返される QWidget* の値が 0 になってしまいました。
そもそも tabButton() の第二引数の ButtonPosition の意味がヘルプを読んでも
不明です。これに指定できるのは QTabBar::LeftSide か QTabBar::RightSide ですが、
意味がわかりません。まぁ、どちらを指定しても結果は同じなんですが。
やはり
>>369の言われるように、頑張るしかなさそうに思えてきました。
>>372 すまそ、tabButtonはまた別の機能っぽいですね。
他にtabBarにそれらしき機能ないっぽいので、タブバーを誤魔化すのは難しそうです。
(さすがにpaintEventの再定義するのだったら、indexを管理した方が簡単そうですから)
嘘教えて申し訳ないです。
>>374 いえ、とんでもない。ヒントいただいただけでも感謝です。
しかし、個々のタブにアクセスする方法はどうやらないみたいですね。
ご承知の通り各ページはQWidgetなんですが、じゃタブは何者?
WindowFlagsに「タブつきウィジット」ってのがあるんじゃないかと思って
調べましたが、ありませんでした。うーん。
場合によっては、ウィジェットは全部QWidgetListに保存して変更あるごとに一旦clear()してaddTabやり直した方が楽そうですね。
アホみたいに数あるとか、頻繁に数が変わるんだったら止めた方がいいですが。
タブ名はwindowTitleとして保存すればいいですし、有効・無効はenabled/disabledを利用すれば、QWidgetの機能だけで全部できます。
tabwid->clear();
QWidget *wid;
foreach(wid, wid_list){
if(wid->isEnabled()) tabwid->addTab(wid, wid->windowTitle());
}
>>375 タブはどうやら、QTabBarがpaintEventの再実装してやってるらしく
(内部的には知りませんが公開APIとしては)タブというクラスはないようです。
378 :
365:2010/04/29(木) 08:16:12
>>376 いろいろ考えていただいてありがとうございます。
> 場合によっては、ウィジェットは全部QWidgetListに保存して変更あるごとに
> 一旦clear()してaddTabやり直した方が楽そうですね。
> アホみたいに数あるとか、頻繁に数が変わるんだったら止めた方がいいですが。
はい。まずはそれでやってみようかと思います。
これだったら面倒はないですね。
> タブ名はwindowTitleとして保存すればいいですし、有効・無効はenabled/disabledを
> 利用すれば、QWidgetの機能だけで全部できます。
なるほど。私は accsessibleName や QObject::property を使うことを考えていました
が、この方が簡単ですね。
ありがとうございます。あとは手を動かすのみです!
>>377 そうなんですか。それじゃ弄りにくいですね。
ここまで書いてくれてる人のレスを流し読みしかしてないけどタブの件にレス。
タブの順番とタイトルと表示するウィジェットのポインタと表示・非表示のフラグを保持するリストを作って
タブを消す、再表示するの操作がある度に全部並べ直せばいいんでない?
>>379 >>376さんの言っているのは、まさにそういうことです。
一応、そのパターンではうまく行きました。
現在、一度消して全部並べなおすのではない方法で
やってみています。
QtCreatorでデバッグビルドとリリースビルドを別々のフォルダに作成することは
可能でしょうか。
>>381 Windowsだと普通にやればそうなります。
Linuxだとそうならないらしいので、.proファイルに例えば、
CONFIG(release, release | debug) {
DESTDIR = release
}
CONFIG(debug, release | debug) {
DESTDIR = debug
}
と書いておけば良いと思います(自分では未確認ですが)。
383 :
365: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
一応報告だけはしないといけないと思いまして...
とにもかくにも、レスいただいた皆さん、ありがとうございました。
384 :
365:2010/04/30(金) 00:08:19
↑ remove()はremoveTab()の間違いです。スマソ。
どうせソース貼らないんだったら
いちいち発表しなくてもいい
ここの人はみんなそれくらい分かってると思うよ
>>385 君のレスよりは有益だ。
まるで初心者な解決法じゃなく、慣れた人っぽい解決法だから役に立つ人もいるかもしれぬ。
>>384 QTabWidgetって仮想デストラクタ持ってないから、メモリリークしないように気をつけてね。
388 :
365:2010/04/30(金) 08:58:43
>>387 え? そうなんですか...
ふと気が付いて調べてみたら、そもそもQWidgetのデストラクタもvirtualになってないですね。
QObjectはなってますが。
まぁ、今回作った派生クラスはデストラクタでやるべきことがないので、宣言も定義もしていません
から大丈夫なんですが、なんだかなぁ。
あとuicで作られたui_xxxxx.hの中身を見ると、格上げされた派生クラスをnewした時のインスタンス
ポインタは、基底クラスのポインタ型ではなくて、派生クラスのポインタ型の変数に代入されてます
から、一応問題はないですね。
しかしなぜデストラクタをvirtualにしないんでしょうね。何か理由があるんでしょうか。
また一つ勉強になりました。ありがとうございました。
389 :
365:2010/04/30(金) 11:23:31
390 :
デフォルトの名無しさん:2010/04/30(金) 12:47:27
>>387 >QTabWidgetって仮想デストラクタ持ってないから、メモリリークしないように気をつけてね。
持ってますよ。
>>388 >しかしなぜデストラクタをvirtualにしないんでしょうね。何か理由があるんでしょうか。
理由は↓だからです。
>QObjectはなってますが。
391 :
365:2010/04/30(金) 12:59:38
>>390 基底クラスでvirtualになってれば、派生もvirtualになるんでしたね
思いっきり忘れていました
どうもありがとうございました
392 :
365:2010/04/30(金) 13:06:48
>>390 > >しかしなぜデストラクタをvirtualにしないんでしょうね。何か理由があるんでしょうか。
> 理由は↓だからです。
> >QObjectはなってますが。
デストラクタは継承されませんが、その場合でも基底クラスでvirtualならば派生クラス
でvirtualになるんでしたっけ? (この辺、知識があいまいです)
394 :
デフォルトの名無しさん:2010/04/30(金) 14:43:31
395 :
393:2010/04/30(金) 16:26:18
>>394 ちょっと手元で実験してみましたが、確かにおっしゃるとおりでした。
また一つ勉強しました。ありがとうございます。
>>390 基底クラスがデストラクタのvtbl持ってるから、派生クラスもvtblもってることになるって認識でいいのかなぁ?
スレ違い
tabbox内のタブをtabboxの横幅いっぱいに拡大したいんだけどこれってどこで設定すれば?っていうか無理なのかしら
┌─┐──┐──┐──────┐
└──────────────┘ タブ3枚、右側は空白
この状態を
┌────┐────┐────┐タブ3枚、横幅いっぱい
└──────────────┘
こうしたいんだが・・・
>>398 QTabBarのexpandingは違うかなぁ……
>>399 TabBoxだけじゃなくてTabBarもあるんですね…無事対応出来ました、即レス感謝です!
細かいハナシで申し訳けないのですが、、、
QtCreatorのヘルプで本文中の文字列を検索した際のハイライトの色ってどこかで変更出来ないでしょうか?
薄いグレーでで毎回見つけるのに苦労してます。
コマンドラインオプションを解析する方法を教えてください
>>402 QCoreApplication::arguments() を使うのもよし、普通にargc、argvを使うのもよし。
404 :
402:2010/05/01(土) 20:13:39
>>401 俺も変更したいと思って探したけど、残念ながらないみたい。
薄すぎw
最初気が付かなくてなんで検索できないのか悩んだw
javaのIDEは左側に、メソッド一覧が表示されるけど
qt-creatorは上にしか表示できないの?
サイドバーにアウトラインはめっちゃ欲しい
なんでないんだろか
IME入力の問題なんとかしてくれないかなー
TableWidgetにかな入力するのがトロいし時々落ちるし・・・
これじゃぁ人に使ってもらうには渋いよなぁ・・
みなさんどう回避してるんですか?
lineeditは知ってたけど、テーブルもそうなのか
俺のレベルじゃ原因の特定すれできん
別にWindowsのバージョン依存じゃないんだよなあれ
XPでもVistaでも7でも平等に不安定だし
Qtの中の人ここ見てるかなぁ?
ぜひともWindows版での日本語入力を改善してください
とりあえずLineEditとTabeWidget
まさか、商用版は問題ないとかじゃないよね?
コードからMS-IMEの状態を切り替える(かな→英数など)ことはできますか?
へー本当だ
今まで気づかんかったけどIME入力にすると
LineEditが不自然に遅くなるne @WindowsXP SP3
まだ誰もバグ報告してないみたいだな
みんな何の用途にQt使ってるの?www
QtってGUI用ライブラリでしょ?www
TextEditも文字が消えなくなるバグあるし、OpenTypeフォントのバグもどうにかしてもらいたいもんだ
自分でソース見てもさっぱり分からん
qt3からqt4にバージョンが上がるときに、qtは大幅な書き直しがあったの?
日本語周りがそんな状態なのに長らく放置されてるってことは
Win版で日本語で商用ライセンスで使ってる開発者ってほとんどいないってことなんですかね?
じゃなかったら苦情出てるはずだと思うんだけど・・
もうWindowsXP使わないから、Nokiaに送ったら改善してくれるかな
知らなかった。
そんなに目立つバグがあるんかい。Qt。
IME周りの不安定さはこのスレでも何度か指摘されてるはず
424 :
デフォルトの名無しさん:2010/05/02(日) 21:57:29
Creator1.3.1なんだけど
置換ってつかえる?
検索はできるんだけど、置換のやり方が分かりません
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初心者でレベルの低い質問で申し訳ありません。
>>425 Ctrl+Fで入力枠が上下に2つ出るじゃろ?
下のほうが置換えや
>>425 Ctrl+Fはいけるけど
Ctrl+Shift+Fの方はないっぽいね
>>414 これはネイティブAPIじゃないと無理なんでしょうか・・・
>>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など)
>>429 InputMethodで検索するくらいのことはしようよ。
QWidget::setAttribute(Qt::WA_InputMethodEnabled, true)
>>431 thx
よく見つけられるなぁ・・・
QtCreatorではInputMethodでは見つけられなかったし
ぐぐってもsetAttributeは見つけられなかった・・orz
どうやって検索したのか教えてください
どうも頭が.netになってるから探す場所がそもそも見当ちがいなのか・・・
>>432 QtAssistantのインデックスのところにinputmethodって入れてみたらsetInputMethodEnabledってのが見つかって、
そこ見たら
Use setAttribute(Qt::WA_InputMethodEnabled, enabled) instead.
って書いてあった。
>>433 なるほど。探してくれてありがとうございます。
どうもC#的な構文の発想が抜け切れておらず・・・・ですいません。助かった。
435 :
425: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)
Webkitのクラッシュの話は前も指摘されてたけど
やっぱり原因不明だから直るまで待つしかないと思う
一応バグレポートで報告済みで、すでに開かれてるみたいだし
>>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
そのLineEditとIMの組み合わせで遅くなるバグはlinux版4.6.2でも確認したよ
とりあえず俺は4.5に落した上で4.7待ちにすることにした
>>439 Linuxではバージョン落とせばいけるのか
つことはやっぱバグとみていいのか
仕様なのかと思ってたw
441 :
デフォルトの名無しさん:2010/05/03(月) 11:50:32
SRA の人はこのスレを見ていない
Windows 版 4.5.1 使ってますが無問題です
linuxのqtはxlibを叩いているんですか?
日本の今の現場の状態だと、IT業界に先はないだろ。
どんどん人材を消耗するだけ消耗して使い捨て、いっつも現場は新人だらけ。
スパゲティソースが残るだけで熟練した技術なんて絶対に蓄積しないよ。
最近は何でもかんでも技術の標準化が進んでるから
「技術は○○が握ってる」とかいうことはあまりない。
むしろ日本勢が旧態依然とした「独自技術」に拘って
ノロノロと研究してる間に中韓みたいなところから標準技術を組み合わせただけの
製品が出てきて市場を取られるんだよ。
丸投げピンハネがはびこっている間は欧米には勝てない。
複数スレを跨ぐコピペって報告した方が良いのかな
今、思ったんだけど
signalとslotって関数ポインタを隠蔽しているだけなのか?
449 :
デフォルトの名無しさん:2010/05/03(月) 19:57:06
>>448 connect() のソース読んでみると、いろいろわかっていいぞ
円独歩安だな
他はどこも動いてないのにw
誤爆失礼
VS2010でコンパイルする方法はありますか?
ぐぐってもいい情報が出てこない
455 :
デフォルトの名無しさん:2010/05/04(火) 07:04:20
まだ予定に入ってるだけか…。
まだ出たばっかじゃん
Betaは相当前から出てるが
qt-creatorの赤の波線どうにかして消せないの?
邪魔くさいんだけど
文法間違ってると出る赤の波線じゃないの?それ。
書いてる途中なのに出てくるのはちょっと邪魔ではあるなぁ。
設定も見あたらないし、消せないのかね?
あるlineEditに入力されたアルファベットを小文字でも、すべて大文字に
したいんですが、可能ですか?
>>462 QLineEdit *le;
QString t = le->text().toUpper();
464 :
デフォルトの名無しさん:2010/05/04(火) 16:19:42
大文字に変えるだけならQLineEdit::textChanged使うのが一番簡単じゃないかな
OS(Windows)のAPIを使うにはどうやるんでしょうか?
>>466 #if defined(Q_OS_WIN)
#include <Windows.h>
#endif
468 :
デフォルトの名無しさん:2010/05/04(火) 21:00:31
1回くらい気にしないか、QObject::blockSignalsを使うか
>>467 お!できました。
ありがとうございます。
471 :
462: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に入力できなくなりました。
ヘルプ
サンプルって、"Ate key press"ってのをそのまま写したの?
Key Pressを食うサンプル写したら、そりゃあ食われちゃうよ。
ヒント: eventFilterはtrueを返すとイベントはフィルタリングされたとして、無視される。
falseを返すとフィルタリングされなかったとして、通常どおり扱われる。
ところで、これってeventfilter使うのは適切なのか?
使うとすればイベントを消して再送出になると思うけど、
それだったらkeyPressEventの再実装の方が簡単な気がする。
473 :
デフォルトの名無しさん:2010/05/05(水) 13:09:34
474 :
471:2010/05/05(水) 15:09:05
>>472 あぁ、そうだったんですね。分かりました。
>>それだったらkeyPressEventの再実装の方が簡単な気がする。
え、そんなのがあったんですか。
また、勉強してみます。
x64 環境にインストールして試してみてる
x86 で作ったいくつかのプロジェクトはそのまま qmake/make も正常に出来て動作した
あるプロジェクトだけ make は正常だったのに実行すると再現性のある場所で必ず落ちる
どうも qDebug() が怪しいみたいだ
もう少し最小限のテストプログラムで同じ操作で落ちるかどうか試してみよう
QtCreator1.3.1でフォームデザイナの画面にヘルプを表示した後に
ヘルプを閉じるとオブジェクトブラウザとプロパティシートが
幅が狭くなったまま戻らない問題、改善してくれると有難いんだが・・
それより、VSやEclipseみたいな動作のドックウィンドウになって欲しい・・
あとエディタをタブ式にしてほしい
多段タブで
>>478 同意
Ctrl+Tabでも切り替えはできるけど
コンボボックスって頻繁に操作するには面倒だよね
左下の小さいウィンドウを『開いているドキュメント』に設定すればいい
多段タブより見やすいし場所取らないし便利だよ
>>481 thx
そういうことができるのか
シングルクリックで切り替わるから楽だね
左にあるプロジェクトとかを右にもってくるにはどうすればいいの?
QStringとstringはどのようにすれば変換できるのですか?
toStdString
486 :
484:2010/05/06(木) 21:44:24
489 :
475:2010/05/07(金) 03:24:28
やはり qDebug() が糞だった
490 :
デフォルトの名無しさん:2010/05/07(金) 10:11:57
qDebugの存在自体知らないので、kwsk教えて欲しいw
493 :
475:2010/05/07(金) 11:09:58
>>490 すみません治っちゃいました
Makefile と debug / release ディレクトリ全部消してから
qmake / make で作り直したら x64 でも普通に動きました orz
qDebug() のせいと言い切ったのは早計でしたが
何かがおかしいようです(ソースは同じのを元に make しました)
っていうか mingw は 32bit 用のをそのまま x64 上で使っているだけなので
バイナリが混ざってたとかいうのが原因とも思いにくいのですが・・・
Fedora 9 QtCreator1.3.1
QFileDailog::getOpenFileNameで開いたダイアログから、ネットワークの
共有ファイルを開くには
495 :
デフォルトの名無しさん:2010/05/08(土) 10:29:22
496 :
デフォルトの名無しさん:2010/05/08(土) 12:10:57
> 494:
やってみたところでは、OSの方でmountしないと無理っぽい。
497 :
494: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と同じように自分で処理する。
499 :
497:2010/05/08(土) 22:54:56
>>498 わかりました。
Windows環境でも、マイネットワークはでないのかな?
テキストボックスで、
改行なしの1行ボックスにしたいのですが、
どうすればよいのでしょうか。
(エンターおすと改行されてしまう)
qt designerを使っています。
QLineEdit ではだめなのか?
VS2010でQtコンパイルしてみたひといる?
>>499 Windowsだと、QFileDialog::getOpenFileName()のoptions引数に
QFileDialog::DontUseNativeDialogを指定しなければ、Windows標準の
「ファイルを開く」ダイアログが出るから、マイネットワークは選択できる。
QFileDialog::DontUseNativeDialogを指定してQt固有のダイアログを
表示させるとマイネットワークは選択できない。
504 :
デフォルトの名無しさん:2010/05/09(日) 08:34:54
>>500 イベントフィルターで、リターンとエンターを無視すればよいです。
>>200読んでちょっと試してみたけど、2chブラウザ作る用途ならまだQTextBrowserの方が速いな
QWebViewは日本語文字列の描画が極端に遅くて、レス1000個描画するのにQTextBrowserの倍くらい時間がかかる
開発はマルチバイト文字軽視し過ぎなんじゃないのか・・・
506 :
デフォルトの名無しさん:2010/05/09(日) 19:28:17
>>505 >開発はマルチバイト文字軽視し過ぎなんじゃないのか
マルチバイトが不要な人達が開発しているから、どうしても後付けだからね。
アップロードできないとは具体的にどうなるの?
エラー落ちするのか、リクエストが送信されないのか、ファイルが保存されないのか、それすら分かってないのか
コード貼るのは偉いけど、エラー内容は各自で調べてくださいって言われても正直面倒だよね
>>508 すいませんでした
とくにエラーもなく終了します
wiresharkで監視したところPOSTリクエスト自体は発行されていました
ちなみにcgiが動作はブラウザで確認しています
ここが2択を強いる糞ライブラリのスレか
>>509 じゃあブラウザからアップロードした時のリクエストと、
>>507のプログラムからアップロードした時のリクエストを比較すればいいんじゃないかな
>>507 boundaryの使い方がめちゃくちゃ
QtCreator って、ファイルを16進ダンプで表示できない?
ubuntuでQt creatorを使って書いたプログラムをWindows環境に持ってきたんだけど、2点ほど困ったので教えてください。
MinGW版です。
・QScrollBarのmaxとminの差が大きい時、スライダを大きく動かそうとすると、マウスの動きに追随してこない。
マウスが0.5秒くらい止まって初めてスライダがその位置に飛んでくる感じ。
trackingはonにしてあるし、Ubuntuの時は感じなかったのだけど。
・アイコンが表示されない。
新しくプロジェクトを作っても駄目なので、何かの設定がおかしいのだとは思いますが・・・。
>>513 プロジェクトの中のファイルを右クリックして エディタを指定して開く > Binary Editor
517 :
513:2010/05/15(土) 09:28:43
>>516 ありがとうございました。
でも、ファイルデータの内容を確認したかったんですが、これはプロジェクト内の
テキストしか表示できないんですね。残念
520 :
デフォルトの名無しさん:2010/05/16(日) 02:39:54
QListIteratorについて質問させてください。
1, 2, 3, 4という要素が入ったリストを->キーを押すたびに1から順に、もしくは<-キーで戻ったところの1つ次から表示したいのですが
進んだ後に<-で戻る、もしくは戻った後に->で進もうとすると1回目がうまくいきません(<-で戻って表示したところと同じところがもう一度表示される)
-> 1が表示される
-> 2が表示される
-> 3が表示される
<- また3が表示されてしまう
<- 2が表示される
(進むのにQListIterator::next()、戻るのにQListIterator::previous()を使用しています。)
直前にどちらを使ったかでフラグを立てることで一応うまく行くと思うのですが、もっとスマートな方法はないでしょうか。よろしくお願いします。
->のとき
表示; next();
<-のとき
previous(); 表示;
じゃだめ?
522 :
520:2010/05/16(日) 03:36:59
>>521 ありがとうございます。
ただ、next()やprevious()を使わないとデータを取り出せないようなのでそれは出来ないみたいです・・・
JavaスタイルイテレータよりもC++スタイルイテレータ使ったほうが良いだろうね。その場合は。
524 :
520:2010/05/16(日) 15:16:48
>>521, 523
STLスタイルを使用することで解決出来ました。
ありがとうございました。
表示(i.previous())」を「i.previous; 表示(i.previous()); i.next()」に置き換えることでJavaスタイルでも一応うまくいきました。
QtCreatorに既存のクラスに新しくメソッドを追加するコマンド等はありますか?
何がしたいのかもう少し詳しく書かないと、質問の意図がわからん。
VCのクラスデザイナみたいなものを期待しているなら
標準では存在しない
qt4でテトリスを作りたいんだけど、格子状の線を引きたい
どのクラスを使えばできるの?
Qt Creatorでビルドする際、コンパイル前に任意のコマンドを実行させる方法があったら
教えてください。リンク前なら、.proファイルでQMAKE_PRE_LINKを設定しておけば
できるようですが、コンパイル前に実行するコマンドの指定というのは、qmake Variable
Referenceを探しても見つけられませんでした。
具体的に何をやりたいのかと言うと、TortoiseSVNのSubWCRevコマンドで、ソースコード
にSubversionのリビジョン番号を埋め込んでからコンパイルしたいのです。
>>530 プロジェクト
ビルドステップを追加
順番age
532 :
530:2010/05/19(水) 20:15:06
>>531 おー、そっちでしたか。そちらには発想が行きませんでした。
ありがとうございました。
これってVS2010で使える?
FAQ
Qt Creatorを英語化するのってどこだっけ?
ヘルプが英語なのにメニューが日本語だと逆に探せねぇorz
Qt Creator のインストールディレクトリ以下の、share/qtcreator/translations の中にある
qtcreator_ja.qm を一時的にリネーム(先頭に _ 付けるとか)してやると英語になるよ。
もしかすると qt_ja_JP.qm もリネームする必要があるかも。
540 :
デフォルトの名無しさん:2010/05/28(金) 09:39:03
test
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としておかしい気がします
多分使い方を間違っているのではないかと考えているのですが
なんで 1.0.0 なんて古いのをつかってるんだ?
まずは 1.3.1 か 2.0-beta1 を試してみれば。
どうもありがとうございます
もう安定しているだろうと思ってレポジトリにあったものを使っていました
本家のを入れ直してみます
>>541 Qt Creator1.3.1でも自動生成はされないよ。
[格上げ](promote to)をやっておいてから、メインメニューの[ファイル]⇒
[ファイル/プロジェクトの新規作成]で[C++ クラス]を選択して、ウイザードで
必要な情報を記入して進めば、ソースとヘッダーファイルが作成されるから、
後は手書きするしかない(1.3.1はGUIが最初から日本語化されてるから日本語
GUIの表現で書いてる)。
自動作成してくれてもいいと思うのは同意だけど、やってみるとそんなに面倒じゃ
ない。
545 :
543:2010/05/30(日) 15:16:53
どうもありがとう
1.3.1にしてもやはり自動生成されないので何を間違えたのかと悩んでいました
クラス生成で Widget から継承してうまく行きました
なんか感じが少し分かった気がします
Trolltech の docs も結構見たんですが,意外と Creator を最大限
に利用する方法って見つからないんですよね
ガシガシ書くだけなら例はあるんですがせっかくの IDE なので「正しく」使いたいなと思って
546 :
544:2010/05/30(日) 21:11:42
>>545 どういたしまして。
> Trolltech の docs も結構見たんですが,意外と Creator を最大限
> に利用する方法って見つからないんですよね
確かに。何となく「Qt Designerのマニュアルを見ろ」みたいな感じで...
それでも見つからないのもあるね。
例えば今回の「格上げ先を指定」のダイアログの中にある、「グローバル
にインクルードする」というチェックボックスの意味がわからないし、説明も
どこにも見当たらない。
どなたか知ってます?
547 :
デフォルトの名無しさん:2010/05/30(日) 23:33:44
548 :
546: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を実践している、または興味がある
・マスクを用意できる
・都内でイベント参加できる
・イベント内容およびこの仲間を通じて知りえた情報を口外しない
・成人男子である
・携帯電話および携帯メールアドレスを私に公開できる
・酒が好きである
希望者は私宛にメールを送ってほしい
全員が参加できるわけでもないので、こちらの選択に任せてもらう
なるべく想いを書いてもらうほうがわかりやすいし
経験や顔写真も歓迎。
r
[email protected] [email protected] [email protected]
Qt Creator 1.3.1をLinuxで使っていてプロジェクトを他のところからコピー
してクリーン,ビルドするとCreatorからはPermission deniedとなってしまいます
実行ファイルはできていてターミナルやファイルブラウザからは不思議な事に普通に走ります
どうしたらCreator内からも走るようになるのか分かっている方いたら教えて下さいますか?
質問です:
QString qsBuf;
に文字列が入ってるとして、
この文字列をUTF8ととして、
std::string sBuf;
に入れるにはどういうコードになりますでしょうか?
OSはWindows(とMAC OS X)を想定しています。
d
見てみると、
>std::string sBuf = qsBuf.toStdString();
みたいな感じですか?
>QString::toUtf8() const
の使い方や意味が丸で分からない感じなんですが。。。
この程度の英語辞書引けば中学生でも読めるだろ。
toStdString()はtoASCII()呼んでるから、QTextCodec::setCodecForCStrings()見るって書いてる。
これにUTF8セットしてるなら
>std::string sBuf = qsBuf.toStdString();
でいいんじゃね?
>>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() );
でも行けるはず。
これ、数字の三桁区切り簡単にできるのね
便利だわ
VS2010対応はまだかいな
Qtって検索しづらい
ウィンドウがアクティブになったときのイベントって無いのですか?
あります
聞かれたことだけにしか答えない人っているよな
564 :
デフォルトの名無しさん:2010/06/03(木) 19:27:23
565 :
デフォルトの名無しさん:2010/06/03(木) 20:57:21
>>563 「無いのですか」とろくな調べ方もしていないのがありありだからじゃないか。
>>563 お願いしますを素直に言えない人っているよな
そういうことはついったーにでも書いてろ
>>560 つ[もう1つQt特有のキーワード][-quicktime]
まあ、Qtの名をつけたのはかなり前だから
仕方ないんじゃまいか。
今変えても混乱起こすだけになりそうだし。。。
569 :
デフォルトの名無しさん:2010/06/04(金) 12:59:31
いやっほう
検索って google とかのことか
Qtのdocs 内の検索かと思ってた
いつも google とかでは qt4 と何かキーワードで検索していて不便感じない
mysqlと接続したプログラムを書こうと思っている
mysqlのapiを使って接続するのと、qtを経由させて接続する方式のどっちがおすすめ?
qt
Qt
MySQLのAPIがどんなのか知らないけど、
余分にライブラリ入れなきゃいけなかったり、
クライアント入れた環境じゃないと動かないとかいうなら、
Qtのライブラリの方が面倒が少ないと思う。
577 :
573:2010/06/04(金) 23:19:13
>>576 わかったよ、どっちも試してみることにする
578 :
デフォルトの名無しさん:2010/06/04(金) 23:39:55
QtでMySQL使うには、MySQLのライブラリを入れなければ使えません。
MySQLの話題が続いてますので、便乗させてください。
WindowXPのVM Player上でUbuntuを走らせQtを使ってます。
ネットワーク越にMySQLにopenすると5秒ぐらい帰ってきません。
localhostならワンテンポ遅れるぐらいですが。
これって、VMのせいでしょうか?
ちょっと板違いですいませんが
openに失敗してるのなら単にタイムアウトの設定の問題かもしれない
>>579 VMの設定内容もバージョンも晒さずになにをE.S.P.しろと言うのかね
>>579 WireShark か tcpdump でホスト側とゲスト側の両方で通信内容を見たら分かるよ
MySQLがHost側で動いてるのかGuest側で動いてるのかも
584 :
579:2010/06/06(日) 22:38:04
VMware Playerはたしか2?
openに失敗してる訳じゃなく、開けるんだけど、5秒ほど掛かる
MySQLはサーバーで、クライアントをQtで作ってます。
もともと、VMの今の設定では自分のMyDocumentsを開くにも時間がかかるので
このせいだろとは思うんですが、VMなしの直通の環境がすぐ出来そうにないので
MySQLサーバー、Qt製クライアントをネット越に使ってる方でレスポンスに問題が
無ければ、納得するんですが。
ただ、同じ環境でMS SQLサーバーとオリジナルのODBCで繋ぐと
まったくレスポンスが問題にならないので、あれと思ったわけです。
MySQLがHost側で動いてるのかGuest側で動いてるのかも
586 :
579:2010/06/07(月) 11:38:16
>>585 あ、失礼しました。
1台は、WinodwsにVMを入れUbuntuをゲストOSしにして、QtでMySQLのクライアント
を組んでます。
で、ネットワーク内の別のUbuntuマシンでMySQLサーバーを走らせてます。
587 :
579:2010/06/07(月) 11:42:20
あと
サーバーネームはIPアドレスを直接指定してます
自分の環境すら満足に説明できないのに
まともなプログラム書けると錯覚してるのか
Qt外からはスムーズに接続出来るの?
Qt4.3.0から4.6.2に移行したいんですけど
ファイル移動させてVSのインクルードの設定変更だけでいけますか??
未解決の外部シンボルってのが大量に出ます・・・
>>590 一回クリーンしてからビルドしてるんだよね?
>>590 良い機会だと思ってその辺の事も調べてみたら?
ライブラリの場所も指定しなきゃな
クリーンは行っています
環境を移行できないと困るので頑張ってみます
ライブラリの設定もリンカで行っていました。すいません
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"
とこのようになっていたんですがこれが原因でしょうか?
また明日がんばります
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関係かと思うのですがなにかアドバイスいただけないでしょうか
環境変数QT_DIR変更してねぇんじゃね?
俺は必ずソースからビルドしてるから違うかもだけど
俺もソースからビルドするからなんとも言えないけど
QMakeが吐き出したvcprojの「wchar_tを組み込み型として使用する」が「いいえ」になってたりしない?
ダイナミックリンクライブラリ(DLL)zyなくて
スタティックリンクライブラリでビルドする方法教えて
>>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
>>602 Qt Creator 2.0 RC ではなく、2.0 Beta を使う。
604 :
602:2010/06/10(木) 01:39:58
>>603 ありがとうございます。新規作成にQMLが表示されるようになりました。
すみませんが、もうひとつだけ質問させてください。
QDeclarativeView や QDeclarativeContext を使うためには .pro に QT += declarative を追記する以外にもやらなければならないことがあるのでしょうか。
>>604 #include <QtDeclarative>
は?
それに失敗しているならプロジェクトが4.7系のQtを使う設定になってないか。
606 :
デフォルトの名無しさん:2010/06/10(木) 09:51:15
ありがとうございます。
607 :
602:2010/06/10(木) 11:44:32
>>607 Mac で Qt 4.7 Beta のバイナリーパッケージか?
自前のビルドばかり試してたから今初めて気がついたが、
こいつ QtDeclarative モジュールが入ってないような。
609 :
602: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/
iPad, iPhoneは対応しまつか?
>>610 難しい質問。開発元がノキアだから、単にQtを普及させるための戦略としてのiPad, iPhoneに進出はありえない。
確かに
>>613 何でこのスレでその話題なのか知らんけど、iOS の基盤に Mac OS X がある事を書くと、
その記事のストーリーラインが崩れるからじゃないの。
Pentium3のノートに入れてみた
デバッグ開始までに5分以上掛かるw
Qtのサンプル、解説の日本語サイトない?
今Qtについてるサンプルを解読するしか方法がない
Win32Apiから移行してみたが情報の少なさに絶望した
英語だってだけで,情報は多いよ。Qtのヘルプだけで充分な情報が得られる。
ヘルプ内にサンプルコードも豊富に書いてあるし。
そんなに難しい英語じゃないから,頑張って読むのが吉。
619 :
デフォルトの名無しさん:2010/06/12(土) 22:00:38
620 :
デフォルトの名無しさん:2010/06/12(土) 22:03:34
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 俺の環境(Ubuntu i686)だとビルドは成功するけど
X Error: BadMatch (invalid parameter attributes) 8
Extension: 128 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x4800018
みたいなエラーが出て再現以前に走らん
>>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)
ビルドステップ '' を実行中
>>625 macportsのqtを使えばいい気がするんだけどな〜
>>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が使えるようになります。
うーむ、このスレ見るとAroraが日本語入力で落ちるのもQtのせいっぽいな。
Qt 4.6 インストールして、visual studio 2008j上でビルドしようとしても
#include<QApplication>のところで、ファイルが開けません。とでてくる。
環境変数の設定で、PATH=c:\qt\4.6\bin:c:\Qt4.6\includeとしているんだけど、
これだけじゃ駄目なの?
>>632 c:\Qt4.6\include\QtGui
も加えればいけんじゃないかな
>>632 PATHにinclude指定するとか意味ふすぎる・・・
MainWindow w; が
w.show(); される前
MainWindowのコンストラクタか、ShowEventで条件によって
qApp->quit(); することはできない?
>>635 MainWindowにフラグ用の適当なメンバ変数を追加して
if(m_flg){
qApp->quit();
return ほにゃら;
}
>>632 ていうか、windowsだと区切り文字:じゃなく;だろ。
638 :
635:2010/06/13(日) 22:19:44
ビルドしたら
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しました
>>622 MacBook PRO, Mac OS X 10.6.3, Qt 4.6(Carbon) で最初のサンプルが何も表示されず。
二つ目は正常動作。
641 :
622: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で治っているならきっと未来が見える…!)
642 :
640:2010/06/14(月) 13:45:45
>>641 >また、2つ目は 10.5 において以下の2つの問題が起きているんですが、10.6 では問題ないでしょうか?
どちらの問題も再現する。
もう一つ悪い知らせを。
Qt 4.6(Cocoa)、Qt 4.7(Cocoa)だとどちらのサンプルでもウィンドウが表示されない。
それぞれレポジトリからの自前ビルド。
>>642 > どちらの問題も再現する。
了解です。ありがとうございました。こちらも報告した方がよいですね。
ググって見つけた [#QTBUG-8638] QGLWidget obscuring other widgets on Mac
怪しいんですがサーバが重すぎて内容が読めません…。
> Qt 4.6(Cocoa)、Qt 4.7(Cocoa)だとどちらのサンプルでもウィンドウが表示されない。
まじですか…。Cocoa 版ではやり方自体を変えないとダメかも知れませんね。orz
こちらでもソースから Cocoa 版をビルドして試してみます。
(BoingX のサンプルによると Cocoa には NSBorderlessWindowMask があるので
背景抜き OpenGL 描画は正式にサポートしているっぽい)
>>642 64ビットでビルドしてない?うちではi386とx86_64のユニバーサルでビルドして、
64ビットではサンプルを起動できなかったんだけど32ビットだと起動できた。
645 :
デフォルトの名無しさん:2010/06/15(火) 20:42:54
gj
GUIアプリ一般に関することかもしれませんが質問があります。
たとえば、ファイル開くメニューで処理が重い場合、バックグラウンドスレッドで処理させるとします。
その間、ファイル開くやほかのメニューが起動されると困るのですが、その場合の対応は一般的にどのようにするものなのでしょうか?
実行されては困るメニューをすべてDisableにすることを考えたのですが、
ショートカットキーでメニューハンドラを実行される可能性もありうまくいかないかと。
メニューハンドラすべてにスレッド処理中ステータスを持たせるのも、メニューが増えるとあまりスマートではないかと思ったり。
>>646 ヘルプを読む限り,QAction::setEnabled() でコントロールすればショートカットキーも効かなくなるから
大丈夫なんじゃない?
>647
即レスありがとう。メニューをDisableするだけでOKなんですね。余計なこと考えすぎていました。
いちおう実行関数の入り口でも弾いた方がいいと思うよ
今は大丈夫でも、あとで抜け道ができちゃう可能性もあるし
>>646 ショートカットも含めて再突入禁止する
そのためにActionMappingが
>>646の場合は処理が終わるまで一番上にダイアログ出しておくのが普通でないの?
>たとえば、ファイル開くメニューで処理が重い場合、バックグラウンドスレッドで処理させるとします。
>>646 メニューじゃなくてQActionをDisabledにしたらショートカットも無効にならない?
655 :
561:2010/06/18(金) 14:52:26
つ [d]
>>564 ウィンドウがアクティブになったときのイベントを作ろうと思って、
ウィンドウを選択してGo to slotしましたが、
・iconSizeChanged
・toolButtonStyleChanged
・destroyed
・destroyed
・customContextMenuRequested
というイベントしか表示されないのですが、
どうしたら宜しいでしょうか?
656 :
561:2010/06/18(金) 16:26:30
eventFilterメソッドってのを手書きすれば、おkでしょうか?
>>658 そんなら同じような書き方を二度しても仕方ないだろ?
少なくとも
>>647を読んでないように受け取られるようじゃ無意味。
>>660 「メニューじゃなくて」ってあえて書いたのが分からなかった?
まぁ、書いてあることを理解できない人には何言っても無意味なんだけどね。
>>661 そんな書き方じゃ誤解を生むよ。的確に書く練習した方がいい。
模範解答:「
>>647も書いているように,メニューじゃなくてQActionをDisableに
するんだよ。そうすればショートカットも無効になる」
言葉足らずの典型だね。
>>662 お前、女の会話みたいな文章が好きなんだな。
「>.647読み直せ」か、ああいう風に書くかどちらかで十分だったし、それ以上は冗長だった。
ポインタと値を両方渡す意味はない。
>>665 もし同一人物だったらこうなってたわけですね。
女『車のエンジンがかからないの・・・』
男『あらら?バッテリーかな?ライトは点く?』
女『昨日まではちゃんと動いてたのに。なんでいきなり動かなくなっちゃうんだろう』
男『トラブルって怖いよね。で、バッテリーかどうか知りたいんだけどライトは点く?』
ちくわ大明神『それさっき言っただろ。自分の言ったことくらい覚えてろ』
男『え?』
ちくわ大明神『模範解答:「さっきも言ったけど、ライトは点く?」』
男『さっきも言ったけど、ライトは点く?』
女『もしかしてちょっと怒ってる?』
男『いや別に怒ってはないけど?』
女『怒ってるじゃん。何で怒ってるの?』
男『だから怒ってないです』
>>664は言葉足らずが男らしいと勘違いしてるみたいだから、自分でもメッセージや
ヘルプが言葉足らずのソフトを作って、ユーザーから沢山問い合わせが来るのにも
男らしく責任取って自分で対応してるんだろうなw
さ,次いこうか。
どれぐらいのマシンスペックがあればQtのIDEで快適に開発できるんだろうか?
C++BuilderとかVisualStudioよりデバッグ重いよねこれ
デバッグは確かに重い。最近Qtでの開発用にマシンとして Core i7 2.8GHz/2.0GBメモリ
のものを購入したけど,MinGWでgdb使う場合でもVCでcdb使う場合でも大差なく遅い
(もちろんWindowsでの話)。
以前はCentrino DuoのノートPCで,コンパイルはプリコンパイルド・ヘッダー使えば
我慢できる範囲だったけどデバッグが余りに遅いんで速いマシンにしたんだけど,
何とか使えるギリギリの線ぐらいにはなったけど,期待したほどは速くならなかった。
前述のノートPCでC++ Builderも使ってたけど,デバッガーはストレスなく動作
してた。やはりIDE内蔵のデバッガーと,外部のコマンドラインデバッガーを
コントロールして使うのじゃ,差があるんだと思う。
それなんで,簡単なデバッグは qDebug() 使ったいわゆる「デバッグライト」で
やって,どうしてもというときだけデバッガー使うようにしてる。
ただ,コンパイルはさすがに劇的に速くなった。
あと,Qt自体をソースからビルドしてみたけど,前のノートPCでは退社前にスタート
させて,朝出社しても終わってなかったのが,今度のマシンでは3時間で終わった。
>>664 > 「>.647読み直せ」か、ああいう風に書くかどちらかで十分だったし、それ以上は冗長だった。
> ポインタと値を両方渡す意味はない。
しつこいけど前者はOK。後者(
>>653)はアンカーが
>>646になってるから誤解されたんだろ。
>>648になってれば問題なかったはず。
いい加減空気読めよ
>>667 なんで書いてないことを勝手に妄想で補完するかなぁ。
ていうかメッセージやヘルプを2chに書き込むのと同じ感じで作るバカはそうそういないぞ。
>>668-669 大した事してないからかも知れんが,そんなに重い?
core i7 3.2GHz Linux で使ってるけど debug もそんなに重くは感じない
Linux と Windows で重さ違うのかしらん
ただcache 関係のバグなのかたまにヘルプ画面ががうまくリフレッシュ
されないことが有る…
C++ Builderはその10分の1のスペックで
普通に動いていたかなら。
qtが重いのは間違いない。
i7でもきついのかやっぱ・・・
しかしQtでの開発案件とかないかなどっかに
676 :
669:2010/06/19(土) 23:30:00
>>673 まぁ,重いと思う感覚は人によっても違うだろうからね。
Linuxじゃ比較できないけど,C++ Builderのデバッガーの速さに比べると,
やはりストレスは感じる。
特に最初のブレークポイントで停止してから,ローカル変数の内容が表示される
までが長い。
>>669に書いたノートPCだと数十秒も掛かった。今でも5秒くらい
掛かってると思う。測ったわけじゃないけど。
C++ Builderだと,デバッガーでツールチップで変数の値を表示するのも
ほぼ瞬時で出るからなぁ。
とは言ってもC++ Builderはもう使いたくないんでQtに移って来たんだけど。
677 :
669:2010/06/19(土) 23:33:26
>>675 うちの会社にはあるよー。Qtにある程度慣れた人なら大歓迎状態。
vs2010で使いたいと思ってgitから4.7落としてきたんだけど
configureできる?
qstringlist.hが見つからないとか言われるぜ
16%で120MiB超か…
先は長いぜ
680 :
デフォルトの名無しさん:2010/06/20(日) 21:03:00
お前ら、qtで何作ってんの?
>>680 残念ながら在宅では無理。ハードウェアを制御するソフトなので,実機がなければ
テストもデバッグもできない。
実機くれ
重さ数トンもある大型機械だよ。いる?
なぜqtでそんなものを?
Qt組み込み系は強いんじゃないかな
ハニー、それはもちろん・・・ キュートだからさっ!
qtはいろんなものをコンテナに組み込む仕事に強いのです。
大きさはともかく、signalとslotで機械制御できたらおもしろそうだな。
レゴのマインドストームってLabViewベースで動いてるらしいけど、Qtでも動かせたら楽しそう。
> 大きさはともかく、signalとslotで機械制御できたらおもしろそうだな。
そうか? C++でイベントドリブンでプログラミングしたこと無い?
>>685 あぁ,建設機械みたいなものを想像されたんだと思うけど,そうじゃなくて,
分類としては精密機械に入る生産装置なんだ。
それで,各種のパラメーター設定とか,グラフ描画とか,GUIの比率が
とても高いし,顧客ごとのカスタマイズも多いのでQtを選択した。
>>690 Qtででもevent driven なプログラミングするでしょ
マウス関係とか
signal/slotは通常の event driven なプログラミングより
使いやすい感じするけどね
Designer で繋げる場合が多いのも結構好きだ
>>691 ちょっと楽しそうw
作業場所は都内ですか?
北海道だろ
ipod touchに入るの?
誤爆
>>690 Qtのsignal/slotやらwin32apiのWindowProcはイベントドリブンに入るんだろうか…入らないなら、ないな。
どれ使おうが結局は似たようなもんなんだろうが、使いやすさとかの点では変わってくるからなぁ。
マシンAからマシンBにテキストを送信するだけの、C/Sシステムを作りたいんだけど
何か参考になるページとかない?
てか、どのクラスを使えばいいんだよwww
void Widget::changeEvent(QEvent *e)
{
QWidget::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
qt creatorを使ってguiを作ると、なんでこんな関数ができちゃうの?
てか、何してんだよこれ
そもそもC++はGUI(イベントドリブン)が
作りにくい言語。
だから使いやすいRADを実現した処理系は
ことごとくC++標準とはいえないような
奇妙な実装をしている。
qtもまたしかり。
gitから落としてきたのってwindowsでビルドするときにやることある?
じっと見てる。
>>702 >実行中の言語切り替え対応。
C++以外でqtは書かないんだけど
なんで、言語切り替え機能なんて
>>707 英語とか日本語とか。Qtは多言語対応が得意。
>>702 ヘルプでQWidget::changeEvent()や「Internationalization with Qt」を見てごらん。
あとビルドすると生成される ui_widget.h に retranslateUi() の実装が記述
されてるから、中身を読めば何をやってるかわかる。
>>703 他の言語だとそんなに楽か?
Java使ってたけどそんなにわかりやすいとも楽だとも思っていなかったが
Button startButton = new Button("start");
startButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
…
}});
みたいな感じかな
すべてバラしても良いけど大分長くなる
マウス関係も同様
signal/slot 使うと楽に感じる
「C++標準とはいえない」と言うがC++標準にGUIが無いのに
何が言いたいの?
横レスだけど、
>>710 >「C++標準とはいえない」と言うがC++標準にGUIが無いのに
>何が言いたいの?
moc を咬まさないといけないのは C++ の表現力に限界があるからだと言いたいんじゃないの。
別に難しい話でも複雑な話でもない様に思えたけど?
C++もやりにくくはないと思うのだけど、smalltalkとか使うと意見変わるのかなぁ?
確かにQtはsignals:とかpublic slots:とか、いくらマクロとはいえC++の範囲を逸脱してるように見えるし、
mocなんてもはや反則技に近いと思うけど、ある意味これもC++の表現力なのかな、と思ったり。
いちQt信者として言わせてもらうと、作ってる人たち、ほんとC++のことよくわかってんだな、と。
>>712 >moc を咬まさないといけないのは C++ の表現力に限界があるからだと言いたいんじゃないの。
>別に難しい話でも複雑な話でもない様に思えたけど?
mocのおかげでC++とは別物になってるけど
それもこれもC++の仕様が糞すぎたからだろ
mocの出来が良すぎてQt気に入ったよ
むしろC++だと思わない方が良い
ああもうひとつ言い忘れた
個人的にはC++のテンプレートでごちゃごちゃしたのが気に入らない
ついでにQt使い始めてBoostいらなくなったと感じた
>>714 mocすごすぎわろたwww
簡単なcppソース吐いてるだけなのにすげーwww
オレオレpreprocessorを作って言語拡張やってるところは結構多いと思う
少なくとも素のC preprocessorで滅茶苦茶するよりかはマシ
そもそもC++がCのプリプロセッサだったからな。昔の話だが。
C++の「何でもあり」感は嫌いじゃない。
719 :
561:2010/06/22(火) 10:44:46
>>719 installEventFilter() な。
QMainWindow にもある。基底クラスの QObject の機能。
721 :
561:2010/06/22(火) 11:59:47
dd
QMainWindowを派生したクラスで、
>this->installEventFilter(this);
としたら動いたっぽいです。
つまり、
コールバック関数はQObjectのメソッドだし、
そのコールバック関数をQObject::installEventFilterで登録する、
ってことですか。
722 :
561:2010/06/22(火) 13:50:17
ついでなので、Qtの中の人の動きを知っておきたいです。
>1.イベントハンドラで処理する
>2.QObject::event()を再定義する
>3.オブジェクトにイベントフィルタを指定
QObject::event()ってのが、Qt/QObjectフレームワークで実行されていて、
その中で、登録されたイベントフィルタやイベントハンドラを実行するんですよね?
イベントハンドラとイベントフィルタの違いってのは以下の通りですか?
・見た目には、Qt CreatorのGo to slotのリストに出てくるのがイベントハンドラ
・QActionを定義して置いて、SIGNALとconnectできるのがイベントハンドラ
う〜ん、イベントハンドラとイベントフィルタの位置付けがまだハッキリしないお。
723 :
561:2010/06/22(火) 15:47:46
実装見てないけど、全部イベントフィルターに送られるんじゃないの?
イベントフィルターがシグナルの発生とかコールバック関数の呼び出し受け持って、
処理しなかったイベントは親クラスのイベントフィルターに送られる。
イベントのもっと基本的な処理は環境依存で、例えばWindowsならwin32api、LinuxならX11を分からないとどうにもならない。
>>712 C++だったGUI(イベントドリブン)のプログラミングするならC++標準とは
いえないようなものになるんじゃないの?
それともRADでない処理系であればC++標準のプログラミングになる?
それなら具体的にどうするのか興味あるけど
726 :
712:2010/06/22(火) 20:12:36
つっても、windows3.1時代はMSもボーランドも勝手な言語拡張してたし、
C++標準+マクロテクのMFCはあのザマだし、やっぱQtみたいに言語拡張しないと見通し悪いよ>C++
具体的にどんな時にどういう問題があるのか書かないと、単に君の感想でしかない訳だが…
>>726 君が
>>712 で「わかりやすい」と言っている
>>703 に書いてることだからきいたんだけど
機能的に十分というなら Qtが作れるんだから十分でしょ
ただQtは「C++標準とはいえない」というのならどのような
「GUI(イベントドリブン)」のためのフレームワークや環境が
C++標準なのかってことなんだけど
「GUI(イベントドリブン)」と書いたのはできるだけ元の
>>703 の
趣旨にそって引用したからだよ
730 :
707:2010/06/22(火) 21:49:43
>>708 ようやく言っている意味が分かった
国際化ね
731 :
712:2010/06/22(火) 21:59:38
>>729 済まんが、君が何が言いたいのかさっぱり分からん。そもそも君は誰?
ID が出ない板だと言う事を理解した上で、もう少し質問を絞って、
具体的に書いてくれ。
>>731 >>710 で質問した人だよ
GUIや event driven のプログラムを標準といえる書き方で書く
ならどういうフレームワークで書くの?
それができないならQtが「C++標準とはいえない」と言ってもどれも
標準ではないから意味が無い
機能的にはスクラッチから書けばフレームワークもC++で書けるのだから
できるが,それをするならQtの方が「標準とはいえない」という理由もない
>>729 横からだが、C++標準ライブラリだけでGUIが作れないのは自明で、
unixシステムコールやら、win32apiやらがないとGUIにはならない。
外してるかもしれんが、ここでのC++標準というのは、
・ライブラリじゃなく言語の話
・マクロなどによるトリッキーな実装、mocのような外部プログラムによるコード自動生成は
「ことごとくC++標準とはいえないような」に含まれる
・いえる、いえないの基準はわりと曖昧。特にマクロ実装のトリッキーさの評価なんて個人差ありすぎ
・目安として「このライブラリを知らない人がこのコードを見たら、クラスや関数の仕様は分からないだろうが、
構文自体は理解できるだろうか? エラーが出ない構文に見えるだろうか?」という基準があげられる
そういう基準だと、Xlib、Win32API、GLUTあたりはC/C++の標準に近い形でGUIが書けるのではないかと思う
(どれも、C++ってよりむしろCだけど)
qtは英語の説明しかありませんが、お前らはそこら辺どうしているんですか?
735 :
712:2010/06/22(火) 22:19:09
>>732 >それをするならQtの方が「標準とはいえない」という理由もない
Qt は moc を使うから C++ 標準ではないよ
Cfront を使っていた初期の C++ が C では無い様に
>>734 頑張って読む。最初は面倒に感じたけど,単語は何度か辞書引けば(アルクで調べれば)
覚えるし,だんだん慣れた。
>>733 サンクス
そういう意味でC標準ならわかる気がする
自分では強いて言えばC++の感覚とズレてる感じが少しあるのはsignal/slot
を使うことと Q_OBJECT と入れる(で行終わり!)こと位かな
APIは比較的自然で直感的に感じる
どのフレームワークも癖や「ノリ」みたいなのがあるから慣れは必要だわな
イベントハンドラの実体って関数ポインタだし、
それがNULLで無ければ実行するっていうようなクラスライブラリになる。
その先フレームワークは、ウィンドウシステムがコールバック関数を受け取るわけだから、関数ポインタが必須。
そーゆー意味ではC++がベスト。
コールバックをクロージャで渡せた方が柔軟だわな
今の所、C++ では無理な話だが
C++ Builderだと独自拡張みたいだけど、__closureってのがあるよね。
イベントハンドラの型が、
>typedef void __fastcall (__closure *TNotifyEvent)(System::TObjectTObject* Sender)
みたいな感じで。
クロじゃーってどういう意味?
環境にアクセス出来て状態を保持出来る関数リテラルの事
d
文章難しくて、意味理解できないけどwww
イベントハンドラだと、関数ポインタを実行するところをトレースすればデバッグできるよね。
で、Qtのシグナル・スロットってクラスライブラリだと、スロットを実行してるところってどこにあんだろ。
てか、何て文字を検索すれば良いんだろ?
内部処理を全てUTF-8にしたい場合は、
どういう初期処理を書けば良いですか?
747 :
745:2010/06/23(水) 14:15:48
dd
>QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));
>QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));
上が実行時の文字コードで、下がソースコードの文字コードですか。
内部処理は16bitUnicode固定じゃなかったっけ?
その2つは、
QString s1="CString";
QString s2=tr("TrString");
ってした時に、""内をUTF8とみなして内部コードに変換するってだけで。
749 :
745:2010/06/23(水) 16:09:29
>内部処理は16bitUnicode固定
そうなんでしか?
とりあえず、747のコード書くだけで、
>フォームから文字入力→ファイル出力→ファイル読み直し
がUTF-8で出来たっぽいです。
ファイルをUTF-8モードで見てもおkですたw
751 :
745: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
>>742 それがC++で書けないから、
>connect関数
でカバーしてるってことかい?
>•Windows - Q_WS_WIN
>•Mac OS X - Q_WS_MAC
みたいのはあるみたいですが、
Qt Creatorでコンパイルしてるときに#defineか埋め込みされてるコンパイラ指定子はありまつか?
Qt Creator 2.0.0がリリースされた
QAbstractSocket ってAbstractのくせに、実体化できるんですか?
>>753 自前のライブラリなどで,Qt以外の開発環境と処理を変えるが目的なら,QT_CORE_LIB が
定義されてるかどうかで切り替えるのが良いみたいだよ。
#ifdef QT_CORE_LIB
// Qt環境でビルドされてる場合の処理
#endif
みたいに。
758 :
753:2010/06/24(木) 11:23:11
QT_CORE_LIBデキマスタ(・∀・)
>>756
759 :
751:2010/06/24(木) 11:31:26
>>754 > Qt Creator 2.0.0がリリースされた
日本語メニューはまだみたいだね。
761 :
デフォルトの名無しさん:2010/06/24(木) 18:38:39
隣の席のガキがうざい
日本語化の仕方来た
763 :
sage:2010/06/26(土) 12:58:03
>>754 > Qt Creator 2.0.0がリリースされた
なんかデバッガが速くなってない? VS2008版だけど。
ドキュメント読んでもよくわからないから、qtのソースを読もうと思っているんだけど
kernelってディレクトリがあるんだけど、何これ?
>>763 速くなってると思う。ステップ実行で一呼吸ある感じがなくなった。
最初のブレーク後の「ダンパを初期化しています」はあいかわらずだけど。
Windows用のプログラムを書く時に、VisualStudio2010ExpressよりQtを使う
メリットてあるの?
C++でGUIアプリ作るならQtのほうが楽
VSはC#ならポトペタできるけどVC++ではできない上にMFCもないのでほぼベタCかC++でAPI叩くしかない
QtかC++Builderかって迷うところはあるけどVSと迷うことはない
VS2008までしか触ってないから2010はどうか知らんけど
不幸にも流行って*nixへ移植するときとか
>768
MFCあってもうれしくないけどなw
まなげどC++なんてC++じゃない
文字列操作とか国際言語化とかも考慮しても
CStringのアホな子いらない子を使うよりも
QStringの方が圧倒的アドバンテージがあるな
VisualStudio2010Express使うメリットがあるなら別だが、そうじゃなければ好みの問題。
俺は Qt 使ってるけど,なぜか周りにはMFC使う位だったら
Win32APIそのまま使うわ,という人間の割合高いな
ようわからん
>>774 それは理解出来る
MFC は糞すぎるから
まあ Qt 使えば良いのにとは思うけど
>>771 「まなげど」って「ま、だけど」の間違いかと思ったらManagedのことか。同意。
WindowsオンリーならVSでいいけど、
個人でも企業でもLinuxやMacの需要が高まってるから、
これから手を出すならQtの方がいいでしょ。
ライセンスの問題がなければな
>>778 ないだろ?
> ライセンスの問題がなければな
ライセンス契約すればいいじゃん。
聞いてる時点でやる気も調べる気も行動する気も最後までやり遂げる気も無い
Qt(2010.01版)のWindows/mingw版を使って
QTextEditやQPlainTextEditを貼り付けただけの
ポトペタアプリを起動すると、微妙に遅いよね。
(IMEがOFFでも、あまり変わらない感じ)
別にだめってほどでもないんだけど、
軽快なアプリケーションを作るのは難しいのかな。。。
自分のCPUやメモリ環境OSも晒さずに何を言っておるのかね
javaやC#よりは快適だろ
速いが、javaやC#より不安定なイメージ
linuxでもgtkの方が安定している気がする
mingwなんて使っているから
>>784 Linuxだが、IMまわりは不安定だけどそれ以外ではそこまで不安定でもない感じがするぞ。
gtkは糞
Excelのデータ読み書きしたいんだけどどうすんの?
QTで作ったアプリを一つのパッケージにしたいんですけどどうすればいいんでしょうか??
QT createor でbuild してから Run させて実行はできるんですが、
必要なdllだけまとめて配布用にパッケージ化したいんです。
なんかボタン一発で出来たりはしないんでしょうか??
Qt4ってマイナーバージョンによっても結構機能違うみたいやね
常に最新にしておいたほうがいいのかな
>>788 Qt側では用意されてない。COMでも使ってみたら?
Qt Creator 2.0にしたら、ツリー表示で便利になったね。
改悪でIDEが重くなったらどうしようかと思ったが、このツリーだとソース開きやすいね。
.cpp/.uiと.hが離れてるのはちょっと違和感だけど。
mingwが変わったのか標準C系のヘッダーファイルの明記漏れで2つコンパイルエラー出たけど、
Qtに必用なDLLもバージョンうpしたのかなぁ。
QTextEditを使うと、漢字変換の際に、
未確定文字列に破線がつき、
変換中の候補の背景色が灰色になります。
(WinXP Lunaはカット、MS-IME Standard 2002 ver8.1、Qt4.6.1)
他のアプリケーションでは、
未確定文字列は波線で
変換中の候補の背景色は、そのほかの文字列と同じです。
他のアプリケーションと同じ見た目にしたいのですが
どうすれば変更できるのでしょうか。
QInputContextにも、フォーマットを指定するメンバ関数は
見当たらないし。
(Qt製のskypeは標準的な感じに見えます)
QPushButtonのアイコンを実行時に条件に応じて変更したいのですが、
やりかた知っている方いますか?
QtDesigner上でアイコンを設定すると、そのアイコンは表示されるのですが、
コード上でsetIcon(QIcon(":/resource")); すると、アイコンが消えてしまいます。
>>795 存在しない画像ファイルを指定して消してるだけのような・・・
797 :
795:2010/07/01(木) 09:14:53
>>796 さん
レスありがとうございます。
おっしゃる通り、存在しない画像ファイル(リソース)を指定して消していただけでした。
ありがとうございました。
QString moji = "xxxxx";
qDebug() << moji;
として、Qt Creator 2.0のApplication Outputに変数mojiの内容を表示した場合、
xxxの文字数が少なければ問題ないのですが、数百文字以上になると後半が文字化けしていまいます。
正しく表示させるにはどうすれば宜しいでしょうか?
うちは問題ないけど?
800 :
デフォルトの名無しさん:2010/07/02(金) 16:00:12
>>794 見た目の事はStyle系のクラスをどうぞ
Qtでhttpsアクセスしたい場合はQt自体をリビルドしないと無理なんでしょうか?
Qt += network
.netのSplitContainerみたいなことをしたいのだけど、Qtだと何を使えばいいのでしょう?
QSplitter
>>803 最新版はOpenSSLを入れてリビルドして…という手間はいらないのでしょうか?
>805
thx.
DesignerのContainerにはなかったのですが、コードで書くしかないんですかね?
signalって普通に呼び出していいの?
ほい
サンプル見るとemit使ってるね
シグナルだと明示してるだけで特に意味はないみたいだけど
>>810 Qt 4.5.3, Linux X11版
/usr/include/Qt/qobjectdefs.h
#ifndef QT_NO_EMIT
# define emit
#endif
では、単に明示してるだけだな。
まぁシグナルは中身ないんだし明示した方が後々読みやすいんじゃないか
signalは呼び出すものではなく投げるものです
オブジェクト指向用語で言えば、
メッセージですね。
それがどうかしましたか
qt creater ver2になってから、起動が遅くなったね
817 :
794:2010/07/04(日) 13:16:28
>>801 ありがとうございます。そういえばスタイルシートがどうとかあったけど・・・
調べてみます。
使わないプラグイン減らしたら
起動早くなったりしないかな
819 :
デフォルトの名無しさん:2010/07/04(日) 20:31:22
サイズが大きい画像を表示したいんだけど、メモリ消費量抑えるにはどうしたらいい?
Image Viewer Exampleの真似してQLabel::setPixmap使ってみたけどメモリバカ食いで話にならん
mipmap効かせるとか
最終手段はWebKitだな、と思ったり思わなかったり。
具体的にどういった画像をどのくらいのメモリでどう扱いたいのかが無いから何とも言えんが、
Qt の場合一部だけをデコードするとかしないから、最小でもデコード後の画像のサイズ分は
使うことになると思う。
>>819 メモリ馬鹿食いって何と比較して?
比較の対象に比べてどの程度でかいの?
QSpinBoxで16進数表示はできないですか?
最新のIndyをC++Builder2010に入れるの成功した人いないかな…
qtで使っているマクロ一覧があるサイト知りませんか?
よくQIODeviceが登場しますが、これは何をするクラス何ですか?
名前のまんまだと思うけど違うの?
>>827 Function listに関数と混ざって載ってるけど、公式ドキュメントではリストとしては特に用意してなさそうだね。
ヘッダファイルからgrepで#defineを切り出したら文字通り全マクロ出てくるけど、多重インクルード避けのマクロまで出てきてみてられん。
ヘッダ読むのはqobjectdefs.hだけよんで満足した上で、Qt Assistantで"Macros"で検索かけてクラスごとに見ていくのがおすすめ
832 :
デフォルトの名無しさん:2010/07/14(水) 09:21:59
>>832 それだけだと Q_OBJECT とか重要なマクロが含まれてない。
本当に全部欲しいなら
>>831 の言うように grep で抜き出した方が早いが、
そもそも何のためにマクロ一覧が欲しいのか次第。
それだと
signal とか slot とか emit とか出ないんでない?
d_func()って関数が出てくるんですが、何しているんすか?
QGLWidgetを継承したクラスととQWidget継承したクラスをを
QMainWindowクラスを継承したクラスのcentralWidgetにセットして
切り替えできるようにしたいんだけどどうすればいいでしょう?
普通にsetCentralWidgetで切り替えできるかなとか思ったけどエラー吐くみたいで…
>>837 切り替えたいだけならStackedWidgetおすすめ。
qtとpyqtって何が違うの?言語だけ?
qtにできてpyqtにできないこととかあるんだろうか
>>839 QtをPythonから呼び出せるようにしたのがPyQt。
全部かどうかは知らないけど、だいたいの機能は使えるっぽいね。
qt creatorってjavaのIDEとか、visual studioと比べると使いにくいような
具体的に何と比べてどういうところが使いにくいの?
左側が使いにくい
qtのソースを読んでいると、初期化子でこんなコードを見ます
「test(* new QObject)」
どうやって*newの値をdeleteしているんですか?
StatusBarにaddWidget()でQLabelを追加してsetText()で文字を追加しました。
文字がぴったりすぎたので、setMargin()でマージンを設定したのですが、
上下左右の間隔が空いてしまいます。
左右だけマージンを持たせる方法はないものでしょうか?
848 :
845:2010/07/16(金) 21:58:36
>それに関わらず、Qtにはどこでdeleteしてんだ?って処理がいっぱいあるよ。
俺以外にもそう思っている人は沢山いるんだな
Qt4.7, QtCreator 2.0.0, MinGW, Winでデバッグしていると、Locals and Wathcersで変数がまったく見えなくなり、
デバッグを終了しないと復活しないんですが、これって仕様?
VC++使えばこういうこと起きないんですかね?
>>848 親コンテナにthisを渡す奴らは
必要なくなったら自分で勝手に
死んでくれるものと思っている。
>>848 スマートポインタとか知ってる人には特に不思議はないとは思うけど。それ以外の人なら。
むしろ、仕組みを知ってるとかじゃなく単純にdeleteしてないことに気づいてないだけの人がいるとしたら、
C++勉強し直した方がいいと思う。
親オブジェクトが0の場合はどうやって親子関係付けるんだ?
854 :
853:2010/07/16(金) 23:21:36
0ってのは数のことじゃなくて、ヌルポインタのこと。
855 :
デフォルトの名無しさん:2010/07/16(金) 23:24:46
頭悪い香具師でも使えるQtってすごいっすね
char配列とかを展開しようとして、矢印をクリックすると変数が見えなくなります。
値がウォッチできないデバッガって、デバッガじゃない希ガス。
QtCreatorの問題なのだろうか。。。
>849
QtCreator+cdbで使ってますか?
Visual Studio Addinとかなのですか?
857 :
849:2010/07/16(金) 23:59:36
ごめん。上の>849でなくて、>851
お前らはQ_PROPERTYを使っていますか?
>>858 意識して使ったことはないな.自動生成されてるかも知れんが
860 :
858:2010/07/17(土) 11:15:12
>>859 本当にQ_PROPETYって便利なのかなって疑問に思ったもんでね
861 :
デフォルトの名無しさん:2010/07/17(土) 11:50:51
文字列でアクセッサーを探して呼出せる。
QSettingsクラスを使ってWindowsのレジストリを読みたいんですが、
\HKEY_CURRENT_USER\Software\MyAppにあるキーを取得するにはどうすればいいんでしょうか?
単純にapplicationを空にするとOrganizationDefaultsという名前に置き換えられてしまいます
864 :
デフォルトの名無しさん:2010/07/17(土) 14:45:03
organizationとapplicationを指定して呼び出してみてはどうですか。
qtでecho serverを作りたいのですが、何か参考になるサイト知りませんか?
前スレ
デモのFortune Serverを適当に手直しすれば即完成じゃね
*.uiを使ってプログラミングしている時は、
ラベルやボタンの名前はどのように決めていますか
869 :
865: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
読めてないんじゃなくて
表示出来てないだけとか
>>868 Designerが適当に決めてる。
いじる必要がないときは適当に決めた名前を受け入れればいいが、
いじりたいときはそれじゃ不便なので、Designer上でnameの値をいじるといい。
>>868 >>871 それは自分でルールを作るかチームで行動するならチームでルール作る
んじゃないか?自動生成だけだと label, label_2, label_3, pushButton,
pushButton_2 とか何と連動するかわからない名前連発となるから好きではない
俺は陳腐だけどstopButton, startButton,… みたいに内容と連動する名前にしてる
Qtの例を見ると良いんじゃないか
>>869 そのタイミングだと接続されただけでデータきてない可能性がある。
isReadable() でチェックしてみれば。
普通は readyRead() シグナルを受けて読み込む。
874 :
865:2010/07/18(日) 11:05:54
875 :
868:2010/07/18(日) 11:40:34
>>872 多くの人がvb.netでlblMessageとかってしているけど、
lblとかbtnってキモいなって思った
qtらしい名前の付け方って無いのかね
878 :
789:2010/07/19(月) 19:29:05
gtkとかに比べたらライブラリが分散してない分、楽だろ
QCoreApplicationならQtCore?.dll
QApplicationなら +QtGui?.dll
追加で *.proの QT += で加えた dll を入れればいい
後は必要に応じて plugins 以下のdll
考えるのが面倒なら、lib と plugins 以下で、debug用(〜d?.dll)以外の
dllを抜き出しとけば間違い無い
>>881 >1.ポートをずーっと使い続けている
もっと具体的に何が問題か。
>2.ボタンを何度も押すと返信される文字がおかしい
返信される文字は正しい。
client.cpp で bytearray.append() で以前の文字列に追加しているからそう見えるだけ。
s/complite/compele/
883 :
882:2010/07/19(月) 23:56:05
>返信される文字は正しい。
>client.cpp で bytearray.append() で以前の文字列に追加しているからそう見えるだけ。
ごめん。間違い。もう一度見直す。
884 :
882:2010/07/20(火) 00:20:53
>>881 >2.ボタンを何度も押すと返信される文字がおかしい
Server::connected() で m_tcpSocket を作るたびに readComplite() と writeDate() を coonect() しているため、
二回目以降はこの接続が二つ三つと増えていき、 writeDate() が複数回呼び出されるため。
この connect() だけ Server::Server() に移動すると OK。
ヘ⌒ヽフ
( ・ω・) dd
/ ~つと)
アプリケーションが終了するときに(exitの中)、
スタックに確保したQProcessのデストラクタで以下のエラーが出るのですが、
何かご存知の方いますか?
QMutexクラスは、自分では一切使用していません。
>> エラーの内容
QMutex::lock: mutex lock failure:
しかしQtは情報少ないな
セミナーとかやってないのかなほんと
本があるでしょ。
本もあんまりなくねー?
本出すっていってもあんまりターゲット思い浮かばないよな
とっかかりは入門Qt4プログラミング一冊で十分だし
892 :
881:2010/07/20(火) 20:56:18
必要がなくなったのでdeleteしたオブジェクトは、
disconnect()を絶対呼び出さないとダメなんですか?
数はいらないけど良い本もあまり無いように思う
コードガシガシ書くなら良いけど Creator を十分に生かしてコードを書く
方法を説明した本をまだ見たことない
入門Qt4プログラミング
Qt Creatorは世に出てまだ一年ちょっとだから本がないのも仕方ない。
情報少ない,少ないって言うけど,ヘルプは充分情報多いよ。
そうそう、Qtの本はあるけど、Creatorは少なし。
説明するのは難しいんだけど,ヘルプや例ではコードの例は豊富で参考になる
ただ Creator を生かして slot や signal を作ってつなげてそれで最低限
どれだけコードを書く必要があるのかといった事を説明している本が無いと思う
初めその辺ちょっと苦労した
多分もっと簡単な方法や Creator をもっと生かす方法があるだろうと
思いながらもポチポチ打っていて次第に分かった感じ
youtube でいくつか見たことがある
リンクは前スレに貼られてたかな
youtube にはいくつかあるけど結構見つけにくい
layout するだけならいくつもあるけどそれだけなら簡単
本来本家の tutorial にそういうのがあると良いのだけど
GUIがシングルスレッドなのか調べるために、
GUIのスレッドを10秒ほど停止させたい
教えてエロい人!!
それを調べるだけなら別に無限ループでいいじゃないか
903 :
デフォルトの名無しさん:2010/07/21(水) 22:16:32
クリックイベントのハンドラでSleep(10000)すればいいんじゃないか?
QtDesiginerで、MainWindow上にQPushButtonを配置して、新たに作るQActionと先のQPushButtonを関連付けることはできるのでしょうか?
できるとしたらどうやればよいのでしょう?
>>898 そんなに生かさなくてもなぁ。。。
本気で、最低限のコードで済ませたいのならVBとかC#をお勧めするが。
とりあえず、
・ウィジェットの情報をDesigner部分が持ってるのなら、シグナルとスロットはUIファイル上でつなぐことができる。
・UIファイル上のウィジェットからのシグナルを拾いたいときは、自動connectが便利。
スロットの名前を on_ウィジェット名_シグナル名(引数)のようにすると、setupUi()で勝手にconnectされる。
例: QLineEdit lineEditのtextChanged(const QString&)シグナルを受け取りたいとき
スロットを void on_lineEdit_textChanged(const QString &str) のようにする
それ以外にも
* promote のさせ方
* 新しい slot, signal の加え方(それで Creator 内でつなぐ)
とかある
知らないとほぼ全部手で書くことになってCreatorを生かせない場合が出てくる
C#でそんなにコード書かないで済む?
Qt,Creator とC++では結構無駄なコード書かないで済んでいるように感じるけど
Qtで作ったアプリは大きいしもっさりしてるな・・・
でもプラットフォームに依存しないにはこうするしかないのか
>>908 具体的にどのプラットフォームでどういうアプリの事言ってるの?
あと他の何で作ったアプリに比較して「大きいしもっさりしてる」の?
俺は Linux がメインで Qt 系は良く使うけど別に重くは感じてない
k3b, skype, vlc …
googleearth は重いような気もするが開発プラットフォーム変えるだけで
劇的に軽くなるようなアプリも思えないし
LGPLだとちょっとした小物アプリ作るにも
巨大なDLL使わないといけなくて不便
かといって商用版は高くて買えないし
>巨大なDLL使わないといけなくて不便
そうか?
DebugBuildのこと言ってるのかもな
>DebugBuildのこと
って何だっけ?
Creator で build するとき Debug と Release とあるからそれのことかな (DebugBuild)
Windowsで作ってないけど,DLL嫌ならstatic で GPL にすることもできるはず
GPLにすると他のライブラリが使えなくなる
どうして?
>>916 感染するから。
まあそのライブラリもGPLcompatibleならいいんだけどさ。
少なくともGPLにしたくない小さなアプリだと
本体とは桁違いのQtCore4.dllとQtGui4.dllが必要なのは事実だよね。
Qtの生産性は素晴らしいと思うけど、
そういう意味での小回りはきかない。
そこは割り切らないと。
>>917 マジか
別に派生物じゃないから大丈夫だと思ってた
javaのsynchronizedに相当する機能ってあるんですか?
>>919 その認識は超危険。
GPLは静的だろーが動的(DLL)だろーが
使ったらそのプログラム全部がGPLになる。
自分の奴をGPLで出す気がないなら、GPLのライブラリは存在しないことにして
スルーすべきだな
QtGui4.dll 9.3 MB
QtCore4.dll 2.4 MB
でかいっちゃでかいね。
機能毎に小分けしたライブラリを作って、GPLで公開。
メインの自作部分からは必要なライブラリだけリンクできるようにすれば、みんな幸せになれるかな。
Qtのソース見たことなくて適当な事を言ってみる。
結局,問題視されている状況って(どの程度問題視してる人がいるか知らんが)
(商用Qtは買う気無い)かつ(GPLでコードリリースしたくない)かつ(大きいDLL嫌)
という場合だけだよね?
無料で自分勝手に使おうってんだからこのぐらいはしょうがないんでは?
って俺は思っちゃうが
かつ(アプリションは公開したい)
という場合
アプリション→アプリケーション
すまん
まぁでかいdll添付しとけばいいだけだし
気にしても
でかいとアップに時間かかるんだよな
ホームページのスペースも食うし
929 :
デフォルトの名無しさん:2010/07/22(木) 23:19:51
アプリと別途ダウンロードの形式ならそれほどでもないかも
別途ダウンロード形式だと一般人には受け入れられない
ネットワークインストール形式だとどうかな?
dllふたつをupxで圧縮したらなにかの規約に引っかかるのかな
「でかい」って繰り返してるけど今時10MB程度でそんなに「でかい」って認識?
ホームページとか言ってるけど、最近だと無料でも容量 1GBとかあったりするけど。
10MBは本格的なアプリが期待されるレベル
10MBならOK。
それよかバグ無くちゃんと動作するっていうのが大事。
クロスプラットフォームだとさらに感謝される。
デスクトップで他に何も実行しないなら11.7MBくらい平気だろうけど、
ノートなんかだとメモリ少ないだろうし
>>937 ノートの喩えはよろしくないな。
今日日のノートは2GB,4GB当たり前だから気にする必要はまったくない。
ふる〜いノートを大事に大事に使い続ける人の
がっちがちに固まった財布の紐を緩めるのは大変だぞ〜。
実行ファイルのサイズとメモリの使用量の相関性への突っ込みは控えておく。
ファイルの大きさが10MBだからって
10MBメモリ食うわけじゃないから。
dll を必要とする exe があったとして
exe が 100kB 程度
dll (複数)が合計 10MB 程度
exe を実行したときに使用されるメモリ量は?
無料のホームページスペースだと1ファイル4MBまでなどということがあるので厳しい
Pysideがwin対応してくれるのにはあとどれくらいかかりそうなの?
エスパーでいいから教えて
sourceforge.{net|jp}は?
と思ったがソースを公開しない前提か
>>939 よくわからんが、10MBのexeやdllをローダがmmapしたら
仮想メモリ上は最低10MBは必ず食うんじゃないの
そのうちナンボが実メモリに食われるかは分からんけど
実際にはそれに加えてBSSやスタック、ヒープ用にもっとメモリが必要になるから
あくまで「最低」
GAEは携帯持ってないと使えない
プリペイドかって捨てアド作る
GAEは1ファイル1MBだろ
使えなさすぎわろす
QThreadPoolを使った事がある人いますか?
あんまりネットにも情報出てないね
QByteArray.append("qbytearray");と
QDataStreamを経由してQByteArrayに書き込むのは
何が違うんですか?
951 :
デフォルトの名無しさん:2010/07/25(日) 14:13:17
バッファリングとかエンコードとか
952 :
950:2010/07/25(日) 16:11:02
>>951 つまり、QDataStreamを使うと幸せになれるのね
thx
常に幸せとは限らないんじゃないかな
スレッドプールを使ったプログラミングがしたいのですが、
qtを使った例があるサイトを教えてください
ぬるぽーる
ガッ
958 :
954:2010/07/25(日) 22:58:37
>>955 >メモリプールと大差ないじゃん
そんな気はしないんですが
スレッドプールはおまけ機能みたいなもんだから止めておけ
OMPやTBBのほうがいい
ここのひとはむずかしいしつもんにはこたえられません
QThredPoolは自作めんどいなと思った時にはよいと思う
QRunnnableから派生したクラスを与えるだけで動く
シンプルすぎて細かいことはできません以上
QtOpenGLの中で、文字列の描画を行うことは可能でしょうか?
DirectXでいうところのID3DXFONTみたいな
>>962 QGLWidget::renderText
964 :
デフォルトの名無しさん:2010/07/31(土) 01:37:24
共通のModelを使用して、QTreeViewとQTableViewと同時に機能させたいのですが、何か良い方法はありますでしょうか。具体的には、QTreeViewではxml node親子関係、QTableViewでは、nodeのタブ名を表示させようと考えています。
何か問題ある?
ツリービューのカラム数を増やしてタブ名も表示するってのじゃだめなの?
問題を分かっていないのかも知れんが,例えば Creator で作っているなら単に
ui->QTreeView->... ui->QTableView->...
に共通のmodelの結果を入れれば良いだけに思うんだけど違うのかしらん?
>>967 問題を分かってないんじゃなくて
おまえが何を問題にしているのかが伝わって来ないんだよ
>>968 俺も一瞬なに言ってんのこいつと思ったが
>>967は質問者じゃなく解答してくれてる方だろ
まさかの質問者鴨試練
971 :
デフォルトの名無しさん:2010/07/31(土) 21:32:44
問題が判らないのが問題
model作ったことないから黙ってたけど、
>>967で何か問題あるの?
問題ないよ。
976 :
デフォルトの名無しさん:2010/08/01(日) 23:52:13
QTreeView ->setModel()、QTableView ->setModel()の引数に共通のカスタムModelを渡したい場合、どのようにしてModelクラスを書けばいいのわからない次第です。
何か問題ある?
普通にモデルのインスタンスを両方にセットしろよ。
979 :
デフォルトの名無しさん:2010/08/02(月) 01:16:57
>>977 QTreeView、QTableViewのどちらかの表示アイテムの一つを削除した場合、簡単にもう一方のコントロールにもダイレクトに反映させたい次第です。
Model 使ってないから詳しくないけど
update ( const QModelIndex & )
とか使えないの?
4.7いつでるんだ
VS2010に対応してくれよ
983 :
デフォルトの名無しさん:2010/08/02(月) 22:29:44
>>981 フラット表示のQTableView Modelと、階層表示のQTreeView Modelとを一つのModelにまとめられないかなーって考えていました。browserサンプルにある、QAbstractProxyModelを使ってみます。
>>983 で、今のモデルを両方にセットしたら、どんな不都合が起こってるの?