【RAD統合環境】 Qt 総合スレ 6 【Win/Mac/Linux】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/01/29(金) 15:09:46ライブラリの機能は、フォーム、ボタンなどの各種ウィジェットからネットワーク、マルチスレッド、
グラフィックス(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 を選んだ場合は商用利用が可能です(いくつか制限あり)。
・商用版(Commercial version)
こっちはNokia社か日本の代理店(SRA社)とライセンス契約(年間30万くらい?)を結んで使います
■Qt を使って作られたソフト例
KDE、Adobe Photoshop Elements、Google Earth、Skype、DAZ Studio など
■前スレ
【RAD統合環境】 Qt 総合スレ 5 【Win/Mac/Linux】
http://pc12.2ch.net/test/read.cgi/tech/1254366507/
0002デフォルトの名無しさん
2010/01/29(金) 15:10:43・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は動的リンク時
実際には他にも条件(リバースエンジニアリング関係とか)あるので、
きちんとライセンスの条文を読むこと。
0003デフォルトの名無しさん
2010/01/29(金) 15:11:44・プロジェクトのパスに日本語を入れちゃダメ
・日本語のソースコードは、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 を使用する」のチェックを外してみる
0004デフォルトの名無しさん
2010/01/29(金) 15:16:28Qt Creator 日本語化プロジェクト
Qt Creator を日本語化するプロジェクトです(非公式)
http://qt-creator-jp.sourceforge.jp/
0005デフォルトの名無しさん
2010/01/29(金) 16:41:31シグナルをemitする時にnewしたデータを渡すのですが
あとで拡張する際にスロット側でdeleteするのを忘れそうで嫌です
あらかじめ、delete処理をするスロットを作ってconnectしておこう、と考えたのですが
qtはスロットを実行する順序を決めてないそうなので困っています
実行順序を決めるような機能はないでしょうか、あるいはそんなテクニックはないでしょうか
よろしくお願いします
0006デフォルトの名無しさん
2010/01/29(金) 17:03:13前スレ >>986
index.parent().parent()
up_button() に渡された index と親ディレクトリの関係をよく考えよう。
あと、今後を考えると QDirModel よりも QFileSystemModel を使うほうがいいかも。
ttp://labs.trolltech.com/blogs/2010/01/08/qdirmodel-is-now-obsolete-qfilesystemmodel-is-taking-the-job/
>>
SLOT は基本的に接続された順番に呼び出される。
>If several slots are connected to one signal, the slots will be executed one after the other,
>in the order they have been connected, when the signal is emitted.
ttp://qt.nokia.com/doc/4.6/signalsandslots.html#signals
けれど、new して使わなくなったら消したいということなら
QSharedPointer を使うことを検討したほうがいいと思う。
0007デフォルトの名無しさん
2010/01/29(金) 18:58:54QSharedPointer
0008デフォルトの名無しさん
2010/01/29(金) 19:36:06>>6
すいません、今日なんとか自己解決しました
0009デフォルトの名無しさん
2010/01/29(金) 20:43:23コピー可能なデータを渡すようにするのが安全です。
QStringやQPixmapなどはimplicit sharedなので、データ部分は共有して、
intやdoubleと同じ感覚で引渡せるので効率的かつ安全です。
0010デフォルトの名無しさん
2010/01/30(土) 08:08:26転載感謝です
>>7
これならreference countがあるので
シグナルをemitする関数が終了しても解放されず
スロット終了時に自動で解放されるというわけですね
>>9
implicit sharedというのがあるんですね
Qtが一部クラスに限ってQSharedPointer的機能を予め使っているというイメージでしょうか?
引数を渡すときにreference countを増やすには、参照渡しではなく値渡しでおこない
値渡しで渡すと、コピーコンストラクタによってshallow copyが行われるため高速に実行することができ、
なおかつreference countが増えているのでemitする関数が終了しても実体は破棄されないという事ですか
QByteArrayもimplicit sharedらしいのでこれを使う事にしてみます
皆さんありがとうございました
0011デフォルトの名無しさん
2010/01/31(日) 14:08:04qt3のドキュメントはどこまで信用していいのですかね?
つまり、qt4でプログラミングをする時に、qt3のドキュメントをどこまで参照していいのか?と
0012デフォルトの名無しさん
2010/01/31(日) 14:28:22>LGPL 2.1 または GPL 3.0 のうちどちらかを利用者が選べます。
> LGPL を選んだ場合は商用利用が可能です(いくつか制限あり)。
以前も話題になったけど、これは誤解を生む表現だから消した方が良いと思う。
GPL/LPGL と商用利用は直接的にリンクしている訳ではないからね。
「GPL を選んだ場合は商用利用が可能です(たくさん制限あり)」というだけで。
0013デフォルトの名無しさん
2010/01/31(日) 14:34:57> 「GPL を選んだ場合は商用利用が可能です(たくさん制限あり)」というだけで。
はLGPLの誤りだよね。
で、どう誤解を生むの?
別にウソ書いてるわけじゃないからいいんじゃないの?
「LGPL を選んだ場合は商用利用も可能です(いくつか制限あり)」
にした方が良い程度の話だと思うが。
0014デフォルトの名無しさん
2010/01/31(日) 14:36:52>はLGPLの誤りだよね。
違うよ。
0015デフォルトの名無しさん
2010/01/31(日) 15:20:29> 別にウソ書いてるわけじゃないからいいんじゃないの?
いやウソ書いてるよ。
0016デフォルトの名無しさん
2010/01/31(日) 15:21:28Qt3についての記述は、気にせず無視して問題ありません。
リファレンスマニュアル (http://doc.trolltech.com/4.6/) にQt3の記述があるのは、
Qt3 Support (http://doc.trolltech.com/4.6/compatclasses.html) だけで、ここにある
クラスは、Qt3からQt4に移行する際に、一時的に使われるクラスで、Qt4で最初からプロ
グラムを書くならば、まったく使う必要がないからです。
0017デフォルトの名無しさん
2010/01/31(日) 15:23:150018デフォルトの名無しさん
2010/01/31(日) 15:25:05わかりました
親切な解説ありがとうございます
0019デフォルトの名無しさん
2010/01/31(日) 15:37:09>で、どう誤解を生むの?
GPL だと商用利用してはいけないという誤解。
0020デフォルトの名無しさん
2010/01/31(日) 15:45:41002113
2010/01/31(日) 16:32:39GPLでもLGPLでも、制限事項が違うだけで商用利用は両方とも可能だっつうこと
だったんだね。叩かないで〜w
0022デフォルトの名無しさん
2010/01/31(日) 22:10:26・Qtライブラリを利用しても、自分の書いたソースのライセンスは自由に設定できる
・Qtライブラリそのものに手を加えた場合は(ライブラリ以外の改造箇所も含め)全てのソースをLGPLで配布しなければならない
・Qtライブラリのヘッダファイルをincludeしたり、Qtライブラリ中のクラスを継承するなどは、Qtライブラリの改造とはみなされない
・LGPLであるQtライブラリを利用したこと、Qtライブラリのソースを入手できることを明記し、LGPLを添付しなければならない
・ディスクなどのメディアに入れてソフトウェアを配布している場合は、希望者がいた場合には(無償、あるいは多くとも実費(メディア代など)+手数料程度の金額で)Qtライブラリのソースを配布しなければならない
・ネットでのソフトウェア配布の場合は、ネットでの入手方法を明記しておけばよい
こんな感じ?
0023デフォルトの名無しさん
2010/02/01(月) 00:16:410024デフォルトの名無しさん
2010/02/01(月) 04:21:57「ひとことで言ってQtはいわゆる商用OKなの?」という点はQt入門者の多くが聞きたいだろうから、
削除するより注意書きを足す方がいいと思うな
もうちょっと正確性を期してこんな感じでどうだろう
・オープンソース版(Open-source version)
LGPL 2.1 または GPL 3.0 のうちどちらかを利用者が選べます。
LGPL を選んだ場合はソースコード非公開のままでの商用利用が可能です(いくつか制限あり)。
※正確には通常「LGPL+商用利用向きの例外条項」を選ぶことになります(Qtインストール先の「LGPL_EXCEPTION.txt」を参照)。
ちなみにGPLでも商用利用が不可能というわけではありません、念のため。
0025デフォルトの名無しさん
2010/02/01(月) 04:30:44動的リンクの場合の話だよね。自分の理解だとこういう感じ
著作権の表示と、LGPLライセンスのコピーの配布
・ドキュメントにQtの著作権表示を入れておく。またLGPLライセンスのコピーを配布物/販売物に含めておく
・Qtをリンクしたプログラムが実行時になんらかの著作権表示をする時は、
Qtの著作権表示と上記LGPLライセンスのコピーの所在の表示もしなければならない
リバースエンジニアリングの許可
・正規ユーザーに対して、個人的な利用のための(Qtをリンクした)プログラムの改変とリバースエンジニアリング(解析)を禁じてはならない
※例えばユーザーが個人的なバックアップを行うためにコピープロテクト機能を外すことは、
プロテクト機能がQtをリンクした実行バイナリに含まれるなら禁止できません。当然ですが不正コピーは禁止できます
Qtのバイナリの再配布に伴うソースコードの配布
・Qtの動的リンク用バイナリ(DLL等)を一緒に配布/販売した場合は、以下のどちらかを行う
(1)Qtのソースコードを配布物/販売物に含めておく(※Qt4.6.1のVS2008版だと194MBですね)
(2)少なくとも3年間は有効な書面として以下の旨の申し出を添える
「希望者には(無償、あるいは多くとも実費(メディア代など)+手数料程度の金額で)改変したQtライブラリのソースコードを配布すること」
※参考までに、玄人指向の製品「玄箱」のGPLアプリのソースコード配布は1000円(税込)/振込手数料はユーザー負担みたいです
オマケ。Qt LGPL例外条項
・Qtのクラスを継承したりマクロやインライン関数等を利用することはQtのLGPLコードを含んだとはみなされない
0026デフォルトの名無しさん
2010/02/01(月) 12:02:30不特定多数に「頒布」するのはGPL/LGPLの制限を受けるけど、
委託されてその顧客専用バージョンを開発するのはほとんど制限をうけないはず
0027デフォルトの名無しさん
2010/02/01(月) 12:04:34リバースエンジニアリングの許可
は、同じこといってるんだよね
フリーウェアで出してもソースの公開義務みたいのは発生するんだろうか・・・(謎
0028デフォルトの名無しさん
2010/02/01(月) 15:37:44制限を受けないというより、委託の場合は二者間+Nokiaだけの話なので
二者が納得していてNokiaが気にしない/気づかない限りはGPL/LGPLを破っても事実上問題がおきないってことかと
ただし顧客専用バージョンのQtソースを顧客が欲しがった時に
契約や企業間の力関係を傘にきて突っぱねるような明らかなGPL/LGPL違反があると
もし内部告発がおきてネット等を巻き込んだ場合に社会倫理的な問題になると思う
Nokiaは訴訟を起こさないかも知れないけど、問題を解決するために契約を強く勧めるかも知れない
リスク回避するならソースを渡す準備がある旨を伝えるのが無難かと
0029デフォルトの名無しさん
2010/02/01(月) 17:02:28何も問題ないような・・・
0030デフォルトの名無しさん
2010/02/01(月) 18:35:56>委託されてその顧客専用バージョンを開発するのはほとんど制限をうけないはず
顧客と組織が別なら不特定多数への配布と同じ扱いです。
0031デフォルトの名無しさん
2010/02/01(月) 18:51:00その顧客だけだから両者で同意がなされれば問題無いと言ってるんじゃないかな?
0032デフォルトの名無しさん
2010/02/01(月) 23:16:55系列内で子会社孫会社、と解釈範囲が拡大するような
用途でも、内部利用だと言えそうだお(キリ
完全にインハウスでだけで使うツールなら問題なさそうだが
サード的な別組織に配布る段階で lgpl 発生すると思うの…
0033デフォルトの名無しさん
2010/02/01(月) 23:24:02○別組織の人間が使用する段階で lgpl
というほうが正確か・・・
0034デフォルトの名無しさん
2010/02/01(月) 23:46:19だからこの場合は顧客が子会社も含めてバイナリ配布して要求されれば
顧客がソースを渡さないといけない。
顧客がそれを理解していれば問題無い。
0035デフォルトの名無しさん
2010/02/02(火) 01:30:47その言い回しはLGPLが必ずソースを要求するみたいに思われそう
LGPLを選択-ダイナミックリンク-未改変のQtのDLLを一緒に配布:Qtのインストーラーを渡す(>>25のケース)
LGPLを選択-ダイナミックリンク-改変したQtのDLLを一緒に配布:改変後のQtライブラリの完全なソースコードを渡す
LGPLを選択-スタティックリンク-未改変のQtのDLLを一緒に配布:プログラムをビルドできるオブジェクトコードまたはソースコード+Qtのインストーラーを渡す
LGPLを選択-スタティックリンク-改変したQtのDLLを一緒に配布:プログラムをビルドできるオブジェクトコードまたはソースコード+改変後のQtライブラリの完全なソースコードを渡す
0036デフォルトの名無しさん
2010/02/02(火) 01:44:29反論したって無駄なんだぜ
0037デフォルトの名無しさん
2010/02/02(火) 05:51:510038デフォルトの名無しさん
2010/02/02(火) 07:29:41そんなやついねーよw
0039デフォルトの名無しさん
2010/02/02(火) 09:57:34エントリポイントだけじゃ駄目ぽ?何かまちまちでよくわからんです・・・
0040デフォルトの名無しさん
2010/02/02(火) 10:44:53ソースの先頭に書くかどうかはコーディングスタイルの問題
1ファイルだけ取り出してもライセンスを間違えないというメリットがある
0041デフォルトの名無しさん
2010/02/02(火) 19:48:07これは、buttonインスタンスのcliecked()メソッド(シグナル)が
appインスタンスのquit()を呼び出しているってことでおk?
0042デフォルトの名無しさん
2010/02/02(火) 19:53:03違う。
buttonのclicked()がappのquit()を呼び出しているのではなく
buttonのclicked()シグナルがemitされたら
appのquit()が(Qtに)呼び出されるように登録している。
0043デフォルトの名無しさん
2010/02/02(火) 20:57:58それじゃ、もしもみたい内容だったならば単純にclieked()を実行して終わりってことなんですか?
clieked() {
if( false ) {
emit *
}
}
0044デフォルトの名無しさん
2010/02/02(火) 22:08:45そのレベルじゃ説明しきれないから下記ページでシグナル/スロットについて学んできて下さい。
http://doc.trolltech.com/4.6/signalsandslots.html
0045デフォルトの名無しさん
2010/02/03(水) 00:05:52まずQtとは関係のないコアの部分を組み立てて、その後QtでGUI周りを作る?
0046デフォルトの名無しさん
2010/02/03(水) 01:23:30Qt Designer で .ui ファイル作って Load
0047デフォルトの名無しさん
2010/02/03(水) 10:09:22基本的にプログラムは「使ってもらう」ものなので,俺の場合はプログラムの顔である
GUI側からQt Creatorで作り始めて,先にGUIの動作確認をした上で段々中味(ボタン
をクリックしたときのスロットの中味とか)を埋めていくことが多い。中味を埋めるまでは
適当にメッセージボックスでも出るようにしておくとか,ただ何もしないだけにしておく
こともある。
ハードウェアの制御が絡んでいるような場合には,先ずその制御部分のクラスを作って
おいて,簡単なテストプログラム(GUIはデザインとか無視の超テキトー)を書いてテスト
しておくことが多いかな。それから本物のGUIを作って最後にドッキング。
0048デフォルトの名無しさん
2010/02/03(水) 11:58:54Qt使う場合はデスクトップアプリしか作らんけども、
データ周り>GUI>MVCでいうコントローラに当たる部分
っていう順で作ってる。
0049デフォルトの名無しさん
2010/02/03(水) 12:03:55つまり M -> V -> C の順ということですね
ありがとうございます
0050デフォルトの名無しさん
2010/02/03(水) 17:36:59Objective-C で Qt 使えるんですか?
0051デフォルトの名無しさん
2010/02/03(水) 20:04:4010年くらい前にObj-C Qtバインディングをやった人がいたみたいだけど今はもう無いらしいよ
Python、Ruby、Perl、C#のバインディングはすぐ見つかるけど
更新が活発でQt4.6にもついて行ってるのはPyQt4だけかな
0052デフォルトの名無しさん
2010/02/03(水) 20:25:40Qt(C++)からObjective-Cなら使えるけどそれじゃダメ?
0053デフォルトの名無しさん
2010/02/03(水) 20:59:25http://el-tramo.be/blog/mixing-cocoa-and-qt
0054デフォルトの名無しさん
2010/02/03(水) 21:48:39java - swt, java - swing 系行くかのほうが
ぜったい楽だと思うの
0055デフォルトの名無しさん
2010/02/03(水) 21:51:33mac だし
0056デフォルトの名無しさん
2010/02/03(水) 22:39:08> Python、Ruby、Perl、C#のバインディングはすぐ見つかるけど
C#に関してkwsk
0057デフォルトの名無しさん
2010/02/03(水) 22:45:400058デフォルトの名無しさん
2010/02/03(水) 23:36:02ろくな日本語ソースがひっかからない(´・ω・`)
0059デフォルトの名無しさん
2010/02/04(木) 00:06:22それはイバラの道だからではw
0060デフォルトの名無しさん
2010/02/04(木) 01:44:48DatePicker みたいなもので
標準的なものはありますか?
0061デフォルトの名無しさん
2010/02/04(木) 01:48:090062デフォルトの名無しさん
2010/02/04(木) 06:38:56英語のソースでよいというのが大勢になって来たからではないか。
0063デフォルトの名無しさん
2010/02/04(木) 11:11:270064デフォルトの名無しさん
2010/02/04(木) 15:31:35Windows向けにDirectXでやるか、マックやLinuxユーザーでも遊べるような環境を使うかで悩んでるんですが。
実行速度で言うと
DirectX>Qt>Silverlight>AIR>JavaFX
で、対応するプラットフォームだと、
JavaFX>Qt>AIR>Silverlight>[MSの壁]>DirectX
みたいな理解でok?
0065デフォルトの名無しさん
2010/02/04(木) 15:43:59作れます
次のかたどうぞ
0066デフォルトの名無しさん
2010/02/04(木) 18:21:540067デフォルトの名無しさん
2010/02/04(木) 19:08:49それだけよむとQt最強だな。
0068デフォルトの名無しさん
2010/02/04(木) 19:10:150069デフォルトの名無しさん
2010/02/04(木) 19:54:32それをいうな。
Qtみたいなすごいものが作れるんだぞ。
立派な言語じゃないか。
0070デフォルトの名無しさん
2010/02/04(木) 21:31:40比較対象がおかしいと思うの・・・ > GUI の選択 と 言語の速さ
別に GUI ライブラリいらないよ > 3Dゲー
0071デフォルトの名無しさん
2010/02/04(木) 21:39:00少なくとも文字入力に関するライブラリは無いと困る気はする
0072デフォルトの名無しさん
2010/02/04(木) 23:19:47C++みたいな猛獣を繋ぐ鎖としてはGUI以外でもQtは良い線いってると思うけどな。
いざとなれば鎖を離せるのが猛獣使いQtの強みの一つでもある。ただ自己責任で。
0073デフォルトの名無しさん
2010/02/04(木) 23:26:29先生!
私の同僚が勝手に鎖を解き放ちました!
0074デフォルトの名無しさん
2010/02/04(木) 23:38:14動物園から出さないようにお願いします
0075デフォルトの名無しさん
2010/02/05(金) 04:15:290076デフォルトの名無しさん
2010/02/05(金) 06:57:34どういうことですか?
0077デフォルトの名無しさん
2010/02/05(金) 08:44:57たぶんシグナルスロット機構のことじゃね
あんま知らないがCocoaは(C#も)シグナルスロットに似たデリゲートというのをよく使うらしい
マクロってよりqmakeの機能な気がするけど
0078デフォルトの名無しさん
2010/02/05(金) 10:18:010079デフォルトの名無しさん
2010/02/05(金) 14:41:060080デフォルトの名無しさん
2010/02/05(金) 14:44:10メロリンQとハイキングウォーキングQ太郎を見たら
Qtがちらつくようになるまで修行しろ
0081デフォルトの名無しさん
2010/02/05(金) 14:56:25がんばります!!!
0082デフォルトの名無しさん
2010/02/05(金) 15:40:27検索のたびにうざいんだが
0083デフォルトの名無しさん
2010/02/05(金) 16:05:36-QuickTimeと入れれば多少マシになる。
0084デフォルトの名無しさん
2010/02/05(金) 16:30:00知らなかったぜ。
そうか、引き算すればいいのか。
0085デフォルトの名無しさん
2010/02/05(金) 18:59:050086デフォルトの名無しさん
2010/02/05(金) 20:54:55-QuickTime -twitter
検索ではいつも2つ除外してます
0087デフォルトの名無しさん
2010/02/06(土) 00:38:38ぼちぼちメニューも日本語化がすすんできたみたいだし
0088デフォルトの名無しさん
2010/02/06(土) 04:53:35アプリケーションを引数付きで呼び出そうとしているのですが
引数の中に「"」が含まれていると「\」がつけられて「\"」になってアプリケーションに渡されてしまいます。
QProcess::startDetached(ExePath, QStringList() << "--foo=\"bar\""); // --foo="bar"を渡したいが、--foo=\"bar\"がわたってしまう
main関数のargvでは「\"」が「"」に変換された状態で取得できるようですが、
winmainのlpCmdLineやGetCommandLine APIでは「\"」のままなので
そのまま処理をしていると思われるWindowsアプリケーションが引数を処理できません。
QProcess::startDetached(ExePath + "--foo=\"\"bar\"\"");
でもやってみましたが今度は「"」が無くなるだけで
\"\"\"bar\"\"\"にしてもやはり「\"」が渡されてしまいます。
「\"」への変換なく「"」のまま渡すにはどうすればいいのでしょうか。
0089デフォルトの名無しさん
2010/02/06(土) 06:35:160090デフォルトの名無しさん
2010/02/06(土) 07:41:20うん。慣れてくると結構いいよ。今までC++ Builder使ってたけど、「遜色ない」と
までは行かないものの、そんなに不満はない。
最初は各種の設定を.proファイルに手書きしなきゃならないのが「何だかなぁ」と
思ったけど、慣れてくるとGUIのチェックボックスやラジオボタンでいろいろ選択
して設定したりするより楽だと思うようになった。
翻訳はぼちぼちどころじゃなくて、ほぼ完全。翻訳されてないのはほんの数単語。
ちょっと戸惑うのは、レイアウト類の扱い。Qt Designerでも同じだと思うんだけど、
手書きでコード書いた場合とちょっと違う。実は隠れウィジットの上にレイアウト
が乗ってるので、レイアウトのサイズをマウスで変えられる(ように見える)。
しかもこの隠れウィジットのプロパティは一切変えられらない(表示されない)。
なので、「入門Qt4プログラミング」に書いてあるレイアウトの使い方とちょっと
雰囲気が変わる。
エディタは「余計なお世話」をかなりしてくれるので、設定で折り畳み機能とか
OFFにして使ってる。でも外部エディタはあまり使わずに済んでるから、結構
使いやすいのかも。
デバッガの起動時に時間がやたら掛かるのが難点かな...(VC++でcdbの
場合の話)。MinGW+gdbでは最近やってないからどうだったか忘れた。
0091デフォルトの名無しさん
2010/02/06(土) 07:51:49QProcessが怪しいと思うが
とりあえずsystem()使ってみたらどうだろう
0092デフォルトの名無しさん
2010/02/06(土) 10:01:41ほぼ同じケースで、結局解決してないのがあるね
http://www.qtcentre.org/threads/11476-arg!!!!-QProcess-on-win32
corelib\io\qprocess_win.cppの問題だと思うなこれ
0093デフォルトの名無しさん
2010/02/06(土) 19:38:36CreatorみたいQtのリファレンスを見たいんですが(F1とかで)
できないんでしょうか?
0094デフォルトの名無しさん
2010/02/06(土) 19:59:11そのファイルを開いて QDataStream から >> で QString s に読み込みました
これを cout << s; で出力すると ?? と文字化けします
下のように書き換えて
cout << s.toAscii.data();
再コンパイル後改めて読み込みしてもやっぱりだめです
QByteCode s と定義し直して
cout << s.data();
ますます意味不明です
どうすれば良いのか途方に暮れております
Windows Vista で mingw 版 Qt を使用 ソースは UTF-8 で保存しています
0095デフォルトの名無しさん
2010/02/06(土) 20:04:310096デフォルトの名無しさん
2010/02/06(土) 20:10:400097デフォルトの名無しさん
2010/02/06(土) 20:23:12ありがとうございました
またまた質問で申し訳ありませんが
QMap<HOGE, FUGA> のインスタンス m を JSON っぽく qPrintable してくれるような関数かマクロってありますか?
m.toStdString()
m.toString()
m.toAscii().data()
qPrintable(m)
どれも無いみたいで・・・ orz
探すより iterator 回して実装した方が早いような気もしますが
もし既に便利なものあるなら使いたいです
0098デフォルトの名無しさん
2010/02/06(土) 20:25:070099デフォルトの名無しさん
2010/02/06(土) 20:26:17> 探すより iterator 回して実装した方が早いような気もしますが
天才ですか!?
探すより早いなら実装しろよ
0100デフォルトの名無しさん
2010/02/06(土) 20:37:07QString pMap2Str(QMap<QString, int> &map)
{
QStringList sl;
QMapIterator<QString, int> i(map);
while(i.hasNext()){
i.next();
sl.append(QObject::tr("'%1': '%2'").arg(qPrintable(i.key())).arg(i.value()));
}
return QString(QObject::tr("{%1}").arg(sl.join(", ")));
}
こんな感じ?
templateでQMapの型を可変にする方法は知らん
0101デフォルトの名無しさん
2010/02/06(土) 20:40:330102デフォルトの名無しさん
2010/02/06(土) 20:42:13ありがとうございました
参考にします
0103デフォルトの名無しさん
2010/02/06(土) 20:50:38ttp://www.qt-iphone.com/
0104デフォルトの名無しさん
2010/02/06(土) 20:58:26Thx!
0105デフォルトの名無しさん
2010/02/06(土) 21:12:210106デフォルトの名無しさん
2010/02/06(土) 21:24:000107デフォルトの名無しさん
2010/02/06(土) 21:36:080108デフォルトの名無しさん
2010/02/06(土) 21:40:340109デフォルトの名無しさん
2010/02/06(土) 22:26:40レスありがとうございます。
system関数を使うことで目的の動作を行うことができました。
0110デフォルトの名無しさん
2010/02/07(日) 00:41:440111デフォルトの名無しさん
2010/02/07(日) 00:53:440112デフォルトの名無しさん
2010/02/07(日) 02:11:030113デフォルトの名無しさん
2010/02/07(日) 13:10:55auも巻き添えになってNokiaに買収されるといい。
0114デフォルトの名無しさん
2010/02/07(日) 15:07:370115デフォルトの名無しさん
2010/02/07(日) 15:45:51ヲヲヲヲ!?w
これでSymbian、WMは公式で愛ポンと闇泥井戸と全部制覇か
これで本気出してC#からC++に移る勉強するw
0116デフォルトの名無しさん
2010/02/07(日) 17:41:45> これで本気出してC#からC++に移る勉強するw
C#をマスターしている人間が、あらためてC++で学ぶようなことってあるか?
0117デフォルトの名無しさん
2010/02/07(日) 19:13:210118デフォルトの名無しさん
2010/02/07(日) 19:29:15あらためてC++でオブジェクト指向言語を勉強し直す必要がありますか、って意味ね
0119デフォルトの名無しさん
2010/02/07(日) 19:40:520120デフォルトの名無しさん
2010/02/07(日) 19:48:50思わず笑ってしまった
0121デフォルトの名無しさん
2010/02/07(日) 19:52:29どうみてもC#の方が簡単(つか楽)なんですけど・・・
0122デフォルトの名無しさん
2010/02/07(日) 20:49:170123デフォルトの名無しさん
2010/02/07(日) 21:00:110124デフォルトの名無しさん
2010/02/07(日) 21:03:40C#は窓でしか使えないじゃん
0125デフォルトの名無しさん
2010/02/07(日) 22:07:500126デフォルトの名無しさん
2010/02/08(月) 00:18:08QObjectの中でQObject使う場合は自分でdeleteする必要ないんで、
ちょっとしたもの作るだけならガーベッジコレクションしてくれる
メモリ解放不要な言語とそう大きく変わらないんじゃないかなぁ。
QtはC++の機能を最大限に使いつつ、C++の面倒なところをユーザに押し付けないライブラリだと思ってる。
0127デフォルトの名無しさん
2010/02/08(月) 00:25:570128デフォルトの名無しさん
2010/02/08(月) 00:34:51それに気付いてからBoost捨てた
0129デフォルトの名無しさん
2010/02/08(月) 03:19:56QString str1 = "hoge";
QString str2 = str1;
のあと
str2[1] = 'a';
を実行すると Copy on Write が発動して
str2 が "hage" になっても str1 は "hoge" のままというのとは逆に
あえて
str1 が "hage"
になって欲しいときはどうすれば良いのでしょうか?
0130デフォルトの名無しさん
2010/02/08(月) 04:39:510131デフォルトの名無しさん
2010/02/08(月) 06:05:20QApplication app(argc, argv);
のあとに
QTextCodec::setCodecForCStrings(QTextCode::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
を書き足す
0132デフォルトの名無しさん
2010/02/08(月) 11:43:00qdbusはQt使ったコンソールアプリだな。
コンソールアプリケーション作るときはQApplicationじゃなくQCoreApplication使うらしい。
0133デフォルトの名無しさん
2010/02/08(月) 16:19:00訂正
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
0134デフォルトの名無しさん
2010/02/08(月) 16:47:14やってみます
ありがとうございました!!
0135デフォルトの名無しさん
2010/02/08(月) 20:40:510136デフォルトの名無しさん
2010/02/08(月) 20:49:28QTextStream cout(stdout, QIODevice::WriteOnly);
0138デフォルトの名無しさん
2010/02/08(月) 20:54:30なにかあらかじめ設定しないといけないモードとかあるのでしょうか?
0139デフォルトの名無しさん
2010/02/08(月) 21:10:28Windows を使っていて、コマンドラインからこのアプリケーションを実行したときに
qDebug() の出力を見ることができるようにしたい場合、
アプリケーションをコンソールの設定でビルドする必要があります。
Windows で Make ファイルをこの設定にするには、CONFIG に console を追加します。
Windows で実行されていて、かつ CONFIG にすでに debug がある場合にのみ
CONFIG を追加したい場合があるかもしれません。
このような場合、2 つのスコープをネストさせて使います。
まず 1 つのスコープを作成し、その中にもう 1 つスコープを作成します。
そして 2 つのスコープの中に設定を書きます。例えば :
win32 {
debug {
CONFIG += console
}
}
0140デフォルトの名無しさん
2010/02/08(月) 21:22:42できました
ありがとうございます
なぜかよく分かりませんが std::cout も使えるようになりました
本当にありがとうございました
0141デフォルトの名無しさん
2010/02/08(月) 21:38:58959 デフォルトの名無しさん [sage] 2010/01/26(火) 15:22:56 ID: Be:
ソースファイルのエンコードが"で囲んだ文字列リテラルに影響するため、
Qtに文字列を渡すには、一度文字コードを変換する処理を挟まなければならない。
例えばutf-8のソースファイル内で文字列リテラルにマルチバイト文字が含まれている場合、
そのままでは文字化けしてしまうので、QString::fromUtf8()などの変換メソッドを通す必要がある。
以下のサンプル(ソースはutf-8)を実行すると、Utf8の変換メソッドを通した文字列以外は文字化けする。
変換メソッドを通すのが面倒な場合は、コメント部分を有効にすれば良い。
直接書いた他の文字列が文字化けすることがなくなる。
//QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8"));
//QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));
//QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));
const char* cptr = "ffあ";
QString qs = "ffあ";
QString qs_fromUtf8 = QString::fromUtf8("ffあ");
qDebug() << cptr;
qDebug() << qs;
qDebug() << qs_fromUtf8;
qDebug() << tr("ffあ");
qDebug() << trUtf8("ffあ");
と試した限りでは以上のように理解したけどどうでしょ。
// Qt Creator 作成の新規ファイルの文字コードがSystemから変えられないのはどうにかならんかな
// プロジェクト設定のデフォルトの文字コードはなんの意味があんねん
0142デフォルトの名無しさん
2010/02/08(月) 21:49:08Windows Vista のコマンドプロンプトで make & 実行
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
しておいて
QString msg(QObject::tr("テスト")); // ソースは UTF-8 QString msg は UCS2 ?
std::cout << qPrintable(msg) << std::endl; // SJIS で出力された
qDebug() << qPrintable(msg); // SJIS で出力された
qDebug("%s", qPrintable(msg)); // ??に化けている(デコードが変?)
もしかして qDebug の中で変なことやってる?
0143デフォルトの名無しさん
2010/02/08(月) 22:01:35qDebug() << msg; // "二重引用符で囲まれてSJISで出力された"
string s = msg.toStdString(); // setCodecForCStrings() で文字化け回避
std::cout << s << std::endl; // SJIS で出力された
qDebug() << s.c_str(); // SJIS で出力された
qDebug("%s", s.c_str()); // ??に化けている(デコードが変?)
0144デフォルトの名無しさん
2010/02/08(月) 22:57:13qDebug(fmt, ...);
の場合、渡す文字列はutf8固定。
(ちなみに、fmtはLatin1固定)
QString::sprintf() を内部で使っているため。
ttp://doc.trolltech.com/4.6/qstring.html#sprintf
qDebug("%s", msg.toUtf8().constData());
としてみると動かないかな。
0145デフォルトの名無しさん
2010/02/09(火) 01:12:11ありがとうございました
0146デフォルトの名無しさん
2010/02/09(火) 01:49:360147デフォルトの名無しさん
2010/02/09(火) 03:19:38たとえばQtのクラス名を補完してくれたり、あるいは自作のクラス、
それに付随するフィールドや関数を補完してくれたりする?
0148デフォルトの名無しさん
2010/02/09(火) 03:31:240149デフォルトの名無しさん
2010/02/09(火) 03:36:310150デフォルトの名無しさん
2010/02/09(火) 03:54:03これって Qt4 の作者と同じ人の作ったもの?
0151デフォルトの名無しさん
2010/02/09(火) 03:55:13thxノシ
つ〜かそれだったらさ、C++のプログラム組むのにわざわざ金出してVS買うよりも
フリーのQt Creatorを使った方がよくね?
0152デフォルトの名無しさん
2010/02/09(火) 04:19:32このスレでも前スレのテンプレまではqDebugで日本語ムリってなってたぞ
0153デフォルトの名無しさん
2010/02/09(火) 05:20:55ほんとだ
記憶違いかと思ってたけど安心した
結局 >>144 で fmt は Latin1 固定ってなってるから
qDebug("日本語 %s %s ほげ", QObject::tr("ふが").toUtf8().constData(), QObject::tr("はげ").toUtf8().constData());
はだめで
qDebug("%s %s %s %s", QObject::tr("日本語").toUtf8().constData(), QObject::tr("ふが").toUtf8().constData(), QObject::tr("はげ").toUtf8().constData(), QObject::tr("ほげ").toUtf8().constData());
なら OK ってことだぬ
0154デフォルトの名無しさん
2010/02/09(火) 06:00:36動けばいいってんならその考え方でOK
0155デフォルトの名無しさん
2010/02/09(火) 06:10:45Qt Creatorの補完機能は結構優れものだと思う。
0156デフォルトの名無しさん
2010/02/09(火) 06:50:02補完が動かなかったらコードミスを疑うようになるレベル
0157デフォルトの名無しさん
2010/02/09(火) 09:23:04eclipse版も同レベル?
0158155
2010/02/09(火) 11:05:180159デフォルトの名無しさん
2010/02/09(火) 11:24:48eclipse で使う場合は eclipse が元々持っている補完機能を使うことになる。
SIGNAL や SLOT マクロの中を補完できないので Qt で書く場合には
個人的には Creator の方が楽。
0160デフォルトの名無しさん
2010/02/09(火) 20:28:590161デフォルトの名無しさん
2010/02/09(火) 20:41:36Qt Creatorすげぇ。
0162デフォルトの名無しさん
2010/02/09(火) 23:40:44なんかウインドウ上部に大きさ変えられないデバッガ出力があるんだが
下にもコンソールあるし邪魔くさくね?
あれ消せないんだろか
0163デフォルトの名無しさん
2010/02/10(水) 00:51:30そうかい?
基本的なC++から勉強したいからCDTでやってるが
いきなりマクロだらけのOtからだとキツイw
0164デフォルトの名無しさん
2010/02/10(水) 00:59:490165デフォルトの名無しさん
2010/02/10(水) 01:09:050166デフォルトの名無しさん
2010/02/10(水) 01:09:45YouTube - Qt Widgets enter the third dimension: WolfenQt
http://www.youtube.com/watch?v=MXS3xKV-UM0
0167デフォルトの名無しさん
2010/02/10(水) 01:16:51キツくないよ
楽だろ
そりゃマクロのせいで元々のC/C++の機能かQtの機能かの区別がわからないひとは
あとで知識の再整理が必要になるだけで
今後もQtしか使わないかもしれない訳で困ることじゃない
0168デフォルトの名無しさん
2010/02/10(水) 01:19:12すまんが使い道が思い浮かばん
0169デフォルトの名無しさん
2010/02/10(水) 01:31:14それかw
すごいとは思うがゲーム以外の何で役に立つのか分からん。
0170デフォルトの名無しさん
2010/02/10(水) 01:42:470171デフォルトの名無しさん
2010/02/10(水) 02:00:280172デフォルトの名無しさん
2010/02/10(水) 16:14:57すげぇ
ところで、株価データ
2003-04-23,11:23:11,43,33,44,22
みたいなデータを読み取りたいんだけど、
QTextStreamのデリミタを『,』に変えられない?
それかscanf的なものはない?
0173デフォルトの名無しさん
2010/02/10(水) 17:11:45QRegExp を使うとか。
0174デフォルトの名無しさん
2010/02/10(水) 21:03:44結果から言うとUTF-8のソースファイルはでも日本語出力可能。
----------------------------------------------
//QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));
QTextCodec *codec = QTextCodec::codecForLocale();
qDebug() << codec->name();
qDebug() << "1:あああああ";
printf(codec->makeEncoder()->fromUnicode("2:いいいいい\n"));
printf(QString("3:ううううう\n").toLocal8Bit());
printf("4:えええええ\n");
QTextStream out(stdout);
out << QString("5:おおおおお") << endl;
out << QTranslator::tr("6:かかかかか") << endl;
out << "7:ききききき" << endl;
----------------------------------------------
printf()は直での文字リテラル指定はだめ。
QString()やtr()で文字列を囲むなりして、Qtの変換を通さないとダメ。
0175デフォルトの名無しさん
2010/02/10(水) 21:14:170176デフォルトの名無しさん
2010/02/10(水) 21:17:32out.setCodec("UTF-8");
0177デフォルトの名無しさん
2010/02/10(水) 21:56:20これを使ってテキストデータを保存するとき、プラットフォームによって
生成されるテキストデータに違いって生じる?
WindowsやUnixやMacで改行に違いがあるって聞いたけど
Qtはそこのところどう対処しているんだろう?
0178デフォルトの名無しさん
2010/02/11(木) 00:02:350179デフォルトの名無しさん
2010/02/11(木) 00:06:510180デフォルトの名無しさん
2010/02/11(木) 00:07:29WriteLineってざっと探しても見つからないんだが、どこの関数?
それはともかく、改行コードって自分で文字列に埋め込むもんだと思うんだが。
0181デフォルトの名無しさん
2010/02/11(木) 00:13:03CR は論外として
0182デフォルトの名無しさん
2010/02/11(木) 00:13:570183デフォルトの名無しさん
2010/02/11(木) 01:00:43C#と勘違いしてたスマソ・・・
0184デフォルトの名無しさん
2010/02/11(木) 01:19:58Windowsでは"\r\n"に変換される。入力なら逆。
どちらの環境でも同じ改行形式にするなら QIODevce::Textを付けずに
"\n","\r\n"を明示すればいい。
0185デフォルトの名無しさん
2010/02/11(木) 03:41:57ありがとう。
やっぱ同じQtソースでも動かすプラットフォームによって生成されるテキストファイルに
違いが生じてきたりしちゃうんだね。
0186デフォルトの名無しさん
2010/02/11(木) 04:29:15見た目は悪くない
http://zetcode.com/tutorials/qyotosharptutorial/dialogs/
使い物になるならいいかもな
0187デフォルトの名無しさん
2010/02/11(木) 06:18:54京都?
0188デフォルトの名無しさん
2010/02/11(木) 09:02:58>
> 1. After compiling and installing qyoto when I try to compile a program I get this error:
>** (/usr/lib/mono/1.0/mcs.exe:18770): WARNING **: The class System.Collections.Generic.List`1 could not be loaded, used in mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
>
>This is because qyoto uses .NET 2.0 features only found with the gmcs compiler. Please use gmcs instead of mcs.
http://ekarchive.elikirk.com/david/qyoto/index.php?option=com_content&task=view&id=25&Itemid=58
古いほうのページをみるとわかりやすいけど
gmcs でないと動かない
0189デフォルトの名無しさん
2010/02/11(木) 10:09:42同時にGEditeなど他のエディタを開いてコピペにて、Creatorに戻って
別のコピペをしても、前のコピーが残ったままでCreatorを一度終了するまで
正常にならナインだけど、
1.3.1では改善されてる?
誰かしらない?
0190デフォルトの名無しさん
2010/02/11(木) 10:26:14いや同じにもできるし、プラットフォームに合せて変えることもできるということ
0191デフォルトの名無しさん
2010/02/11(木) 10:26:41いやならバイナリで作るでしょ
コンソールに出力したときだってプラットフォームによってエンコード変わっちゃうんだし
0192デフォルトの名無しさん
2010/02/11(木) 10:47:29やっぱC#はエレガントでいいなw
0193デフォルトの名無しさん
2010/02/11(木) 12:09:550194デフォルトの名無しさん
2010/02/11(木) 12:34:59あとWindowsじゃないとまともに動かない所とか。
Monoってどこまで.Netに追いついてたっけ?
0195デフォルトの名無しさん
2010/02/11(木) 12:38:48わざわざMS固有の言語で使うなんて馬鹿
0196デフォルトの名無しさん
2010/02/11(木) 13:23:50LINQがあるじゃないか!!
・・・と思ったら2.0限定なのか
確かにQtでC++の面倒なところが隠蔽されるし
ライブラリも遜色ないんで、あんま変わんないかもね
>>194
gmcs限定ってところで、Windows云々は意味なしだね
> Monoってどこまで.Netに追いついてたっけ?
http://www.mono-project.com/CSharp_Compiler
俺も↑のサイトで見てついさっき知ったんだけど
monoってREPLが付属してるんだね
REPL目当てでWindowsに入れてもいいかもしれない
0197デフォルトの名無しさん
2010/02/11(木) 13:25:310198デフォルトの名無しさん
2010/02/11(木) 15:55:43ただ、MacOS必要なのとツールが優良なのがネック
0199デフォルトの名無しさん
2010/02/11(木) 17:07:060200デフォルトの名無しさん
2010/02/11(木) 18:32:45Qt for Windows CE がCeGCCでコンパイルできるかは知らないが
0201デフォルトの名無しさん
2010/02/11(木) 21:06:25REPL目当てならipython+PyQtって手もある
Pythonxyが全部まとめて入ってておすすめ
0202デフォルトの名無しさん
2010/02/11(木) 21:09:48できたオブジェクトファイルを最後にリンケージするという手順が必要なわけだけど、それをQtを使って
プログラミングするとなるとその手順はどうなるの?
0203デフォルトの名無しさん
2010/02/11(木) 21:11:39そこら辺はあまり気にしなくていい
0204デフォルトの名無しさん
2010/02/11(木) 21:15:44Qt creatorの完成度が高くて驚きました。
ただビルドに時間がすごく掛かるんですが何か間違っているんでしょうか?
hello worldだけでビルドに数十秒もかかっています。
使っているのはWindowsのmingw32版です。
0205デフォルトの名無しさん
2010/02/11(木) 21:35:25同じ
というか Qt だと moc とか uic とかの手順も増える
しかし >>203 の言うとおりだから気にすんな
0206デフォルトの名無しさん
2010/02/11(木) 21:36:46PC のスペックくらい書け
0207デフォルトの名無しさん
2010/02/11(木) 22:00:27$ qmake -project
$ qmake
$ make
終わり
0208デフォルトの名無しさん
2010/02/11(木) 22:03:39なんでもおまかせでうまくいくのは最初のうちだけなんだよな
0209デフォルトの名無しさん
2010/02/11(木) 22:17:42ごめんなさい。Core 2 Duo P8800 + Windows 7です。
0210デフォルトの名無しさん
2010/02/11(木) 22:33:12普段のビルド(ソースファイル2〜3個修正したとか、UIだけいじったとか)ならすぐ終わるんじゃない?
0211デフォルトの名無しさん
2010/02/11(木) 22:33:44qtやるならc++から勉強したほうがよいですか?
それともqtプログラミングの本かって触りながらやってもいける感じでしょうか
fortran畑なのですがguiプログラミングやる必要がでてきていろいろ探しているのですが
すいませんがよろしくお願いします
0212デフォルトの名無しさん
2010/02/11(木) 22:34:11xtal をコンパイルboost呼び出しお茶を飲むような系統なら
時間はかかっても不思議でないし・・・
0213デフォルトの名無しさん
2010/02/11(木) 22:37:23ごめんよく読んでなかったわorz
0214デフォルトの名無しさん
2010/02/11(木) 22:41:23http://zetcode.com/
ここ見ながら自分に合いそうなわかりやすそうだと
思うのから探してみるとか・・・
0215デフォルトの名無しさん
2010/02/11(木) 22:42:28QtCreatorインストールしてチュートリアルとかのソース見て
分かれば勉強する必要ないんじゃない?
ちなみにおいらは「ロベールのC++教室」でC++から勉強中
0216デフォルトの名無しさん
2010/02/11(木) 22:43:34> $ qmake -project
> $ qmake
> $ make
> 終わり
頑張ればこれも一つにまとめられそうなのになぜか公式はそうしなかった
0217デフォルトの名無しさん
2010/02/11(木) 22:51:28FortranからならQtを使うのにC++の勉強は絶対必要だと思うよ。
クラスの概念とか、ポインタとか参照とか...いろいろ知らないと難しい。
Qtの参考書だけでは済まない。
これはwxWidgetsだろうがC++ Builderだろうが同じこと。
実行速度とか余り関係なくて簡単に余り凝ってないGUIプログラムを作ってみる
のなら、Python+EasyGuiあたりから始めてみたら?
0218デフォルトの名無しさん
2010/02/11(木) 22:56:26気軽にドット打てなくなってたorz
drawPoint()では1x1サイズのドットしか描けね。泣けた。
代わりにfillRect()使うことにしたがマンドクセ('A`)
0219デフォルトの名無しさん
2010/02/11(木) 23:00:09とりあえずやってみれば?
言語でわかんないところが出てきたら
その都度ググればいいだけのこと
0220デフォルトの名無しさん
2010/02/11(木) 23:09:49プリコンパイルド・ヘッダー使ってみたら?
つttp://qt.nokia.com/doc/4.6/qmake-precompiledheaders.html
VCでnmakeじゃないと使えない風に読めるけど、実際にはjomでも大丈夫だし、
コンパイラをMinGW gccにしてmingw32-makeでも大丈夫だったよ。
0221デフォルトの名無しさん
2010/02/11(木) 23:12:17甘いんじゃない?
ググってばかりでなかなか先に進まず、そのうちイヤになってくる可能性大。
0222デフォルトの名無しさん
2010/02/11(木) 23:19:27他にどんなクラスが、暗黙的な#includeをされているんですか?
0223デフォルトの名無しさん
2010/02/11(木) 23:26:000224デフォルトの名無しさん
2010/02/11(木) 23:29:51ありがとうございます。とりあえずインストールして触ってみます
土日に紹介していただいた本も立ち読みしてみます
c++ってメジャーっぽいので覚えておいて損もなさそうなので、
これを機会に勉強してみようとも思います
ありがとうございました
0225デフォルトの名無しさん
2010/02/11(木) 23:32:26http://www.harukaze.net/~haruka/wxpython/index.html
数値計算畑だと wx 系のほうが手取り早いと
思うんだが何で c++ で組みたいの?という疑問も
0226デフォルトの名無しさん
2010/02/11(木) 23:34:01http://zetcode.com/tutorials/qt4tutorial/utilityclasses/
コンソールアプリもQtのライブラリ使うとこんなに簡単になるんだな。
ちょっとしたC++のプログラムを書く際もQtを積極的に活用した方がいいんじゃね?
0227デフォルトの名無しさん
2010/02/11(木) 23:37:29ガワの部分は python , ruby などで
みたいのほうがメンテは楽だと思うぞ
適材適所使い分けりゃいいのよ… C++ +α
0228デフォルトの名無しさん
2010/02/11(木) 23:40:50proファイルはあとから手書きで書き換えるから
qmake -project と qmake がくっついてると困るわ
0229222
2010/02/11(木) 23:48:23Qt creatorでプロジェクトを作る時に、どれをインポートするかって質問されるじゃん
あれでチェックすると暗黙的に#includeしてくれるの
それとも、Qt Coreだけなの?
0230デフォルトの名無しさん
2010/02/12(金) 00:00:16メモリ潤沢という前提ならC++の方が速いものができることが多いな
0231デフォルトの名無しさん
2010/02/12(金) 00:02:21例えばどんなコードで?
0232デフォルトの名無しさん
2010/02/12(金) 00:13:30http://d.hatena.ne.jp/ousttrue/20091204/1259888475
pyqt と wxpython で作られた mmdモデルビューワ
内部実装はC++の事例
というかゲーム畑とか物理演算とかはやっぱりC++で組まれることは多いやね・・・過去の資産もあるし
0233デフォルトの名無しさん
2010/02/12(金) 00:29:16>pythonにしたおかげでOpenGL部分はわりとさくさくだが、SJISとUTF-8の混在が面倒くさいことに。
慣れてないとこうなる例
0234デフォルトの名無しさん
2010/02/12(金) 00:30:19俺は別ファイルに追記する分を書いて、シェルスクリプトでproファイルとくっつけてmakeまでやらせてる。
0235デフォルトの名無しさん
2010/02/12(金) 00:31:45http://www.nicovideo.jp/watch/sm9127380
0236デフォルトの名無しさん
2010/02/12(金) 00:43:29>使用言語:C++(DXライブラリ)
よしDXライブラリだ!
ホビーユースでも C++ は利用され(ry
0237デフォルトの名無しさん
2010/02/12(金) 00:44:46どちらだってポインタ使えるわけだし。
0238デフォルトの名無しさん
2010/02/12(金) 00:45:38クラス作るとCと比較したときに色々と見えない処理が入るからじゃ?
0239デフォルトの名無しさん
2010/02/12(金) 00:47:47プロセスの起動も C の方が速いと思われ
0240デフォルトの名無しさん
2010/02/12(金) 01:00:350241sage
2010/02/12(金) 01:09:370242デフォルトの名無しさん
2010/02/12(金) 01:43:15ってドエライ人が言ってた
0243デフォルトの名無しさん
2010/02/12(金) 01:54:43ある処理を、C++の機能を使って「エレガントに」実装した時の実行速度と、
Cでカリカリ実装した時の実行速度の、一般的な違いのことだと思うよ。
同じように書いたものには勿論そんな違いは無いし、一つ一つ見ていけばqsortとsortみたいな
逆になりうる例もあるし、とりあえずそんな厳密な優劣の話ってわけではない、はず。
0244デフォルトの名無しさん
2010/02/12(金) 02:12:44ありがとうございます。
プリコンパイルヘッダー、gccでも使えるんですね。
あとで試してみます。
0245デフォルトの名無しさん
2010/02/12(金) 02:20:030246デフォルトの名無しさん
2010/02/12(金) 03:33:24どうやればいいんだろう?
0247デフォルトの名無しさん
2010/02/12(金) 03:47:360248デフォルトの名無しさん
2010/02/12(金) 06:38:55(д´* )
(⊃⌒*⌒⊂)
/__ノωヽ__)
0249デフォルトの名無しさん
2010/02/12(金) 07:56:34_人_ _ __く>ー} i⌒'⌒jム、 ´ `丶
 ̄ `Y´ ≦(⌒o くcぅ ~ r'r‐(_,.ィ ./::/::.::.::.::.::.::.::.\::.::.\ ういはるー ういはるー
| >ィ(.人ノ7:.:.:.}个ー'r ゚ 、)ム /::/::.::.:/:|::.::.::.::.::.::ヽ::.::.:ヽ
十 工ア(ノ)′/....../...|.. ヽ`弋人く '::.:|i::.i::.j| |::.ヽ :|i:.::.::|::(V゙ハ
V:/:.:./:斗{=ミ/}i_ハ__ハ小:.i:ムr‐f’. i::.::|i::.ト八|\j斗\::|::(ノ{):| ういはるー ういはるー
//{:.:.:|!/、__ミ′ 厂`ト}.:i|:.:.},、》. |::.::|iY-=o=- .|:.::j|::.::|
i }小 :::}7 (゚) .. (゚) T:.:..ハ:{. |:.:リハ -=o=- .|/)::│
_ 人 _ ノ/:.∧{^ リ:./:. :.′. ∨|::.:: __ .,_ イ::.::.|
`Y´ |フ´ヘ.__i 'ー=三=-' '^}:/{:.ト{ | i人 | .::::/.| /::.::|::.::.:|
l l 八 '_人{. |::∨ :.:.しw/ノイ::/::.i|::.::.:|
―― ――'フ.:\ .イ´ /⌒ ∪ | ⌒\:.:|
. | ⌒/{ノ> --、<:从_ / 人 } | ノ゙\ \ ズチュ
`ーァ . ̄ニ────ー-v′ ノ/ / /
/ 、 ''' . ;; ::: . ;;; く ⊆/
{ | ;;; \ ) ) )
| { r、 ;;; ::: . ;; . . | ノ
,ノ 〉 { `ー────ァ―‐r‐ ,ヽ ) ズチュ
( ( ノ { { r′l /
`ー= `ー=' (⌒ (⌒ )ノ )
0250デフォルトの名無しさん
2010/02/12(金) 16:01:14だし,かと言ってQtの本格的なヘルプシステムでやろうとするとQt Assistantをカスタマイズしたり
起動させたりしなければならず大袈裟なので,HTMLでヘルプを作っておいて,ブラウザに表示させる
ことを考えています。
Windowsだけなら,WIN32 APIのShellExecute()を使って.htmlファイルの関連付け起動をさせれば
可能なのはわかっていますが,これと同じようなことをQtの世界の中でやる方法があったら教えて
ください。要するに,Qtで"なんたら.html"を指定してブラウザを起動して表示させる方法があれば
知りたいのです。
ちなみにLinux等他のプラットフォームのことは殆ど知りませんが,Windows上で作ったQtの
プログラムのソースをできるだけそのままで他のプラットフォームでも動かせるようにしておきたい
ということなんです。
よろしくお願いします。
0251デフォルトの名無しさん
2010/02/12(金) 16:13:10Assistant をカスタマイズしなくても Qt Help モジュールが使えるはず。
http://qt.nokia.com/doc/4.6/qthelp.html
http://qt.nokia.com/doc/4.6/qthelp-framework.html
htmlのオープンには QDesktopServices::openUrl() を使えばいい。
urlだけの調整で他のプラットフォームでも使える。
0252250
2010/02/12(金) 16:49:33> htmlのオープンには QDesktopServices::openUrl() を使えばいい。
> urlだけの調整で他のプラットフォームでも使える。
ちょっと試してみましたが,起動に時間が掛かるものの,簡単ですね。
とりあえずはこれで行けそうです。
> Assistant をカスタマイズしなくても Qt Help モジュールが使えるはず。
> http://qt.nokia.com/doc/4.6/qthelp.html
> http://qt.nokia.com/doc/4.6/qthelp-framework.html
こっちはちょっと手順を踏まないといけないようなので,後で試してみます。
いずれにしろ先ずはhtmlの作成ですね。
素早いご回答ありがとうございました。
0253デフォルトの名無しさん
2010/02/12(金) 17:16:05QtWebKit を使って html を表示する方法もあるよ。
0254250
2010/02/12(金) 17:46:47> QtWebKit を使って html を表示する方法もあるよ。
早速テストプログラム作ってやってみました。簡単で結構速いですね。
これで出来そうです。
ありがとうございました。
0255デフォルトの名無しさん
2010/02/12(金) 21:42:29デフォルトではどのような処理がなされているのでしょうか?
0256デフォルトの名無しさん
2010/02/12(金) 21:52:57当然arguments()で取得できるQStringListに格納するのに使ってるんジャマイカ?
0257デフォルトの名無しさん
2010/02/12(金) 22:01:54せっかく読みやすいドキュメントがあるんだから気になったら読もうぜ。
ttp://doc.trolltech.com/4.6/qapplication.html#QApplication
>>256の動作に加えて、QtのGUIスタイルとデバッグに関する引数を自動で処理してくれるみたいだな。
0258デフォルトの名無しさん
2010/02/12(金) 22:03:19thx
0259デフォルトの名無しさん
2010/02/12(金) 22:59:43tr()を使うのはどちらが賢明な判断なのでしょうか?
0260デフォルトの名無しさん
2010/02/12(金) 23:06:28QTextCodec::setCodecForTr()はtrが(ry
026126
2010/02/12(金) 23:46:340262デフォルトの名無しさん
2010/02/13(土) 00:17:490263デフォルトの名無しさん
2010/02/13(土) 01:11:29それぞれ別の処理だから両方必要
0264デフォルトの名無しさん
2010/02/13(土) 01:12:19入力のときだけじゃないから注意
0265デフォルトの名無しさん
2010/02/13(土) 01:20:31プログラムを手動で終了させてるんですけど、
処理が終わったら終了できるようにできませんか?
0266デフォルトの名無しさん
2010/02/13(土) 01:59:23処理が終わったら QCoreApplication::quit() を呼び出せばいい。
イベントループが不要ならそもそも QCoreApplication::exec() を呼ばなければいい。
0267デフォルトの名無しさん
2010/02/13(土) 02:13:32入力の時だけじゃないだと・・・
他にいつこれ絡むの?
入ってくる文字コードこれだぞーって教えてるだけじゃないの?
0268デフォルトの名無しさん
2010/02/13(土) 02:18:490269デフォルトの名無しさん
2010/02/13(土) 02:24:40QCoreApplication app(argc, argv);
コンソールのみ使用するプログラム
app.quit();
return app.exec();
この順番でOK
0270デフォルトの名無しさん
2010/02/13(土) 02:25:43toAscii() とか
0271デフォルトの名無しさん
2010/02/13(土) 02:40:03Qt使い始めた頃に必死こいて得た知識を信じきった結果がこれだよ!
言われてからドキュメントTextCodec::setCodecForCStringsの項を見たら
convert to and fromとか書いてあるから泣きたくなった。
指摘さんくす
0272デフォルトの名無しさん
2010/02/13(土) 03:54:24>>3 とかみると
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));
だったり
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("sjis"));
だったりって決め打ちで書かれてるケースが多いんだよね(これは良くないと思う)
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
にして環境非依存にしておく方がスマートだと思う
0273デフォルトの名無しさん
2010/02/13(土) 04:04:54----------------(A)
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); // (1) 決め打ち
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); // ソースが utf-8 なのでここは決め打ち OK
を書いて
QString hoge("日本語"); // ソースのエンコードで埋め込まれた CString が (1) を基準に変換される
qDebug("%s", qPrintable(hoge)); // 環境によって化ける
----------------
----------------(B)
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); // 環境に適応
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); // (2) ソースが utf-8 なのでここは決め打ち OK
を書いて
QString hoge(QObject::tr("日本語")); // ソースのエンコードで埋め込まれた tr が (2) を基準に変換される
qDebug("%s", qPrintable(hoge)); // 環境が変わっても化けない
----------------
(A) ***でも結果的に動く*** けれども (B) の方が望ましいと解釈してるんだけどどう?
0274デフォルトの名無しさん
2010/02/13(土) 04:22:02qDebug() は例が悪かった
忘れてくれ orz
とりあえず「ソースのエンコード」と「実行時のエンコード」の
ポータビリティを両立させようとしたら (B) の方が望ましいのでは? と思った
入力を考えると
QString hoge("日本語"); // (1) が使用されている
QString hoge(QObject::tr("日本語")); // (2) が使用されている
これはいいとして
出力を考えると
qDebug("%s", hoge.toUtf8().constData()); // 問題なし
std::cout << hoge.toLocal8Bit().constData(); // 問題なし
std::cout << hoge.toAscii().constData(); // (1) が使用されている
std::cout << hoge.toStdString(); // (1) が使用されている
std::cout << qPrintable(hoge); // (1) が使用されている?
かな
0275デフォルトの名無しさん
2010/02/13(土) 08:14:22QCoreApplication::quitはQCore(ry::execを呼び出した後じゃないと
効果が無いんじゃないかな?
だからQTimer::singleShot(0, &app, SLOT( quit() ));を使って
タイマーイベントで駆動する小細工が必要になる
ってのを見たんだけど[1]
#include <QCoreApplication>
#include <QTimer>
int main(int argc, char *argv[]) {
QCoreApplication app(argc, argv);
QTimer::singleShot(0, &app, SLOT( quit() )); // app.quit();
return app.exec();
}
[1]
Qt-interest Archive - QCoreApplication won't quit
http://lists.trolltech.com/qt-interest/2008-02/thread00916-0.html
0276デフォルトの名無しさん
2010/02/13(土) 11:02:00>>176
出力はQTextStreamだろ常考
0277デフォルトの名無しさん
2010/02/13(土) 11:07:10ってずっと思ってたんだけど、無変換キーを押すと次のキー入力が無視されることに気づいた
変換−無変換でIME切り替えてるから困るなあ
0278デフォルトの名無しさん
2010/02/13(土) 11:24:08おお、寝てる間に小人さんが・・・
THX !!!
最後の結論はこっちになってますね
> #include <QtCore>
> #include "myclass.h"
>
> int main(int argc, char *argv[])
> {
> QCoreApplication qapp(argc, argv);
> MyClass *class = new MyClass(0);
> QObject::connect( class, SIGNAL( done() ), &qapp, SLOT( quit() )
);
> class->doSomething(); // Emits done, when finished
> return qapp.exec();
> }
You just need to add Qt::QueuedConnection as an additional argument to
the connect() call.
http://doc.trolltech.com/4.3/qt.html#ConnectionType-enum
0279デフォルトの名無しさん
2010/02/13(土) 11:26:48ソースに日本語は使わずに国際化リソースで対応しよう
0280デフォルトの名無しさん
2010/02/13(土) 11:42:42なるほ・・・ど?いやでも日本語でコメント書きたいよw
0281デフォルトの名無しさん
2010/02/13(土) 11:56:24でもQt Creatorのエディタは日本語入力以外そんなに悪くないと思う。
折り畳み機能は邪魔なのでOFFにしてるけど。
最初、「わ、関数の中身が全部消えた」とか勘違いしたw
カッコや""の自動補完も最初は余計なお世話だと感じたけど、
慣れるとそうでもないね。
0282デフォルトの名無しさん
2010/02/13(土) 12:52:07無変換キーのせいでダメだと思ってただけで、他は問題ないんだ
まあ外部エディタでいいんだけど、自動補完がよくできてるからもったいないなと
0283デフォルトの名無しさん
2010/02/13(土) 12:55:53それでも
void MyClass::doSometiong() { done(); }
って定義したら、やっぱり終了しないみたいだから
QCoreApplication::exec()より後で呼び出されることを保障する手段としては
タイマーイベントを使うのが一番簡単なんじゃないかと思う
execした直後に自動で呼び出されるsignalがあればそれを繋げばいいんだけどさ
リファレンス見る限りそんなものは無いようなんで困ったもんだなぁと
0284デフォルトの名無しさん
2010/02/13(土) 14:03:550285デフォルトの名無しさん
2010/02/13(土) 14:51:13エラーのときだけメッセージボックス出したいとか
で
やってみたら
QWindow だけ作って メッセージボックスにハンドル渡して
app.exec() 呼ばなくてもちゃんと動いたわ w
0286デフォルトの名無しさん
2010/02/13(土) 14:54:53>void MyClass::doSometiong() { done(); }
Q_OBJECT 書いてる?
0287デフォルトの名無しさん
2010/02/13(土) 14:56:22書いてるよー
じゃないとmocに怒られるし
0288デフォルトの名無しさん
2010/02/13(土) 15:04:210289デフォルトの名無しさん
2010/02/13(土) 15:07:020290デフォルトの名無しさん
2010/02/13(土) 15:33:54試してみたところWindowsのMingw環境でもプリコンパイルドヘッダーが使えました。
debugディレクトリ以下にstable.h.gchというディレクトリができていたので
ちゃんと機能しているようです。
コンパイル速度の変化は正確にはわからないですが、
もっとたくさんヘッダファイルを使う場合には差が出るのではと思います。
0291283
2010/02/13(土) 16:01:02http://www.dotup.org/uploda/www.dotup.org650392.zip.html
トレースしてみましたが明らかにexec()より先にdone() -> quit()が呼ばれてます
0292220
2010/02/13(土) 21:38:02俺はVCだけど。プリコンパイルドヘッダー使ったら、コンパイルが劇的に速くなった。
QApplicationとQtGuiをプリコンパイルの対象にしたから、殆どすべてのヘッダーが
プリコンパイルされて巨大なファイルが出来上がったけどねw
それよりデバッガーの遅さが気になる。VCだからcdbなんだけど、デバッグ起動して
ブレークで止まってから、ローカル変数が表示されるまでかなり時間が掛かる
(「ダンパーを初期化しています」とか表示されてから10秒以上あるかな)。
あんまりほめられたことじゃないけど、カットアンドトライ的にソースをホイホイ
書き換えてはデバッガーで動かしてテストしてみるのはちょっと苦痛。
0293デフォルトの名無しさん
2010/02/13(土) 21:39:46MyClass cls;
QObject::connect(&cls, SIGNAL(done()), &app, SLOT(quit()), Qt::QueuedConnection);
cls.doSomething();
return app.exec();
と Qt::QueuedConnection を付けて呼ぶと
>QCoreApplication::exec()より後で呼び出されることを保障する手段としては
が満たされるようですね
>>286 >>289
できました
emit は書いてなくても動くみたいです
ありがとうございました
0294デフォルトの名無しさん
2010/02/13(土) 21:54:49> まあ外部エディタでいいんだけど、自動補完がよくできてるからもったいないなと
うん。だから場面によって使い分けてる。マークジャンプとか、アウトライン機能
(見出し機能)で関数一覧を表示させといて一発ジャンプとか、使い慣れたエディタの
方が良いこともあるから。
0295デフォルトの名無しさん
2010/02/14(日) 01:29:16わざわざ MyClass 作らなくてもこれでも終われるね (connect の行がないと終わらない)
QApplication app(argc, argv);
QMainWindow *window = new QMainWindow();
window->setAttribute(Qt::WA_DeleteOnClose);
コンソールのみ使用するプログラム
QMessageBox::about(window, QObject::trUtf8("テスト"), QObject::trUtf8("!!"));
QObject::connect(window, SIGNAL(destroyed()), &app, SLOT(quit()));
window->close();
return app.exec();
0296デフォルトの名無しさん
2010/02/14(日) 01:58:36QApplication app(argc, argv);
じゃなくて、
QCoreApplication app(argc, argv);
でないと反則。
っつーかそもそも、>>284さんの指摘にもあるが、
app.exec();
を呼ぶ動機が微妙。
ひょっとしてネットワークとかタイマーとか、
どっかでイベントループ回す必要がある、
ってことなら判らんでもないが。
0297デフォルトの名無しさん
2010/02/14(日) 02:46:20http://cep.xor.aps.anl.gov/software/qt4-x11-4.2.2-browser/dc/d8a/qdbus_8cpp-source.html
0298デフォルトの名無しさん
2010/02/14(日) 14:28:490299デフォルトの名無しさん
2010/02/14(日) 18:12:53emitしたシグナルの引数が、スロットに渡される。
スロットの受け取る引数の数が少ないときは、後ろの引数は削られる。
スロットの受けとるのが多い場合は(どうなるか忘れたが)うまくいかない
signal valueChanged(int)とslot setValue(int)をconnectしたら、
例えばvalueChanged(3)がemitされたとき、setValue(3)が呼び出される。
signal valueChanged(int)とslot update()をconnectしたら、
例えばvalueChanged(3)がemitされたとき、signalの引数が1つに対してslotは引数を取らないので削られて、
update()が呼び出される。
0300デフォルトの名無しさん
2010/02/14(日) 18:39:44ありがとうございます
0301デフォルトの名無しさん
2010/02/14(日) 19:32:53あれってどこで消すのよ?
0302デフォルトの名無しさん
2010/02/14(日) 20:05:360303デフォルトの名無しさん
2010/02/14(日) 20:49:490304デフォルトの名無しさん
2010/02/14(日) 22:38:57あるよ
devel/qtcreator
だったかな
0305デフォルトの名無しさん
2010/02/15(月) 01:30:11thx
それ入れればたぶん依存でQt本体も勝手にインストールされるよね(´・ω・`)?
0306デフォルトの名無しさん
2010/02/15(月) 05:54:11それとヘッダに強制的に追加される不要な項目を消すことはできますか?
リクエストだけ直に書ければ助かるんですけど・・・
0307デフォルトの名無しさん
2010/02/15(月) 09:13:00もちろんですとも
0308デフォルトの名無しさん
2010/02/15(月) 10:53:03QNetworkRequestで出来る操作だけで不満ならQTcpSocket使ってはいかがか。
0309デフォルトの名無しさん
2010/02/15(月) 16:45:19ttp://qt.nokia.com/resources-jp/Japanese_elearning/qt-conference-tokyo-2009-videos
0310デフォルトの名無しさん
2010/02/15(月) 17:08:40ヘッダーはユーザが追加した順番になるはず。
自動的に追加されるヘッダーは送出の直前で追加されるので削除は無理っぽい。
空かどうかをチェックして追加しているので自前のものに置き換えることは可能。
0311デフォルトの名無しさん
2010/02/15(月) 21:36:17moblin と maemo をマージした Linux & Qt ベースの
mobile向けディストリビューションらしい。
0312デフォルトの名無しさん
2010/02/15(月) 23:07:500313デフォルトの名無しさん
2010/02/15(月) 23:20:240314デフォルトの名無しさん
2010/02/15(月) 23:27:040315デフォルトの名無しさん
2010/02/15(月) 23:30:080316デフォルトの名無しさん
2010/02/15(月) 23:33:080317デフォルトの名無しさん
2010/02/15(月) 23:33:13何なら鍼灸療法入れといたって医院だし。
0318デフォルトの名無しさん
2010/02/16(火) 02:09:430319デフォルトの名無しさん
2010/02/16(火) 11:43:58やっぱり、手書きか
0320デフォルトの名無しさん
2010/02/16(火) 11:46:370321デフォルトの名無しさん
2010/02/16(火) 20:57:050322デフォルトの名無しさん
2010/02/16(火) 21:18:14一度クリーンアンインストールしてから再度インストールしなおす?
0323デフォルトの名無しさん
2010/02/16(火) 21:30:39ダイアログ1のデータをダイアログ2で使いたいんですが、うまく行きません。
class Dialog : public QDialog{
Q_OBJECT
public:
Dialog2(QWidget *parent = 0);
Dialog2(QWidget *parent, Dialog1 *dlg1);
として
Mainwindowで
Dialog2 *m_dlg2 = new Dialog2(0, &m_dlg1);
とすれば、動くんですが、m_dlg2をメンバー変数にしようと思いMainwindow.hで
Dialog1 m_dlg1;
Dialog2 m_dlg2(QWidget *parent=0, Dialog1* &m_dlg1);
としてみたんですが
default argument missing for parameter 2 of 'Dialog2 Mainwindow::m_dlg2(QWidget*, Dialog1*&)'
とのエラーになってしまいます。
どうすれば、できるでしょうか
0324デフォルトの名無しさん
2010/02/16(火) 21:45:37何してんですか?これ
0325デフォルトの名無しさん
2010/02/16(火) 21:52:29>としてみたんですが
>default argument missing for parameter 2 of 'Dialog2 Mainwindow::m_dlg2(QWidget*, Dialog1*&)'
>とのエラーになってしまいます。
Dialog2 m_dlg2(QWidget *parent=0, Dialog1*m_dlg1=0);
0326デフォルトの名無しさん
2010/02/16(火) 21:53:01普通に旧版アンインストールしてから新しいのインストールすれば問題ないよ。
設定は自分のプロファイルフォルダの下(C:\Documents and Settings\(ユーザー名)
\Application Data\Nokia)に保存されてるから、消される心配しなくて大丈夫。
0327デフォルトの名無しさん
2010/02/16(火) 21:53:20ソースの方で webkit 使ってるんだろ
0328デフォルトの名無しさん
2010/02/16(火) 22:03:100329デフォルトの名無しさん
2010/02/16(火) 22:03:53つ ttp://qt.nokia.com/doc/4.6/qmake-variable-reference.html
QT は使用するモジュール(ライブラリ)の指定。>>327の言うとおり、QtWebKit使ってるから
だと思われ。
0330デフォルトの名無しさん
2010/02/16(火) 22:17:30ttp://qt.gitorious.org/qt/qt/blobs/4.6/dist/changes-4.6.2
0331デフォルトの名無しさん
2010/02/16(火) 22:21:23そうなんだ
「入門Qt4プログラミング」の FTP / HTTP だと
exec() でイベントループ回さないといけないと書いてあった
0333デフォルトの名無しさん
2010/02/16(火) 22:35:03メニュバーは自分でシコシコ手書きするしかないんですか?
0334デフォルトの名無しさん
2010/02/16(火) 22:45:44ウィンドウの左上に「ここに入力」って書かれてるところをクリックして、&File とでも
入力してごらんよ。
コンテキストメニュー(ポップアップメニュー)は手書きするしかないけど。
0335デフォルトの名無しさん
2010/02/16(火) 22:47:090336デフォルトの名無しさん
2010/02/16(火) 22:50:24ありがとう。
それならバージョンアップも楽だね('A` )b
0337333
2010/02/16(火) 22:55:30最後にエンター押さなきゃ行けないんですね、
Visual Studioだとエンターを押さなくてもよかった(俺の記憶では)ので気がつかなかった
ありがとう
0338323
2010/02/16(火) 22:57:56ありがとうございました。
Dialog2 m_dlg2(QWidget *parent=0, Dialog1*pdlg1=&m_dlg1);
としたら、今度は
SO C++ forbids taking the address of a bound member function to form a pointer to member function
と怒られました。
ISO C++では、インスタンスのメンバ関数のアドレスを、メンバ関数へのポインタを作るために取得することは禁じらています。
結局、この方法はペケなんですかね
0339デフォルトの名無しさん
2010/02/16(火) 23:16:41Dialog1 *m_dlg1;
Dialog2 *m_dlg2;
とポインタでクラスメンバを宣言して、
コンストラクタの初期部で
m_dlg1(new Dialog1), m_dlg2(new Dialg2(0, m_dlg1))
とでもすれば。
親を 0 にするならデストラクタで delete を呼ぶ必要があるけど。
0340デフォルトの名無しさん
2010/02/17(水) 00:50:34シグナルるでスロットにデータを渡す
0341デフォルトの名無しさん
2010/02/17(水) 01:28:141. 旧Qtアンインストール
2. 新Qtインストール
3. システムの詳細なプロパティで変数pathにQtを加える。
4. c:/msys/1.0/etc/fstabにmingw32の場所を教える。
makeするのマンドクセ
0342デフォルトの名無しさん
2010/02/17(水) 13:50:31共存できないのかな
0343デフォルトの名無しさん
2010/02/17(水) 14:14:460344デフォルトの名無しさん
2010/02/17(水) 15:20:08余計な苦労したくなければ入れておく方がよさげだね
0345デフォルトの名無しさん
2010/02/18(木) 00:21:550346デフォルトの名無しさん
2010/02/18(木) 00:22:520347デフォルトの名無しさん
2010/02/18(木) 20:22:210348デフォルトの名無しさん
2010/02/18(木) 21:18:41public + staticなメンバ変数を宣言していました
お前らは、QApplicationをどんな感じで使ってますか?
0349デフォルトの名無しさん
2010/02/18(木) 22:13:08ソースにまでバグがあるw
0350デフォルトの名無しさん
2010/02/18(木) 22:30:39Designerの方はなるんだね
プラグイン追加すればいいのかな?
でも自動的に開いたり閉じたりはしないよね?
0351デフォルトの名無しさん
2010/02/19(金) 01:04:30そのまま使ってる。
0352デフォルトの名無しさん
2010/02/19(金) 03:28:11Windows 用の DLL って Qt ではどうやって作るの?
0353デフォルトの名無しさん
2010/02/19(金) 03:36:33Qt使ってるかどうかは関係ないよ。
0354デフォルトの名無しさん
2010/02/19(金) 06:51:59qmake の .pro で、TEMPLATE = lib
0355デフォルトの名無しさん
2010/02/19(金) 06:59:42ありがとうございます
Win32API とかだと DLLMain を書かないといけなかったりするのは
Qt だとどう書くのかなと思ったのです
0356デフォルトの名無しさん
2010/02/19(金) 07:48:19同じソースから、*NIXならlibXXX.soが、WindowsならXXX.dllが作られる。
0357デフォルトの名無しさん
2010/02/19(金) 11:42:20レガシーなアプリケーションの改修を任されたのですが、
新規に追加するダイアログだけ Qt を使うことは可能ですか?
0358デフォルトの名無しさん
2010/02/19(金) 18:54:13cookie とか session 用のメソッドが全然見つからない
このあたりのを自分で作らないとだめなのかな
0359デフォルトの名無しさん
2010/02/19(金) 20:02:350360デフォルトの名無しさん
2010/02/19(金) 21:09:28無事起動までこぎつけたけどなぜかコンパイルの段階になって
「Qtの本体が無いよ」と言われてコンパイルできず。
あるぇ〜?
言われてみれば qmake とコマンドラインで打ち込んでも認識されないな・・・
パスがきちんと通ってないのかな?
0361デフォルトの名無しさん
2010/02/19(金) 21:14:150362デフォルトの名無しさん
2010/02/19(金) 21:47:14thx!!
0363デフォルトの名無しさん
2010/02/19(金) 22:00:15アンカを間違えてるがな( ^ω^)
0364デフォルトの名無しさん
2010/02/20(土) 01:12:12いつの間にやらまっしろなウィンドウしか表示されなくなってしまったんだけど、他に同じ症状の人いないかな?
ビルド&起動環境は64bitカーネル、64bit版のqt
発生するバージョンはここ最近の5バージョンぐらい?
0365デフォルトの名無しさん
2010/02/20(土) 02:45:3110.6 で qt4-mac @4.6.2 の qtdemo-mac (コマンドライン) と
/Applications/MacPorts/Qt/qtdemo.app を起動してみたけど,どっちも問題ないです.
ビルドはデフォルトのまま 64bit でしてるけど, MacBook なのでカーネルは32bit.
0366デフォルトの名無しさん
2010/02/20(土) 09:47:44QNetwork を見ると QHttp とほとんど同じメソッドっぽいんですが
QNetwork の方が高機能で QHttp は obsolete ってことですか?
0367デフォルトの名無しさん
2010/02/20(土) 11:47:45そうです。
http://doc.trolltech.com/4.6/obsoleteclasses.html
0368デフォルトの名無しさん
2010/02/20(土) 14:25:13> qmake -project
まではおkだけど、次の
> qmake
の段階になると「QMAKESPECが定義されてませんよ」と言われてエラーが返される。
たんにパッケージからインストールしただけじゃダメなの?
他にどんな設定をする必要がある?
0369デフォルトの名無しさん
2010/02/20(土) 14:58:550370デフォルトの名無しさん
2010/02/20(土) 15:06:280371デフォルトの名無しさん
2010/02/20(土) 15:30:15ログインするユーザー毎にQMAKESPECを設定しないといけないのかorz・・・
QMAKESPECに freebsd-g++ を指定したら > qmake が通るようになった。
でも同じシステム上だったら freebsd-g++ しか指定しないのは分かり切ったことなんだから
Qt本体の方で freebsd-g++ と指定してくれてもいいのにね(´・ω・`)
ところで
> qmake -project
> qmake
とまで通るようになったけど次の
> make
でエラーが返される。なんでも「QApplicationなんてファイルやフォルダはありませんよ」とか
「QLabelなんてファイルやフォルダなんてありませんよ」とか・・・
なんかがおかしいだろorz・・・
以前Troll-techからQtのソースを取ってきてFreeBSD上でシコシココンパイルしてからインストール
したときはこんな初歩的なトラブルでつまずいたりすることはなかった。
packageからインストールしたことで何か問題が起きているとしか思えん。
0372デフォルトの名無しさん
2010/02/20(土) 16:52:380373デフォルトの名無しさん
2010/02/20(土) 17:12:24thx!!
0374デフォルトの名無しさん
2010/02/20(土) 17:23:03qmake 時か make 時に warning 吐いてくれてもよさそうなきがする
0375デフォルトの名無しさん
2010/02/20(土) 17:31:17インストールすべきものは全てインストールしたんだがな(´・ω・`)・・・
0376デフォルトの名無しさん
2010/02/20(土) 18:11:31ここのひとかもなぁ
http://pc12.2ch.net/test/read.cgi/unix/1262148963/446-
0377デフォルトの名無しさん
2010/02/20(土) 18:12:45おまい C は初めてか?力抜けよ
0378デフォルトの名無しさん
2010/02/20(土) 18:15:20FreeBSD の ports は充分テストされないでリリースされるのが常識
0379デフォルトの名無しさん
2010/02/20(土) 18:31:210380デフォルトの名無しさん
2010/02/20(土) 19:05:14ルートフォルダにinstall.iniだのinstall.res.1031.dllだのeula.1041.txtだのファイルを
てんこ盛り作ってくれやがった。
これらのファイルってインストールが終わったら削除してしまって構わないよな?
いずれにせよちょっとお行儀悪すぎないか?
0381デフォルトの名無しさん
2010/02/20(土) 19:43:09そんなのは判り切ってるんです
packageから入れたのに自動でincludeパスの設定がされなかったことを問題にしてるんですよ!!
0382デフォルトの名無しさん
2010/02/20(土) 19:45:52うちはそんなもの作られなかった
ひょっとしてインストール先を
C:\Qt じゃなくて
C:\ にしたんじゃないの?
0383デフォルトの名無しさん
2010/02/20(土) 19:58:50いやインストール先をいじった覚えは無いんだが
0384デフォルトの名無しさん
2010/02/20(土) 20:16:07http://support.microsoft.com/kb/950683
0385デフォルトの名無しさん
2010/02/20(土) 20:26:08These files are unnecessary and can be safely deleted from the system.
これらのファイルは、不要であり、システムから安全に削除できます。
Its a known bug and is planned to be fixed in VS2008 SP1.
それは知られているバグです。そして、VS2008 SP1で修理されるために、計画されています。
>>381
FreeBSD に関する問題点の報告に時間を割いていただき、 どうもありがとうございます。
0386デフォルトの名無しさん
2010/02/20(土) 20:32:15includeはきちんとやってるよ。
#include <QtGui/QApplication>
ってな感じで。もちろん
#include <QApplication>
も試してみたがこれもダメだった。
0387デフォルトの名無しさん
2010/02/20(土) 21:18:35エラーから想像するにincludeパスが通ってないとかかな
0388デフォルトの名無しさん
2010/02/20(土) 21:55:56サンクス、消してくるノシ
0389デフォルトの名無しさん
2010/02/20(土) 21:59:03http://doc.trolltech.com/main-snapshot/qlocalsocket.html
このクラスの説明と実際にかかれているコードを読んだんだけど、
何をしているのかわからない
誰か教えてくれ
0390デフォルトの名無しさん
2010/02/20(土) 22:01:090391デフォルトの名無しさん
2010/02/20(土) 22:03:32The QLocalSocket class provides a local socket.
On Windows this is a named pipe and on Unix this is a local domain socket.
If an error occurs, socketError() returns the type of error, and errorString() can be called to get a human readable description of what happened.
Although QLocalSocket is designed for use with an event loop, it's possible to use it without one.
In that case, you must use waitForConnected(), waitForReadyRead(), waitForBytesWritten(), and waitForDisconnected()
which blocks until the operation is complete or the timeout expires.
Note that this feature is not supported on versions of Windows earlier than Windows XP.
See also QLocalServer.
0392デフォルトの名無しさん
2010/02/20(土) 22:04:29プロセス間通信でぐぐれ
0393デフォルトの名無しさん
2010/02/20(土) 22:06:19同じソースをQtCreatorを通してビルド&実行すると問題なく通る。
コンソールからコマンド直打ちじゃmakeの段階でエラーが返ってくる。
どゆこと(・ω・)?
> qmake -project
> qmake
> make
で問題ないはずだよな?
0394デフォルトの名無しさん
2010/02/20(土) 22:14:38感謝
0395デフォルトの名無しさん
2010/02/20(土) 23:08:44QtCreatorでプロジェクトファイルを読み込んでビルドしたら問題なく通った。
その後コマンドプロンプトで
> make
コマンドを打ったらこれも問題なく通った。
だが再度コマンドプロンプトで
> qmake -project
> qmake
> make
と打ち直してみたら最後の > make の段階で再びコンパイルエラーが出るようになった。
何を言ってるのか分からないかも知れないが俺もどういう事態に巻き込まれたのかよく分からない。
何か尋常じゃないことが起きていることだけは確かだ。。。
0396デフォルトの名無しさん
2010/02/20(土) 23:21:37できなかったら、proファイルに不備がある。
できたとしたら、qmakeのオプションが怪しい
0397デフォルトの名無しさん
2010/02/20(土) 23:24:46一緒につくられるヘッダファイルやソースファイルに変更が反映されていくの?
それとも何かでコード出力しなきゃダメなの?
0398デフォルトの名無しさん
2010/02/20(土) 23:29:33> qmake -projectで作り直したproファイルでQtCreatorからコンパイルできるか?
うん、QtCreatorからそのproファイルを読み込んで「ビルド」を実行するとコンパイルできてしまう。
0399デフォルトの名無しさん
2010/02/20(土) 23:32:35それだ!!
うちのも何か eula.1041.txt とか10個くらい
作成されてた理由がわかった�d 特に害もないから気にせず放置してたけどw
0400デフォルトの名無しさん
2010/02/20(土) 23:36:48恥。レスよく読めよじぶん乙orz
0401デフォルトの名無しさん
2010/02/20(土) 23:38:22Qt Creatorは各種の環境変数を内部で設定して、それを子プロセスに引き継いだ状態で
qmakeを起動するから、結局はコマンドラインでqmakeするときの環境変数の設定が
足りないんじゃないか?
Qt Crteatorの左端に縦に並んだアイコンの[プロジェクト]のページに、
[ビルド時の環境変数]という項目があるから、そこで[詳細を表示]ボタンを
押して確認してみたら?
俺はWindowsでやってるから外してるかもしれないが、基本は同じだと
思うので...
0402デフォルトの名無しさん
2010/02/21(日) 02:25:27ふつう自分の環境変数とかここに貼るだろ
0403デフォルトの名無しさん
2010/02/21(日) 03:42:08FreeBSDへのインストールが間違っているのかと思って
QtCreatorからQt4ライブラリと一式アンインストールしてきた。
再度インストールしなおそうと思うんだけどパッケージからインストールすべきか、
本家からソースコードをとってきて地道にコンパイルしてインストールすべきか迷う。。。
0404デフォルトの名無しさん
2010/02/21(日) 03:56:48http://www.cyberciti.biz/tips/freebsd-compiling-application-with-qt.html
0405デフォルトの名無しさん
2010/02/21(日) 05:39:550406デフォルトの名無しさん
2010/02/21(日) 11:53:27ビルド wincewm60-msvc2005
QtCore4.dll QtGui4.dll msvcp80.dll msvcr80.dll exampleのanalogclock.exe
をデバイスのローカルフォルダにコピー
上記のことをやってみたんですが
analogclock.exeが起動するまでに7秒ほどかかります。
(デバイスのスペックによっても変わるでしょうが)
これはQtCore4.dllとQtGui4.dllを読み込むのに時間がかかっているということでしょうか?
短縮させる方法は無いでしょうか?
0407デフォルトの名無しさん
2010/02/21(日) 12:22:580408デフォルトの名無しさん
2010/02/21(日) 12:43:46やっぱり無理ですか?
自分の知識不足だろうと思ったんですが・・
.netの起動より遅いんですよねorz
0409デフォルトの名無しさん
2010/02/21(日) 13:10:590410デフォルトの名無しさん
2010/02/21(日) 13:14:09それを外部で実行する際に必要なDLL一式って何を取りそろえばいいんだっけ?
一カ所にまとまっていたりしない?
0411デフォルトの名無しさん
2010/02/21(日) 13:29:48つ ttp://www.dependencywalker.com/
Qtのヘルプのどこかのページでも紹介してたと思った。
0412デフォルトの名無しさん
2010/02/21(日) 13:36:51qmakeでQT変数に加えたdll(networkならQtNetwork4.dll)が必要。
後、実行時に動的に読まれるdllもあるから、直接の依存関係が無くても
plugins 以下も必要なdllがある。
0413デフォルトの名無しさん
2010/02/21(日) 13:54:30ありがとノシ
いずれQtの側でも作成したプログラムごとに必要なDLL一式をエクスポートしてくれる機能が実装されるといいね。
> QtCore4.dll
> QtGui4.dll
このdllファイルって
\Qt\2010.02\bin
\Qt\2010.02\qt\bin
の二カ所に同名で格納されてるけどどっちを使ったらいいと思う?
サイズは微妙に違う(後者の方が大きい・・・)
0414411
2010/02/21(日) 14:17:13ディレクトリ構成が違うのでわからないけど,PATHの通ってる方でいいじゃないか?
PATHを通さずに使ってるのなら,>>401と同様のところの[実行時の環境変数]を見れば
いいと思う。
0415デフォルトの名無しさん
2010/02/21(日) 14:25:50> PATHを通さずに使ってるのなら,>>401と同様のところの[実行時の環境変数]を見れば
> いいと思う。
\Qt\2010.02\qt\bin
こっちを使っているみたいノシ
0416デフォルトの名無しさん
2010/02/21(日) 16:33:127→4秒程度になりました。
(analogclock.exe msvcp80.dll msvcr80.dll)
このへんが限界なんでしょうかね?
//これでやっと.net並みorz
0417デフォルトの名無しさん
2010/02/21(日) 16:48:22前者はSDKのツール用のDLL。Qt Creator とか。
後者はフレームワーク用のDLL。
作ったアプリでリンクされるのは後者なので後者を使う方が無難。
0418デフォルトの名無しさん
2010/02/21(日) 18:34:26\Qt\2010.02\qt\srcの中にそれっぽいフォルダが見つからなかったもので。
0419デフォルトの名無しさん
2010/02/21(日) 19:37:42Creator のソースは別
http://qt.nokia.com/downloads/qt-creator-source-package
0420デフォルトの名無しさん
2010/02/21(日) 19:40:310422デフォルトの名無しさん
2010/02/21(日) 23:43:27AndroidはGoogleがオラオラすぎで
ポカーンって感じ
LiMoとMeeGoに収束するんじゃないかと思う
0423デフォルトの名無しさん
2010/02/22(月) 00:37:22サンプルを眺めてみるとシグナルとコネクタを結ぶconnect関数を定義する場所は
どれもだいたいシグナルを発するクラスのコンストラクタの中で宣言しているみたい。
これってそういう決まりだと思って素直に受け入れるべきもの?
それともこれは一つの流儀であって別にコンストラクタの中で宣言しなくてもいいもの?
0424デフォルトの名無しさん
2010/02/22(月) 01:12:07connect() を呼び出す場所のことか。
コンストラクタで呼ぶのはそのクラスの寿命の間に接続関係に変化がない場合。
別にそれ以外の場所で connect() や disconnect() を使ってシグナルの接続関係を変えても問題ない。
サンプル程度の短いものだとあまりそんな処理が出てきてないだけだと思う。
0425デフォルトの名無しさん
2010/02/22(月) 03:03:51そうなんだ。重要なのはapp.exec()を実行するまでにどこかしらの場所でconnect()関数が
最低でも一度は呼び出されるようなプログラムを書けと言うことなのね。
0426デフォルトの名無しさん
2010/02/22(月) 04:21:040427デフォルトの名無しさん
2010/02/22(月) 08:50:40menuBar()->addMenu(m_fileMenu);
QMainWindowを継承したクラスで、こんなコードがあります
なんで、QMenuに引数にthisじゃなくて、menuBar()なの?
0428デフォルトの名無しさん
2010/02/22(月) 20:56:29addMenu()でも勝手に親子関係が設定される
(結局parentに代入される)ので
m_fileMenu = new QMenu();
menuBar()->addMenu(m_fileMenu);
でも動くと思う
0429デフォルトの名無しさん
2010/02/22(月) 21:10:21ウインドウ→メニューバー→メニュー→メニュー項目
0430デフォルトの名無しさん
2010/02/22(月) 21:24:020431デフォルトの名無しさん
2010/02/22(月) 21:25:46>QMainWindowを継承したクラスで
thisを渡すとMainWindowが親になっちゃうから
0432デフォルトの名無しさん
2010/02/22(月) 21:26:57結局コンストラクタで何を引数にしていても
menuBar()->addMenu(m_fileMenu);
で上書きされると思うんだが
0433デフォルトの名無しさん
2010/02/22(月) 21:36:37からの派生クラスと同じように、自動deleteのためだけのようだよ。
だから>>427の例ではにコンストラクタの引数は別にthisでもいいんじゃないの?
0434デフォルトの名無しさん
2010/02/22(月) 21:45:31メニューバー交換したらリークしませんか?
0435デフォルトの名無しさん
2010/02/22(月) 21:53:37別のものだから関係ないような気がするけど...
0436デフォルトの名無しさん
2010/02/22(月) 21:54:48QtDesignerで作成したあるwidget(QVBoxLayoutの中にQLabelやQButtonが配置してあるような物)
を、そのかたまりのまま動的に配置したいと思っているのですが、
どんな流れで実現させるのが一番便利でしょうか?
想像ではDesignerで出てきたUi_Frameクラスをそのままメインウィンドウで
self.wid = Ui_Frame(self)
tLayout = QtGui.QVBoxLayout()
tLayout.addItem(self.wid)
と、できれば嬉しかったのですが、、、どうも
TypeError: QBoxLayout.addItem(QLayoutItem): argument 1 has unexpected type 'Ui_Frame'
というエラーになってしまいます。
いくつ配置するか想定できないので、欲しい数分Designerで配置するのは不可能です。
初心者まるだしですいません、よろしくお願いします。
0437デフォルトの名無しさん
2010/02/22(月) 22:04:04PyQt4.uic.loadUi('hoge_frame.ui', self.wid)
tLayout = QtGui.QVBoxLayout()
tLayout.addItem(self.wid)
0438デフォルトの名無しさん
2010/02/22(月) 22:46:58大変、ありがとうございます。
ただもうひとつ聞かせてください。
DesignerでどのFormを選ばないといけない、などあるのでしょうか?
Widgetで始めるとaddItemでエラーが出てしまい、
TypeError: QBoxLayout.addItem(QLayoutItem): argument 1 has unexpected type 'QWidget'
QFrameで始めるとLoadUiでエラーが出てしまいます。
TypeError: ('Wrong base class of toplevel widget', (<class 'PyQt4.QtGui.QWidget'>, 'QFrame'))
0439デフォルトの名無しさん
2010/02/23(火) 00:30:14ttp://labs.trolltech.com/blogs/2010/02/22/qt-sdk-201002-reloaded/
クラッシュするから Windows 用だけアップデートだと。
0440デフォルトの名無しさん
2010/02/23(火) 02:03:16上書きインストールってできたっけ?
それとも一度アンインストールする必要あり?
0441デフォルトの名無しさん
2010/02/23(火) 07:03:39>TypeError: QBoxLayout.addItem(QLayoutItem): argument 1 has unexpected type 'Ui_Frame'
>TypeError: QBoxLayout.addItem(QLayoutItem): argument 1 has unexpected type 'QWidget'
>TypeError: ('Wrong base class of toplevel widget', (<class 'PyQt4.QtGui.QWidget'>, 'QFrame'))
QBoxLayout.addItem(QLayoutItem)
の引数の型と一致していないんじゃない?
0442デフォルトの名無しさん
2010/02/23(火) 19:32:49でダウンロード後の処理をしようと思うのですが、
QNetworkReply::finished()
の方とどっちでするのが良いでしょうか?
前者は複数セッション同時にダウンロードしてても大丈夫でしょうか?
0443デフォルトの名無しさん
2010/02/23(火) 21:26:440444デフォルトの名無しさん
2010/02/23(火) 23:25:58実行ファイルを開発環境以外に移して実行すると、png以外開けません。
もちろん、開発環境下ではそれ以外も開けるのですが、
dllなど何が必要で、どう設定すれば良いのかわかりません。
教えていただけると助かります。
0445444
2010/02/23(火) 23:28:46開発環境は、Windows XP で Qt Creater(MinGW) を用いています。
つまり、ダウンロードできるパッケージをそのままインストールした感じです。
0446デフォルトの名無しさん
2010/02/23(火) 23:37:150447444
2010/02/23(火) 23:54:33ありがとうございます。
そのツールを使って確認しましたが、それらしいdllはなく、
表示されたdllを全て詰め込みましたが駄目でした。
jpgやgifなどは、デフォルトでは使えず、プラグインを使用してるという記事も目にしましたが、
実際にどこを参照しているのかがわかりません。
0448デフォルトの名無しさん
2010/02/24(水) 00:03:370449444
2010/02/24(水) 00:08:48やはりそこなのですね、ありがとうございます。
そこにあるqjpeg4.dllやqgif4.dllを詰め込んでみましたが、これでは駄目でした。
どこかで明示しないといけないのでしょうか?
0450デフォルトの名無しさん
2010/02/24(水) 00:19:30plugins の下はアプリのバイナリと同じ場所からは読まない。
プラグインのディレクトリの imageformats の下から。
アプリと同じ場所に plugins\imageformats を作るか
imageformats を作れば良かったはず。
QLibraryInfo::location(QLibraryInfo::PluginsPath) を参考に場所を決めるといい。
http://qt.nokia.com/doc/4.6/deployment-windows.html
0451444
2010/02/24(水) 00:31:59できました!
結果的には、おっしゃるように、アプリケーションと同じ場所に imageformats を作れば良かったようです。
それまでは、dllを直に置いていました。
ありがとうございました!
0452デフォルトの名無しさん
2010/02/24(水) 03:18:59QHttp で書いていたのを QNetworkAccessManager で書き直しましたところうまくいきました。ありがとうございました。
#include <QtCore>
#include <QNetworkAccessManager>
#include <QNetworkCookieJar>
#include <QNetworkReply>
#include <iostream>
class QUrl;
class Qt2chwr : public QObject {
Q_OBJECT
public:
Qt2chwr(QObject *parent = 0);
void postmsg(const QUrl &url, const QByteArray &dat);
signals:
void done();
private slots:
void fin(QNetworkReply *reply);
void err(QNetworkReply *reply, const QList<QSslError> &errors) {}
private:
QNetworkAccessManager *nam;
QByteArray data;
};
#include "qt2chwr.h"
int main(int ac, char **av){
QCoreApplication app(ac, av);
Qt2chwr w;
QObject::connect(&w, SIGNAL(done()), &app, SLOT(quit()));
QString dat(QObject::trUtf8("bbs=unix&key=1236650121&FROM=&mail=sage&MESSAGE=さげ&time=1236650121&submit=書き込み&tepo=don"));
QTextCodec *jp = QTextCodec::codecForName("sjis");
w.postmsg(QUrl("http://pc12.2ch.net/test/bbs.cgi"), jp->fromUnicode(dat));
return app.exec();
}
0453デフォルトの名無しさん
2010/02/24(水) 03:21:02nam = new QNetworkAccessManager(this);
nam->setCookieJar(new QNetworkCookieJar());
connect(nam, SIGNAL(finished(QNetworkReply *)), this, SLOT(fin(QNetworkReply *)));
connect(nam, SIGNAL(sslErrors(QNetworkReply *, const QList<QSslError> &)), this, SLOT(err(QNetworkReply *, const QList<QSslError> &)));
}
void Qt2chwr::postmsg(const QUrl &url, const QByteArray &dat){
QNetworkRequest request(url);
request.setRawHeader("User-Agent", "Qt4");
request.setRawHeader("Referer", url.toString().toAscii());
nam->post(request, data = dat);
}
void Qt2chwr::fin(QNetworkReply *reply){
if(reply->error() != QNetworkReply::NoError){
std::cerr << "Error: " << qPrintable(reply->errorString()) << std::endl;
}else{
QRegExp re(QString("<!-- 2ch_X:cookie -->"));
if(re.indexIn(reply->readAll()) >= 0){
postmsg(reply->url(), data);
return;
}
}
emit done();
}
0454デフォルトの名無しさん
2010/02/24(水) 04:13:02tooltipを表示する速度を変更することはできますか?
0455デフォルトの名無しさん
2010/02/24(水) 12:18:49ありがとうございます。おっしゃる通りでした!
QLayoutItemの型に合わせるのにてこずりました。。
0456デフォルトの名無しさん
2010/02/24(水) 20:27:31QTデザイナーでシグナル&スロット編集で見れるものしかとれないのでしょうか。。
0457デフォルトの名無しさん
2010/02/24(水) 20:43:01swap_pager: out of swap space
swap_pager_getswapspace(11): failed
Fet 24 04:15:26 localhost kernel: pid 21197 (ld), uid 1001, was killed: out of swap space
g++: Internal error: killed: 9 (program ld)
Please submit a full bug report.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
gmake[1]: *** [../../lib/libQtGui.so.4.6.2: Error 1
gmake[1]: Leaving directory '/tmp/qt-everywhere-opensource-src-4.6.2/src/gui'
gmake: *** [sub-gui-make_default-ordered: Error 2
なんだろね(´・ω・`)?
0458デフォルトの名無しさん
2010/02/24(水) 20:56:00そもそも QLabel や QLineEdit などには clicked() シグナルがないので無理。
mouserPressEvent(), mouseReleaseEvent() を継承して自分で clicked() シグナルを出すか、
編集がいらない場合はボタンをラベル的に扱うか。
0459デフォルトの名無しさん
2010/02/24(水) 20:57:55普通にエラーメッセージ通りなのでは?
スワップできないとかあるから、
HDD掃除かパーティーションきり直しか。
gccのバグだったらごめんぬ。
0460デフォルトの名無しさん
2010/02/24(水) 21:13:48swapは/に統合してあるからHDDの容量が限界を迎えるまで余裕があるはずなんだけど(´・ω・`)・・・
0461デフォルトの名無しさん
2010/02/24(水) 21:56:57失礼、swapは独立した領域に256MB確保していた。
でも256MBでも足りなかったのか・・・
最近のソフトの肥大化は恐ろしいな(´・ω・`)
というわけで急遽512MBの緊急SWAPを追加してコンパイル再開中
0462デフォルトの名無しさん
2010/02/24(水) 23:42:49OSS版のQtをVisualStudio2008 Expressで使用しています。
テキストエディタを右クリックしたときのメニューや、
ダイアログのキャンセルボタン等が英語で表示されているので
http://www.sra.co.jp/qt/relation/index.html
の情報とかを使って日本語で表示するようにしようとしたのですが、うまくいきません。
もしご存知の方がいましたらやり方を教えていただけないでしょうか。
よろしくおねがいします。
0463デフォルトの名無しさん
2010/02/25(木) 02:48:04swap_pager: out of swap space
もしかして失敗して中断したら
make clean
してから
make all
とかやってる?
それだと毎回同じところで止まるけど
上の中断なら失敗したところからすぐさま
make all
だけで続きから始まるし swap もリセットされて上手くいくよ?
0464デフォルトの名無しさん
2010/02/25(木) 03:41:36> make all
ね、ありがと。ためしてみる(´・ω・`)ノシ
ところでまた新たに別のエラーが出てコンパイルが止まってた。
/qt-everywhere-opensource-src-4.6.2/bin/qmake -spec /mkspecs/freebsd-g++ -unix -o Makefile WebCore.pro
Cannot find file: WebCore.pro .
*** Error code 2
Stop in /qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore .
*** Error code 1
Stop in /qt-everywhere-opensource-src-4.6.2.
もうねorz・・・
0465デフォルトの名無しさん
2010/02/25(木) 04:17:470466デフォルトの名無しさん
2010/02/25(木) 04:19:38どうせ1個とか2個しか使わない上に単純な処理なんだったら、そのQLabelを作るクラスにeventFilter定義する方法もあるよね。
そしたらQLabelのサブクラス作らなくてすむけど、QLabelからシグナル出すって目的は果たせない。
eventFilterもってるクラスでスロット直接呼び出すか、そのクラスのシグナルを発生するかだな。
0467デフォルトの名無しさん
2010/02/25(木) 12:52:29簡単にツールバーがデザインできるのは便利だど思うんだけど、ツールバーにアイコン以外
(例えばドロップダウンリスト)を配置したい場合はQt Creatorでは無理な話ですか?
0468デフォルトの名無しさん
2010/02/25(木) 13:08:080469デフォルトの名無しさん
2010/02/25(木) 15:20:090470デフォルトの名無しさん
2010/02/25(木) 16:09:34でコマンドラインオプションを取得するとき
オプションの中に「%」が含まれていると
args[1] にうまくデータが入りません
「%0D」だと「1267081114D」という文字列になってしまいます
「%%0D」とか「\%0D」とかを試しても駄目でした
なにが間違っているのでしょうか?
WindowsVistaで使って居ます
0471デフォルトの名無しさん
2010/02/25(木) 16:28:120472デフォルトの名無しさん
2010/02/25(木) 18:55:58Qt creator 1.3.1に上げたらhelpがうまく使えなくなった。
検索キーワード入力して、項目の候補が出てくるんだけど、
それクリックしても中身が出てこない。
使い方変わったのかな?
0473デフォルトの名無しさん
2010/02/25(木) 19:12:54大丈夫だと思うんだけど...
出てこなければ、[ツール]メニューの[オプション]⇒{ヘルプ}⇒[ドキュメント]に
ちゃんと各種のヘルプファイル(.qch)が登録されてるかどうか確認してみて。
登録されてなければ、登録しなおせば大丈夫なはず。
0474デフォルトの名無しさん
2010/02/25(木) 19:33:52[ツール]メニューの[オプション]⇒{ヘルプ}⇒[ドキュメント]には
各ヘルプファイルが表示されていましたが(既に存在しない古いモノもありました??)
一度全部消してもう一度全て追加し直した所、表示されるようになりました。
どうもありがとうございました。助かりました。
0475デフォルトの名無しさん
2010/02/25(木) 19:49:42WindowsならAppData以下のフォルダに設定ファイル残ってるからね
0476デフォルトの名無しさん
2010/02/25(木) 20:52:01ワードパッドのフォント選択みたいなことができないかってこと?
今Creatorさわってみたけど多分無理
0477デフォルトの名無しさん
2010/02/26(金) 03:00:36たとえば
connect(sender, SIGNAL(signal), receiver, SLOT(slot));
の"sender"や"receiver"はポインタである必要がある。
Qtの内部がどうなっているのか知らないから何とも言えないけど
なんでわざわざポインタで渡すの?
普通にクラスオブジェクトを渡してもいいじゃない。
0478デフォルトの名無しさん
2010/02/26(金) 03:08:06ポインタじゃなくて参照って話ならわからんでもないが
0479デフォルトの名無しさん
2010/02/26(金) 03:13:27参照渡しでもいいよね。
でもC++ベースの言語であるQtでなぜにあえてポインタ渡し?
0480デフォルトの名無しさん
2010/02/26(金) 03:15:180481デフォルトの名無しさん
2010/02/26(金) 03:25:58ttp://wisdom.sakura.ne.jp/programming/cpp/cpp37.html
0482デフォルトの名無しさん
2010/02/26(金) 03:33:290483デフォルトの名無しさん
2010/02/26(金) 05:43:39まあNULLを渡したい時との、整合性とかじゃね?
0484デフォルトの名無しさん
2010/02/26(金) 05:55:01いちいち*とか付けないでそのまま渡せるようにしただけじゃないのか
0485デフォルトの名無しさん
2010/02/26(金) 06:05:23thisの型は参照ではなくポインタだし、new演算子もポインタを返すし、他の言語ならあるはずのnull参照も存在しない
C++の参照渡しは、スタック上のオブジェクトや右辺値をまるで値渡しみたいに渡せて便利!っていう程度のもの
だからnewしたポインタに逆参照かけて参照渡しするような、むしろ面倒になるケースで使っても意味がない
あと値渡しは基本型に対して使うのが一般的。コンパイラ依存だけどレジスタ渡しになってお得だから
オブジェクトを値渡しするとすんごいコピーしちゃう。VM系言語で言うと毎回ディープコピーして渡す勢い
ということで、ポインタ渡し/参照渡し/値渡しの三択なら、誰が書いてもポインタ渡しを選ぶことになるかと
でもなんでスマートポインタ渡しにしないんだよって話なら俄然わかるよ
0486デフォルトの名無しさん
2010/02/26(金) 06:27:12スマポ渡しにすると、普通は困らないだろうが、
速度を極限まで追求したいときには困るからとか?
過去との互換性かなそれとも。
0487デフォルトの名無しさん
2010/02/26(金) 07:21:560488デフォルトの名無しさん
2010/02/26(金) 07:23:42それだ
0489デフォルトの名無しさん
2010/02/26(金) 08:58:32すべての人がすべての用途に使うスマートポインタがC++にあれば良いけど、
無いから一番汎用的なポインタは生ポインタ
0490デフォルトの名無しさん
2010/02/26(金) 09:33:31connect(&*w, SIGNAL(...
0491デフォルトの名無しさん
2010/02/26(金) 13:37:300492デフォルトの名無しさん
2010/02/26(金) 15:00:230493デフォルトの名無しさん
2010/02/26(金) 15:01:47書き途中で投稿してしまいました。
QListViewの行にそれぞれ別の文字色を割り当てるにはどうのように
すればできますか?
0494デフォルトの名無しさん
2010/02/26(金) 15:12:09学生の俺に4k円はデカい
0495デフォルトの名無しさん
2010/02/26(金) 18:57:28#ifdef XXX
// for Windows
#else
// other( mac or other unix)
#endif
とかやりたいのですが、Qtの場合 XXXの部分で使える
OS毎に#define された定義って何かあるのでしょうか?
0496デフォルトの名無しさん
2010/02/26(金) 19:01:010497デフォルトの名無しさん
2010/02/26(金) 19:06:16できない
0498デフォルトの名無しさん
2010/02/26(金) 20:08:02英語が読めれば全く同じ内容の文書がネットでタダで入手出来るんだが・・・
0499デフォルトの名無しさん
2010/02/26(金) 20:12:190501デフォルトの名無しさん
2010/02/26(金) 20:22:46QListWidgetならできるのにQListViewではできないんですか?
0502デフォルトの名無しさん
2010/02/26(金) 20:26:170503デフォルトの名無しさん
2010/02/26(金) 20:26:44英語が読めたとしても、
日本語の書籍がたった4000円で買えるなら、
俺は払うぜ。
4000円だろ?俺も学生だけど、日本に生まれ育っていると
やっぱり日本語の方が絶対読みやすい。
0504デフォルトの名無しさん
2010/02/26(金) 20:28:54サンプルあさくってみ。
やっている奴があったはず。
0505デフォルトの名無しさん
2010/02/26(金) 20:51:36ありがとうございます。
サンプルについてもう少しヒントをください。
0506デフォルトの名無しさん
2010/02/26(金) 21:13:56Qtで作ったソフトがすごいブックマークされていたので貼り
ソースも公開されてる
0507デフォルトの名無しさん
2010/02/26(金) 21:54:55QStandardItem::setBackground()
0508507
2010/02/26(金) 21:57:16setForeground()
0509デフォルトの名無しさん
2010/02/26(金) 22:58:05できました。
本当にありがとうございます。
0510デフォルトの名無しさん
2010/02/27(土) 07:41:03いまいちよくわからんな
0511デフォルトの名無しさん
2010/02/27(土) 12:37:02コレ早く正式版出ないかな
0512デフォルトの名無しさん
2010/02/27(土) 12:57:55{
Q_OBJECT
signals:
void valueChanged(int);
public slots:
void display(int);
};
> コンパイル時には,signalsはprotectedに,slotsは空にそれぞれ置換えられます。
http://gihyo.jp/dev/feature/01/qt/0002?page=2
signals: はそれでいいとして、public slots: は slots: → public: に置き換えるようにすれば
slots:
void display(int);
と記述を簡易化できない?
0513デフォルトの名無しさん
2010/02/27(土) 13:06:10protected slots:
private slots:
ってのがあるんじゃね。
あと、可読性が悪くなるじゃん。
0514513
2010/02/27(土) 13:08:14publicって一言も記述していないのに
以下パブリックになっちゃったら可読性が微妙ってことじゃない?
あとは過去との互換性。
0515デフォルトの名無しさん
2010/02/27(土) 13:52:41Qt Designer にしかできないことってあるの?
0516デフォルトの名無しさん
2010/02/27(土) 13:54:560517デフォルトの名無しさん
2010/02/27(土) 14:17:06Qt Creator は Qt Designer のラッパ的なものでしょ?
0518デフォルトの名無しさん
2010/02/27(土) 14:18:100519デフォルトの名無しさん
2010/02/27(土) 14:29:12>>496 にも書かれている他には、
Q_OS_WIN32 とか Q_OS_MAC がある。
関係ないけど、コンパイラごとに条件分けするにはQ_CC_MSVCなどが使える。
↓で、Q_WS_* Q_OS_* Q_CC_*を参照
http://qt.nokia.com/doc/4.6/qtglobal.html
0520デフォルトの名無しさん
2010/02/27(土) 18:29:48MainWindowフォーム上にQWidgetを貼って、これを格上げしたいんですが
格上げするクラスとして
ファイル>新規作成で、Qtデザインフォームクラスを選ぶとuiファイルも作成されて
しまいますし、
cppにQPainter painter(this)を書くと
variable 'QPainter painter' has initializer but incomplete typeとなってしまいます。
C++クラスを選び、基底クラスにQWidgetを選ぶと、QWidgetを継承したhとcppが
作成されますが、コンストラクタの引数にQWidget *parent=0が無いのでこちらで書き足さないと
ダメみたいですが、
格上げ用のクラスファイルの作り方はどれが正解でしょうか?
0521デフォルトの名無しさん
2010/02/27(土) 19:40:25後者。引数は特に付け足さなくてもいい。
0522520
2010/02/27(土) 22:23:34ありがとございます。
でも、引数なしにすると
no matching function for call
のエラーになってしまいます。
0523デフォルトの名無しさん
2010/02/28(日) 01:25:120524522
2010/02/28(日) 12:00:58no matching function for call to'Drawing::Drawing(QWidget*&)'
となり
void setupUi8QMainWindow *MainWindow)
{
.
.
widget = new Drawing(centralWidget);
のところが指摘されます。
なにか、やり方がまずい?
0525デフォルトの名無しさん
2010/02/28(日) 12:29:15そもそもどういう時に使うの?
0526デフォルトの名無しさん
2010/02/28(日) 12:41:56PyQtを使っています。
QTDesignerで作成したuiファイルから取得したwindowを
別のWindowとして表示したいのですが
menu = uic.loadUi('ui_test.ui', self)
menu.show()
などで行うと、一瞬別Windowが描画されて消えてしまいます。。
足りない処理や、別手法などがあればアドバイスお願いいたします。
0527526
2010/02/28(日) 14:02:21親のクラスのインスタンスにしたら描画の問題が解決しました。
0528522デフォルトの名無しさん
2010/02/28(日) 15:20:33MainwindowにQWidgetなどを貼って、図形などを描くための
painterEvent関数を追加するときとか
0529デフォルトの名無しさん
2010/02/28(日) 16:20:54自分で作ったウィジェットをUIに埋め込みたいとき。
0530デフォルトの名無しさん
2010/02/28(日) 16:26:42うーん、じゃあ面倒くさいけど付け足すしかないみたいだねぇ。
0531デフォルトの名無しさん
2010/02/28(日) 16:57:130533デフォルトの名無しさん
2010/03/01(月) 04:10:560534デフォルトの名無しさん
2010/03/01(月) 09:18:41おk
0535デフォルトの名無しさん
2010/03/01(月) 09:25:480536デフォルトの名無しさん
2010/03/01(月) 09:30:210537デフォルトの名無しさん
2010/03/01(月) 09:35:12どこ行けばあるの?
0538デフォルトの名無しさん
2010/03/01(月) 09:49:580539538
2010/03/01(月) 10:01:010540デフォルトの名無しさん
2010/03/01(月) 11:14:24WPFもイマイチ盛り上がってないみたいだし
0541デフォルトの名無しさん
2010/03/01(月) 11:47:48QMLってWPFみたいなもんだっけ?
0542デフォルトの名無しさん
2010/03/01(月) 16:39:26C++-GUI-Programming-with-Qt-4-1st-ed.pdf
で検索
0543デフォルトの名無しさん
2010/03/01(月) 16:41:26公式の配布場所は?
0544デフォルトの名無しさん
2010/03/01(月) 17:42:070545デフォルトの名無しさん
2010/03/02(火) 23:23:37ひたすらアルゴリズムを説明しているような
本当にオライリー本なのか?と疑うような
0546デフォルトの名無しさん
2010/03/03(水) 00:03:54http://books.google.co.jp/books?id=DyGwIpisoG0C&printsec=frontcover&source=gbs_navlinks_s
0547デフォルトの名無しさん
2010/03/03(水) 00:44:00検索してみたけど、bittorrentや中国・韓国のサイトしかないような。
(1つだけ.frのもあるが。)
・・・これって合法な代物なの?
えらそうに英語版PDFがあるっていうから、
てっきり合法なんだと思ってるんだけど。
0548デフォルトの名無しさん
2010/03/03(水) 02:00:23#include <iostream>
using namespace std;
int main()
{
cout << "test" << endl;
}
これでやってみても
xxx.exe を起動中...
xxx.exe はコード 0 で終了しました
で終わっちゃう
Linux版だとちゃんと表示されるんだけどな・・・
0549デフォルトの名無しさん
2010/03/03(水) 02:08:09CONFIG += console
0550548
2010/03/03(水) 02:17:24ありがとう
でも、それってコマンドプロンプト起動してそこに実行結果表示するやつだよね?
そうじゃなくてQt Creatorのアプリケーション出力に出力したいんだよ
0551デフォルトの名無しさん
2010/03/03(水) 02:32:52お雷リーってそういう本だろ
0552デフォルトの名無しさん
2010/03/03(水) 02:44:31本は白黒なのにPDFの方はカラーだよね
それに(日本語の)本の方は誤字脱字だらけで
ソースもバグだらけだけど
PDFの方は問題ないんだよねw
0553デフォルトの名無しさん
2010/03/03(水) 02:46:56qDebug()
0554デフォルトの名無しさん
2010/03/03(水) 03:24:33WindowsのGUIアプリにはprintfとかcoutの出力先が基本的に存在しない
デバッガのコンソールに出力したい場合はAPIのOutputDebugString()というのを使う
Qt使ってる場合はqDebug()でおk
0555デフォルトの名無しさん
2010/03/03(水) 09:02:130556デフォルトの名無しさん
2010/03/03(水) 09:38:58オライリー「入門 Qt4プログラミング」の付録A 日本語関連FAQ 参照
0557デフォルトの名無しさん
2010/03/03(水) 11:52:42ui->widget->メンバー関数 で使ってたものを
外のQListWidgetやQpushButtonなどと水平レイアウトでくくりと
QWidget has not menber name メンバー関数になってしまいます。
なぜでしょうか
0558デフォルトの名無しさん
2010/03/03(水) 17:50:46あれ間違ってるんだよなー
0559デフォルトの名無しさん
2010/03/03(水) 19:03:440560デフォルトの名無しさん
2010/03/03(水) 23:14:30ありがとう
0561デフォルトの名無しさん
2010/03/04(木) 12:29:12デバッガの動きが極端に遅い。デバッグヘルパOFFにしてみたけど大差なし。
ステップオーバーに数十秒も掛かったりするんだけど,こんなもんなの?
まぁ,マシンは数年前のLet's Noteなんでパフォーマンスが望めないのはわかってるけど,
いくらなんでも遅すぎ。
デバッグウィンドウに赤文字で意味不明のワーニングが出たりしてるけど,そのせいなのかな。
MinGW gccでgdb使った場合も遅いんでしょうか?
0562デフォルトの名無しさん
2010/03/04(木) 14:40:22ざっと探したが見あたらない…
0563デフォルトの名無しさん
2010/03/04(木) 16:25:41メインウィンドの伸縮に合わせて延びちじみさせたいんですが
テキストエディタのプロパティ設定では出来ないんでしょうか。
0564デフォルトの名無しさん
2010/03/04(木) 16:35:34出来ないです。
0565デフォルトの名無しさん
2010/03/04(木) 16:48:270566デフォルトの名無しさん
2010/03/04(木) 17:40:32毎回、そのsizePolicyとかminimumSizeで悩む。
で、毎度毎度試行錯誤して決めてる。
ちゃんと理解してないからだと思うんだけど、、
どこかに良い資料とかないですかねえ。。
0567デフォルトの名無しさん
2010/03/04(木) 19:05:45http://www.informit.com/articles/index.aspx?st=60233&page=2
ここは、合法だろう。多分本の内容全部ある。
0568561
2010/03/04(木) 20:30:25自己レスです。自作のDLLの更新とインポートライブラリやヘッダの更新が合ってなくて、
関数のエントリポイントがずれたりしていたのが原因だったようです。
さすがにステップ実行に数十秒もかかるようなことはなくなりましたが、やはり最初の
ブレークポイントで止まるまでは相当時間が掛かりますね。
0569563
2010/03/04(木) 22:15:42MainWindowにresizeEventを書いて、ここで
ui->TextEdit->setMaximumSize で出来そうな気がしますが
setMaximumWidth(sizeHint().width()); としたら、TextEditのminimumSizeに
なってしまいました。
sizeHintは最適なサイズを返す関数だと思うんですが、
0570デフォルトの名無しさん
2010/03/04(木) 23:00:26心配ならこの中から探して落とせ
ttp://qt.nokia.com/developer/learning/qt-essentials-curriculum-block
0571デフォルトの名無しさん
2010/03/04(木) 23:19:42たとえば Designer で QWidget に QListView と QTextEdit を QHBoxLayout を使って配置する場合、
QTextEdit の sizePolicy を Expanding に
QListView の sizePolicy(Horizontal) を Preferred や Fixed にすると
プレビューでリサイズした場合に QListView は固定サイズで QTextEdit だけ
大きくなっていくけど、これは違う?
( Preferred の場合は sizeHint で指定したサイズまでは QListView もリサイズするけど )
0572569
2010/03/05(金) 20:01:42OS:Ubuntu Qt:4.5.2 Creator:1.2.1
どこが違うのか、うまく行きません
QListViewをFixedの QTextEditをExpandingに設定し 両方を選択
右クリックからレイアウト>水平に配置
この段階で、ウィンドウの大きさに関係なく、QListViewとQTextEditがウィンドウの
中央あたりで正方形に近い形で横に二つ並んで状態になる。
手動で大きさを調整しても勝手に変わってしまう
オブジェクトインスペクタではQHBoxLayoutの下にQListView QTextEditがある
この状態になるとQListViewもQTextEditもサイズ変更できなくなる
で、実行してウィンドウを伸縮しても、変化しない
と言う状態です。
Linux版のせい?
0573デフォルトの名無しさん
2010/03/05(金) 20:38:43Linux 版は関係ありません。これらの説明をじっくり読みましょう。
Qt のレイアウトマネージメントは、他のものに比べて分かり易いです。
Qt 4.5.3: Layout Classes
http://doc.trolltech.com/4.5/layout.html
InformIT: C++ GUI Programming with Qt4: Layout Management > Laying Out Widgets on a Form
http://www.informit.com/articles/article.aspx?p=1405543
0574デフォルトの名無しさん
2010/03/05(金) 21:21:33>QListViewをFixedの QTextEditをExpandingに設定し 両方を選択
>右クリックからレイアウト>水平に配置
「両方を選択」しないで「外のQWidgetを選択」してレイアウトを指定。
0576デフォルトの名無しさん
2010/03/06(土) 00:33:520577デフォルトの名無しさん
2010/03/06(土) 00:40:320578576
2010/03/06(土) 00:58:16プログラム実行時にXMLで記述された内容に従ってGUI表示ってできますか?
つまりXMLを編集してプログラム実行時に表示内容を変更できないかと。
0579576
2010/03/06(土) 01:09:090580デフォルトの名無しさん
2010/03/06(土) 01:33:050582デフォルトの名無しさん
2010/03/06(土) 13:11:34現実的じゃない
全ての分岐を書くくらいならQtScript用のコード生成したほうが楽
0583sage
2010/03/06(土) 15:09:41QPushButtonにはsetShortcutで簡単にセットできるのですが、
自作のWidgetにショートカットでクリックイベントを渡す事ができません。
keyPressEventなどで地道に全部書くしかないんでしょうか・・
0584575
2010/03/06(土) 15:18:11左右ペイン風のフォームを作り、右にTextEditをExpnading、左にLineEdit、PushButtonなど
を垂直レイアウトした場合うまく動作するんですが
左にListWidgetを加え場合、左レイアウトの幅がListWidgetのデフォルト幅の256
になってしまい、思うようなレイアウトになりません。
0585デフォルトの名無しさん
2010/03/06(土) 15:44:12QUiLoader
Qt Designer の .ui ファイルで出来ることは限られているから
どのくらいやりたいことと合うのかは知らんが。
まだ開発中だし、XMLでもないが今後なら QML が入ってくるから
やれることも広がってくる。
0586デフォルトの名無しさん
2010/03/06(土) 15:48:37QAction に setShortcut して、その triggered() シグナルを
自作の Widget のスロットに connect() すれば出来ると思う。
0587デフォルトの名無しさん
2010/03/06(土) 23:17:42無変換
カタカナひらがな
このキーはeventでなんの反応も無いのは仕様?
反応させる方法ある?
0588デフォルトの名無しさん
2010/03/07(日) 00:07:59IMEが横取りしないようにしなきゃだめなのか
0589デフォルトの名無しさん
2010/03/07(日) 16:17:330590デフォルトの名無しさん
2010/03/07(日) 17:18:39まさか、できない?
0591デフォルトの名無しさん
2010/03/07(日) 18:14:12できない。
0592デフォルトの名無しさん
2010/03/07(日) 21:06:59│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘ おっぱい!おっぱい!
0593デフォルトの名無しさん
2010/03/07(日) 22:15:09QProcess
0594デフォルトの名無しさん
2010/03/07(日) 23:37:56touchしろってこと?
0595583
2010/03/08(月) 16:27:24同じKeyを二つの関数にconnectすると
QAction::eventFilter: Ambiguous shortcut overload: x
とかになってしまうのですが、
動作させる方法はありますでしょうか?
0596デフォルトの名無しさん
2010/03/09(火) 02:14:40同じ Widget に同じキーシーケンスの action があると問題があるみたいだな。
QWidget::addAction() でショートカットを Widget と結びつけてる?
それぞれのアクションが別の Widget にあればフォーカスに応じて
適切に使用される action が切り替わるようだけど。
0597デフォルトの名無しさん
2010/03/09(火) 09:39:46自作しないとだめ?
0598デフォルトの名無しさん
2010/03/09(火) 10:02:280599デフォルトの名無しさん
2010/03/09(火) 12:56:37これの意味が分からんのだけど、一旦開発したソフトをLGPLとして公開して
しまったらもう商用版に移行できないってことなの?
0600デフォルトの名無しさん
2010/03/09(火) 13:02:57確か代理店にもらったライセンスの説明資料に,プロトタイプをLGPL版で開発した後に、
本番ソフトを商用版で開発するのもダメって書いてあったよ。
公開/非公開は関係ないらしい(バレるかどうかは別として)。
0601デフォルトの名無しさん
2010/03/09(火) 13:11:10最後の最後で商用版を1ライセンスだけ買ってリリースするようなことはするなってことなんだろう。
商用ライセンスでリリースするならきちんとライセンス料金を払って開発しろと。
0602デフォルトの名無しさん
2010/03/09(火) 13:21:57そーなのかー。なんか変な制限だなぁ。
最初LGPLで作ってうまくいったら商用版ていう流れは普通に考えられる
ケースだと思うんだけど。特に個人レベルの場合は。
0603デフォルトの名無しさん
2010/03/09(火) 13:40:37商用目的なら最初から商用版使えってことだから
別に変な制限じゃないと思うけど。
LGPL版はお試し版じゃないんだから。
開発目的が商用なのかそうじゃないのかを事前に
判断できないケースはそうそうないでしょ。
0604デフォルトの名無しさん
2010/03/09(火) 13:50:34納得いくかどうかは別として理解は出来る。
LGPL 版使って商用アプリを出すことも出来るから
わざわざ商用ライセンスを買うこともないと思うが。
0605デフォルトの名無しさん
2010/03/09(火) 15:49:11Qt Creatorを使って".ui"ファイルをポトペタ修正していますが、
menuToolsに"Setup"と文字列設定すると実行時にそのメニューが消えてしまいます。
"Setup"でなくて、先頭にスペースを入れて" Setup"としたり、
末尾を切って"Setu"とかすると、メニューが表示されます。
さらにQt CreatorをMac OSで使ってる場合のみで、Windowsでは発生しないみたいです。
原因を知りたいですし、その次には、どうやって対処したら良いのでしょう?
0606デフォルトの名無しさん
2010/03/09(火) 15:49:37商用版でもLGPLになるのか
0607デフォルトの名無しさん
2010/03/09(火) 16:05:21メニューの QAction::MenuRole がデフォルトでは QAction::TextHeuristicRole になっているため。
Mac OS X のメニューのルールに従ってそのアプリケーションの「環境設定」メニューに割り振られるから。
メニューバーのアプリケーションメニューのところに組み込まれているはず。
http://qt.nokia.com/doc/4.6/qaction.html#MenuRole-enum
移動されたくなければ NoRole に設定すればいい。 Qt Designer でも設定できる。
0609デフォルトの名無しさん
2010/03/09(火) 16:51:42Qt Creatorを使って".ui"修正でmenuToolsを追加しましたが、
Qt Creatorでのイベントハンドラの追加方法が分かりません。
Qtのシグナルとスロットは勉強しましたし、
ソースコードでメニューをnewしてイベントと関数を結び付けるソースコードも勉強しましたが、
いざ、Qt Creatorでどうすれば良いのか。。。
ダブルクリックでイベントハンドラが開くのでなく、
シグナル&スロットのペインで、Go to slotメニューを実行して、
Go to slotダイアログを開くってことであってますか?
その先ダイアログの中身が良く分からないですけど。
このあたり、なんでウェブサイトやヘルプに一連のチュートリアルが無いのでしょう?
ソースコードでのチュートリアルは一杯見つかりますが、っていうかそっちばっか検索にひっかかってメンドウ。
0610デフォルトの名無しさん
2010/03/09(火) 17:09:04「Go to slot」でOK。
* Go to slot を選んでダイアログを表示する。
* ハンドラを呼び出すときのシグナルを選択する。
QPushButton なら clicked() だろうし、アクション(QAction) なら triggered() が普通。
* オブジェクトがシグナルを発生した場合に呼び出されるスロットが作成されるので処理を書く。
上記の流れだと connect() が呼び出されてはないが、 Ui クラスの中で connectSlotsByName() が
呼び出されているため、自分で別途 connect() する必要はない。
0611609
2010/03/09(火) 17:25:16menuToolsだと、clicked()が無いので、戸惑いました。
仕方なくとりあえず、triggered()がデフォだったので、それでイベントハンドラ作成されて、メッセージボックス表示させてみましたw
0612デフォルトの名無しさん
2010/03/09(火) 19:31:51元々LGPLで一部BSDライセンス。PhononとCLuceneもLGPL。
OpenSSLを有効にしていて、OpenSSLライブラリを配布しようとすると
ライセンスと輸出入制約がある。
0613デフォルトの名無しさん
2010/03/09(火) 21:14:194.6 からは JavaScriptCore ベースに変わった影響で QtScript モジュールも LGPL になってる。
0614デフォルトの名無しさん
2010/03/09(火) 22:56:59quitボタンが表示される簡単なプログラムを組んだあと
> qmake-qt4 -project
と実行すると
QFileInfo::absolutePath: Constructed with empty filename
というwarningが表示されます。プロジェクトファイル自体は問題なく生成されそのあとqmake-qt4; make; で無事
実行ファイルも生成できたのですが、このwarningが意味しているのはどういうことでしょうか?
基本的なプログラムにも関わらずwarningが表示されるのはどうも気になります。
↓参考までにquitプログラムの内容です。
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton *button = new QPushButton("Quit");
QObject::connect(button, SIGNAL(clicked()),
&app, SLOT(quit()));
button->show();
return app.exec();
}
0615デフォルトの名無しさん
2010/03/10(水) 00:02:490616デフォルトの名無しさん
2010/03/10(水) 00:14:48え〜と・・・、何が足りなかったんでしょう・・・
0617デフォルトの名無しさん
2010/03/10(水) 00:16:11│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘ おっぱい!おっぱい!
0618デフォルトの名無しさん
2010/03/10(水) 17:26:22は出来ましたけど、
>throw std::excepton("error!");
はコンパイル通りませんb
普通にthrowでエラー文字列投げて、
アプリケーションのエラーハンドラで一括キャッチしたいのですが、
Qt Creatorではどうthrow/catchを書けば良いですか?
0619デフォルトの名無しさん
2010/03/10(水) 17:51:060620デフォルトの名無しさん
2010/03/10(水) 17:54:060621618
2010/03/10(水) 18:04:45>throw std::runtime_error
が無い?????
QtってWindozの場合、実質コンパイラはgccですよね?
無い筈ないよー。
0622618
2010/03/10(水) 18:10:16>throw 1;
>throw "moji";
でしたね。
C++ Builderみたく、
>thow Exception("aaa");
としたい(ま、標準じゃないエラークラスのとこはいまいちですが)のですが、
Qtな方々は、
ふつー何をthrowして、一括catchはどうやるのが一般的でしょう?
0623618
2010/03/10(水) 18:17:10621の
>throw std::runtime_error("moji");
の問題は、
>#include <stdexcept>
で解決しました。
0624デフォルトの名無しさん
2010/03/10(水) 18:43:350625デフォルトの名無しさん
2010/03/10(水) 20:58:04QLineEdit上の日本語入力がめちゃくちゃ重いです。( QTextEdit上では普通に入力できます )
QtDemoでもなります。
Item Views -> Simple Widget Mapperのデモが分かりやすいです。
他の方もこうなりますか?
0626デフォルトの名無しさん
2010/03/10(水) 21:17:460627デフォルトの名無しさん
2010/03/10(水) 21:19:38main{
printf("gazou.bmp");
}
としてもエラーになります。
0628デフォルトの名無しさん
2010/03/10(水) 21:23:30自分も同じ環境だけど同様です。
0629デフォルトの名無しさん
2010/03/10(水) 21:57:26QtCreatorでもよくおかしくなるし、QTextEditでもいきなり落ちたりするから怖い
0630デフォルトの名無しさん
2010/03/10(水) 22:06:570631デフォルトの名無しさん
2010/03/11(木) 02:07:100632デフォルトの名無しさん
2010/03/11(木) 02:11:370633デフォルトの名無しさん
2010/03/11(木) 03:33:04Qt4 Projectsから作ると環境変数のQTDIRが自動設定されるようなのですが、
これがいったいどこに設定されるのか分かる人いますか?
プロジェクトのプロパティとか見てもコマンドラインで展開されているのは
確認できるんですが、設定箇所を見つけることができません。
0634デフォルトの名無しさん
2010/03/11(木) 05:29:54QImeEvent関連の処理が甘いんだろうか?
Qtランタイムごとプロファイルとって見れば一発だけど、俺msvc用のプロファイラもって無いんだよな…
0636デフォルトの名無しさん
2010/03/11(木) 11:29:540637デフォルトの名無しさん
2010/03/11(木) 11:52:320638デフォルトの名無しさん
2010/03/11(木) 12:25:36大きな釣り針?
0639デフォルトの名無しさん
2010/03/11(木) 12:45:46VS6(でコンパイルしたQt)だとIME遅くならないけど,2008だと遅くなるってこと?
話がよく見えない。
0640デフォルトの名無しさん
2010/03/11(木) 13:03:37qt-win-opensource-4.6.2-mingw.exe
で同じようにLineEditだけ遅いのを確認
0641デフォルトの名無しさん
2010/03/11(木) 13:23:550642デフォルトの名無しさん
2010/03/11(木) 18:23:13アプリケーションクラスにOnExceptionっていうthrowされたものを一括で受けるイベントハンドラがありますが、
Qtには無いですか?
>Qtで独自実装しようにも、
>int main(int argc, char *argv[])
>{
> QApplication a(argc, argv);
> My_Win w;
> w.show();
> return a.exec();
>}
だと、一括catchできませんね。
「My_Win w;」の中に一括イベントハンドラがあるかないか。
0643デフォルトの名無しさん
2010/03/11(木) 19:14:40>
>
>
>
>
>
>どゆこと?
0644634
2010/03/11(木) 19:17:294.5.3の間違いですた。。。
http://qt-msvc-installer.googlecode.com/files/qt-win32-opensource-4.5.3-vs2008.exe
0645デフォルトの名無しさん
2010/03/11(木) 19:22:470646デフォルトの名無しさん
2010/03/11(木) 20:42:47Ruby + Qt4で作ったアプリを*.exeに固められる?
まだ、Rubyの文法もわからん
0647デフォルトの名無しさん
2010/03/11(木) 20:46:200648デフォルトの名無しさん
2010/03/11(木) 21:02:47thx
0649デフォルトの名無しさん
2010/03/11(木) 22:41:440650デフォルトの名無しさん
2010/03/11(木) 22:46:40おまえにQtは無理w
0651デフォルトの名無しさん
2010/03/12(金) 01:38:380652デフォルトの名無しさん
2010/03/12(金) 02:10:370653642
2010/03/12(金) 08:50:21>a.exec();
を囲んで一括catchして、
そのエラー処理でもう一回「a.exec();」するってことは出来ないですよね?
0654デフォルトの名無しさん
2010/03/12(金) 09:42:31母国語が通じるサイトで質問し直した方が良いよ。
0655デフォルトの名無しさん
2010/03/12(金) 10:59:51Qtは例外をthrowしないんじゃなかったけ?
実行時に何かエラーがあると,assertでエラーメッセージのダイアログが出る。
それとも自分でthrowしたものを一括でcatchしたいと言う話?
0656642
2010/03/12(金) 11:32:10こちらです。
0657デフォルトの名無しさん
2010/03/12(金) 12:17:100658デフォルトの名無しさん
2010/03/12(金) 12:42:02> >a.exec();
>
> を囲んで一括catchして、
> そのエラー処理でもう一回「a.exec();」するってことは出来ないですよね?
何がしたいんだかわからん。何でcatch節の中でもう一回a.exec()するの?
俺はC++ Builder使いだけど,OnExceptionなんて使ったことないよ。
要するにどこでも catch されなかった例外をつかまえて処理するんでしょ。
ただの外部例外防止の意味だけのようにしか思えん。
どこでもcatchされない例外をthrowするようなコード書くほうが悪いと思うが。
普通に try 〜 throw 〜 catch で何か都合が悪いの?
0659デフォルトの名無しさん
2010/03/12(金) 13:05:300660デフォルトの名無しさん
2010/03/12(金) 13:10:110661642
2010/03/12(金) 13:11:35その通りでつ。
C++ Builderだと、throw してcatchされなくてエラーメッセージボックスが出るだけですよ。
その動作を変えたい場合は、アプリケーションオブジェクトのイベントハンドラで先に例外catchできまつ。
0662642
2010/03/12(金) 13:18:03WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
try
{
Application->Initialize();
Application->MainFormOnTaskBar = true;
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
0663デフォルトの名無しさん
2010/03/12(金) 20:54:120664デフォルトの名無しさん
2010/03/13(土) 00:50:21オプションを弄ろうとしただけで落ちたwww
0665デフォルトの名無しさん
2010/03/13(土) 00:57:120666デフォルトの名無しさん
2010/03/13(土) 11:59:12やっぱコピペですか?
0667デフォルトの名無しさん
2010/03/13(土) 12:41:11それ間違ってるよ
その条件だと全てのソースを公開する必要がある
LGPLでソース非公開で良いのは、動的リンク且つDLLを同梱しない場合に限る
0668デフォルトの名無しさん
2010/03/13(土) 13:15:04なんて制限書いてあったっけ?
0669デフォルトの名無しさん
2010/03/13(土) 13:25:56OSはFreeBSDで、既にportsでqt4やqmakeをインストールしてあります。
Qt Creatorの qmake-qt4 -project まではうまく通ったのですが、次のmakeの段階で
/usr/local/bin/lrelease:No such file or directory
*** Error code 1
というエラーコードを吐いて終了してしまうバグに見舞われています。
確かに /usr/local/bin/lrelease というファイルは存在せず、代わりに
/usr/local/bin/lrelease-qt4 というファイルならありました。
そういえば qmake という基本的なファイルも無く、代わりに qmake-qt4 というファイルで
プロジェクトファイルを生成していました。portsでインストールしたからでしょうか?
こういうエラーで詰んだ場合はどうすればいいでしょうか?
0670デフォルトの名無しさん
2010/03/13(土) 13:29:250671デフォルトの名無しさん
2010/03/13(土) 14:34:51それにしてもportsからインストールするとなぜ実行ファイルは
qmake
lrelease
でなく、
qmake-qt4
lrelease-qt4
なんでしょうか?
0672デフォルトの名無しさん
2010/03/13(土) 16:55:250673デフォルトの名無しさん
2010/03/13(土) 16:58:400674デフォルトの名無しさん
2010/03/13(土) 17:14:19お前の中ではな
0675デフォルトの名無しさん
2010/03/13(土) 19:50:540676デフォルトの名無しさん
2010/03/14(日) 06:57:100677デフォルトの名無しさん
2010/03/14(日) 08:10:060678デフォルトの名無しさん
2010/03/14(日) 15:48:05ttp://www.off-soft.net/ja/develop/qt/qt4.html
このページのやり方試してみましたがリンク時にnewとdeleteが既に定義済み
とか言われてエラーになってしまいます。
0679デフォルトの名無しさん
2010/03/14(日) 17:56:34C++用で充分にC++に対応できているメモリリークチェックツールで調べられます。
0680デフォルトの名無しさん
2010/03/14(日) 19:16:36今まではVCに標準で付いていたcrtdbg.hを使うやり方だったのですが、
それだとうまくいかないようだったので。
他にもそういうツールがあるのですね。調べてみます。
0681デフォルトの名無しさん
2010/03/14(日) 21:03:22http://qt.nokia.com/downloads-jp
から Qt SDK: 包括的な開発環境 をダウンロードし、セットアップしました。
Qt Craetor を起動すると、マウスクリックが1回しか効きません。
Qt Creator 以外の部分をクリックすると、1回だけマウスクリックが効きます。
これって回避方法があるのでしょうか?
0682デフォルトの名無しさん
2010/03/15(月) 01:09:460683デフォルトの名無しさん
2010/03/15(月) 07:54:04うちは大丈夫
0684デフォルトの名無しさん
2010/03/15(月) 11:34:14うまくぐぐれなくてorz
使用方法等のリンクあれば貼ってもらえないでしょうか?
0685デフォルトの名無しさん
2010/03/15(月) 11:59:33Doxygen
0686デフォルトの名無しさん
2010/03/15(月) 12:52:56ありがとうございます
0687デフォルトの名無しさん
2010/03/15(月) 13:12:390688デフォルトの名無しさん
2010/03/15(月) 15:13:17Qtライブラリのソースを求められたらどうすれば良いの?
0689デフォルトの名無しさん
2010/03/15(月) 15:18:50http://get.qt.nokia.com/qt/source/
0690デフォルトの名無しさん
2010/03/15(月) 15:35:50サンクス、このアドレス載せておけば大丈夫って事かな
0691デフォルトの名無しさん
2010/03/15(月) 15:37:23これかな?
つ ttp://qt.nokia.com/doc/4.6/qmake-variable-reference.html
0692デフォルトの名無しさん
2010/03/15(月) 15:39:35ありがとうございます
思ってたよりおおいな・・
0693デフォルトの名無しさん
2010/03/16(火) 12:48:070694デフォルトの名無しさん
2010/03/16(火) 19:09:500695デフォルトの名無しさん
2010/03/16(火) 19:19:14環境はどうしてます?
0696デフォルトの名無しさん
2010/03/16(火) 19:27:57connect(angle, SIGNAL('valueChanged(int)'), cannonField, SLOT('setAngle(int)'))
なんで、rubyなのにこんなこと出きるんだよ〜
0697デフォルトの名無しさん
2010/03/16(火) 21:35:220698デフォルトの名無しさん
2010/03/16(火) 21:42:37RubyのQtは、完成度低過ぎるので捨てました。
0699デフォルトの名無しさん
2010/03/16(火) 22:56:06self.foobtn.clicked.connect(foo_clicked)
みたいに、signalに . でアクセスできる。
0700デフォルトの名無しさん
2010/03/16(火) 23:07:12.netのC#に対するVBみたいなものなのかな?
0701デフォルトの名無しさん
2010/03/16(火) 23:11:570702693
2010/03/16(火) 23:12:17専用のIDEの有無ってデカいなと思いました
ところで、QMainWindowのセントラル・ウィジェットってどうやって作っていますか?
やっぱりQWidgetを継承して作った方がいいですかね
質問ばっかりでスマソ
0703デフォルトの名無しさん
2010/03/17(水) 01:28:12ちょっとしたのを簡単に書けて便利だよ。
特にGUI以外の部分がLLの方が圧倒的に楽に作れるときは。
けど、C++の関数ほぼそのままLLに持ち込んだだけのものがLLでも実用に耐えうるって、
相当使い勝手いいんだなぁと再認識させられる。
0704デフォルトの名無しさん
2010/03/17(水) 02:02:370705デフォルトの名無しさん
2010/03/17(水) 02:21:54http://pc12.2ch.net/test/read.cgi/tech/1267553581
0706デフォルトの名無しさん
2010/03/17(水) 02:34:07http://pc11.2ch.net/test/read.cgi/pcnews/1268749861/
4.7って何が大きく変わるの?
0707デフォルトの名無しさん
2010/03/17(水) 02:38:35よくわからんけど、そのQMLとやらでGUIの構築が楽になるんじゃない?
あとマルチメディア関連の機能が結構追加されてるみたいだな
0708デフォルトの名無しさん
2010/03/17(水) 03:28:09そうだね
mocのおかげでC++とは思えないほどのLLとの親和性がある
LLでプロトタイプを作って必要なところだけC++で置き換えとか構想出来る
0709デフォルトの名無しさん
2010/03/17(水) 03:42:44そういう使い方したいんだけど、PyQtで書いたクラスをC++から呼び出したり、
逆にC++で書いたクラスをPyQtから呼び出したりって、どうやるのが簡単?
0710デフォルトの名無しさん
2010/03/17(水) 04:27:040711デフォルトの名無しさん
2010/03/17(水) 06:08:510712デフォルトの名無しさん
2010/03/17(水) 08:48:15wxPython, PyQt, PyGTK 全部あって、全部よくメンテナンスされてるんだけど、
WindowsでのルックアンドフィールがWindowsネイティブに近い順に
PyQt > wxPython >>> PyGTK なんだよな。
RubyだとよくメンテされているGUIツールキットのバインディングってRubyCocoaくらい?
0713デフォルトの名無しさん
2010/03/17(水) 08:52:400714デフォルトの名無しさん
2010/03/17(水) 11:16:44ttp://qt-labs.jp
0715デフォルトの名無しさん
2010/03/17(水) 12:58:10そろそろ日本語リファレンス来るか
0716デフォルトの名無しさん
2010/03/17(水) 13:01:18中身が 1.3.81 だったぞ
0717デフォルトの名無しさん
2010/03/17(水) 13:56:30公式の釣りか
0718デフォルトの名無しさん
2010/03/17(水) 14:03:56たしかにw
ダウンロード間違えたかと思ってリンク見直したw
0719デフォルトの名無しさん
2010/03/17(水) 15:11:260720デフォルトの名無しさん
2010/03/17(水) 16:14:06思うのですが、その方法がよくわかりません。
どこかにその方法を説明してあるところはありますでしょうか?
0721デフォルトの名無しさん
2010/03/17(水) 16:18:240722720
2010/03/17(水) 16:32:38collect2: ld returned 1 exit status
となって ビルドが止まってしまいます。
どうしたらいいのでしょうか?
環境は Windows XP, Qt Creatot 1.3.1 です。
0723デフォルトの名無しさん
2010/03/17(水) 16:46:30パッケージも消してしまった(ディスクの容量枯渇w)ので具体的にはわからないけど,
ソースパッケージを解凍した中に,ビルド方法が書いてあるテキストファイルがない?
0724720
2010/03/17(水) 16:49:09====================
You need Qt 4.6 to build Qt Creator.
We recommend that you build Qt Creator not in the source directory, but in a separate directory.
To do that, use the following commands:
mkdir $BUILD_DIRECTORY
cd $BUILD_DIRECTORY
qmake $SOURCE_DIRECTORY/qtcreator.pro
make (or mingw32-make or nmake, depending on your platform)
と書いてあった。(続く)
0725720
2010/03/17(水) 16:51:52qmake $SOURCE_DIRECTORY/qtcreator.pro
を実行したら、$BUILD_DIRECTORY に Makefile ができた。
んで、mingw32-make を実行すると、エラーがいっぱい出た。
===
mingw32-make[4]: *** [debug/moc_multitask.o] Error 1
mingw32-make[4]: Leaving directory `d:/Qt/qt-creator-1.3.1-src/build_dir/src/lib
s/qtconcurrent'
mingw32-make[3]: *** [debug] Error 2
mingw32-make[3]: Leaving directory `d:/Qt/qt-creator-1.3.1-src/build_dir/src/lib
s/qtconcurrent'
mingw32-make[2]: *** [sub-qtconcurrent-make_default-ordered] Error 2
mingw32-make[2]: Leaving directory `d:/Qt/qt-creator-1.3.1-src/build_dir/src/lib
s'
mingw32-make[1]: *** [sub-libs-make_default-ordered] Error 2
mingw32-make[1]: Leaving directory `d:/Qt/qt-creator-1.3.1-src/build_dir/src'
mingw32-make: *** [sub-src-make_default-ordered] Error 2
0726デフォルトの名無しさん
2010/03/17(水) 16:58:36その箇所張られてもどうしようもないんだけど
0727デフォルトの名無しさん
2010/03/17(水) 17:01:43===
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -
DBUILD_QTCONCURRENT -DIDE_LIBRARY_BASENAME=\"lib\" -DWITH_TESTS -DQT_NO_CAST_TO_
ASCII -DQT_DLL -DQT_TESTLIB_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -
I'c:/Qt/2010.02.1/qt/include/QtCore' -I'c:/Qt/2010.02.1/qt/include/QtGui' -I'c:/
Qt/2010.02.1/qt/include/QtTest' -I'c:/Qt/2010.02.1/qt/include' -I'../../../../sr
c/libs' -I'd:/Qt/qt-creator-1.3.1-src/tools' -I'c:/Qt/2010.02.1/qt/include/Activ
eQt' -I'debug' -I'../../../../src/libs/qtconcurrent' -I'.' -I'c:/Qt/2010.02.1/qt
/mkspecs/default' -o debug/moc_multitask.o debug/moc_multitask.cpp
g++: CreateProcess: No such file or directory
===
これ?
0728デフォルトの名無しさん
2010/03/17(水) 17:04:57にパスを通したら、コンパイルが始まりました。
どうもお騒がせしました。m(_ _)m
&アドバイスありがとうございました。
0729デフォルトの名無しさん
2010/03/17(水) 17:08:26VC++も使ってると設定されてると思うんだけど。
Qt CreatorじゃなくてQtをビルドした時なんだけど,これらの環境変数が設定されていると
勝手にVC用のmakefileを作ってくれて,MinGWでコンパイルするとエラーになるトラブルに
出会った。
コマンドプロンプトで一時的に,
set INCLUDE=
set LIB=
として環境変数をクリアした状態でやったらうまく行ったよ。
同じかどうかわからないけど参考まで。
あともちろんMinGW関係の環境変数はちゃんと設定されてるよね?
CPLUS_INCLUDE_PATH とか,LIBRARY_PATH とかいくつかあるけど大丈夫?
0730デフォルトの名無しさん
2010/03/17(水) 18:44:22アドバイスありがとう。
VS2008 インストールしている環境なので、環境変数INCLUDEとかLIBとか設定されている。
また、MinGW関係の環境変数は設定していない。
しかし、上記の対策を何も行わなかったにも関わらず、mingw32-make release を実行すると、
bin の下に qtcreator.exe が、lib/qtcreator/pluging/Nokia の下にプラグインDLL、pluginspec ファイルができた。
んで、qtcreator.exe を起動できて、プラグインの修正が反映されていることを確認した。
どうやらビルドはうまくいったみたいだ。
0731デフォルトの名無しさん
2010/03/17(水) 21:34:43それは絶対にない。
0732デフォルトの名無しさん
2010/03/17(水) 21:35:13俺はWindowsがサポートされてから試してみようかなと思ってる
0733デフォルトの名無しさん
2010/03/17(水) 23:51:24{
QDateTime dt(QDate(2010,3,15),QTime(0,0));
qDebug() << dt.time().setHMS(3,0,0);
qDebug() << dt;
return 0;
}
true
QDateTime("月 3 15 00:00:00 2010")
となるんですがどこに問題があるんでしょうか?
0734デフォルトの名無しさん
2010/03/18(木) 00:08:41同一症状の人いる?
0735デフォルトの名無しさん
2010/03/18(木) 00:34:320736デフォルトの名無しさん
2010/03/18(木) 11:02:22何これ?
QTimerはQThreadと一緒に使うことができない、って訳でいいのかな
0737デフォルトの名無しさん
2010/03/18(木) 11:03:350738デフォルトの名無しさん
2010/03/18(木) 11:04:570739デフォルトの名無しさん
2010/03/18(木) 11:07:25プログラム全体の実行速度の70%〜80%を20%〜30%の部分が占めている
という有名な法則だ
要するに全部書き上げてからプロファイラなどで速度のボトルネックになっている
部分を20%〜30%程度書き換えるだけで十分速くなるという事だな
0740デフォルトの名無しさん
2010/03/18(木) 11:10:01するとまじめに働いていた集団の8割が怠け始めるそうです。
反対に、怠け者のプログラムの集団では、2割が働き始めるそうです。
0741デフォルトの名無しさん
2010/03/18(木) 11:11:500742736
2010/03/18(木) 11:14:11>QTimerはQThreadと一緒に使うことができない
QTimerはQThreadと一緒に(唯一)使うことができる かも
これだけじゃ、どうしょうも無いだけど
0743736
2010/03/18(木) 11:18:25って書き忘れていたからかも
0744デフォルトの名無しさん
2010/03/18(木) 11:27:13Qt 4.6.2のヘルプ見たけど,そのような記述は見つからない。
どこに書いてあったの?
0745744
2010/03/18(木) 11:28:210746736
2010/03/18(木) 11:37:44だから、CLIのプログラムなのにquit()を呼び出さないとダメなのか
ちょっと、面倒くさいね
>>744
やっぱり、イベントループを書き忘れていたから出たエラーでした
すいません、わざわざレスしてもらったのに
0747デフォルトの名無しさん
2010/03/18(木) 20:53:12Qtで書いた時は、どんな感じで実装している?
0748デフォルトの名無しさん
2010/03/18(木) 22:30:17解決したので自己レス
zlibを1.2.4_0にアップデートしたせいでした。
zlibバージョンを1.2.3_4に戻したらビルドできるようになった。
0749デフォルトの名無しさん
2010/03/19(金) 13:38:53他のURLの飛ばされた時の処理も自分で書かないとダメなんですか?
0750デフォルトの名無しさん
2010/03/19(金) 14:40:470752デフォルトの名無しさん
2010/03/19(金) 15:27:490753デフォルトの名無しさん
2010/03/19(金) 15:49:48INCLUDEPATH = /path/to/include
0754デフォルトの名無しさん
2010/03/19(金) 15:52:33画面からは追加出来ないんですか?
0755デフォルトの名無しさん
2010/03/19(金) 17:05:23> 画面からは追加出来ないんですか?
Qt Creatorでの設定は.proファイルを編集するのが基本。
最初は物足りなく感じるけど,慣れてくるとGUIでチェックボックスやらラジオボタンやら
が沢山並んでいる中で設定するよりスッキリしててこれはこれでアリだなと思うようになった。
ファイル内にコメントも書けるしね。
0756デフォルトの名無しさん
2010/03/19(金) 17:14:47INCLUDEPATHと書いたら、インテリセンスも動いて色が変わったぽいw
0757デフォルトの名無しさん
2010/03/19(金) 21:36:39>QObject::startTimer: QTimer can only be used with threads started with QThread
>何これ?
言っている通り。どう使えばよいかと教えてくれている。
>QTimerはQThreadと一緒に使うことができない、って訳でいいのかな
使える。QTimerのリファレンスに書いてある。
0758デフォルトの名無しさん
2010/03/20(土) 09:00:030759デフォルトの名無しさん
2010/03/20(土) 11:47:350760デフォルトの名無しさん
2010/03/21(日) 11:30:22それぞれのボタンのon_button1_clicked()をvoid からintに変更しスロット内で
return QDialg::Accept; と QDialog::Reject;を書いたんですが
常に0しか返されません。
QDialogの方で何か処理されてるようですが、
どうすれば良いでしょうか?
0761デフォルトの名無しさん
2010/03/21(日) 11:37:010762デフォルトの名無しさん
2010/03/21(日) 12:18:010763デフォルトの名無しさん
2010/03/21(日) 12:29:330764デフォルトの名無しさん
2010/03/21(日) 12:53:12その前に母国語を学んだ方がいいだろjk
0765デフォルトの名無しさん
2010/03/21(日) 17:25:44・qt4-4.5.2
・qtcreator-1.2.1
・qmake-3.3.8_1
の3つをインストールしました。
環境変数 QMAKESPE には freebsd-g++ を設定しました。
コンソールからのコンパイルは問題なくできるようになったのですが
問題はQtCreatorからのコンパイルでしてビルドしようとすると「コンパイル出力」ウィンドウに
有効なQtバージョンが設定されていません。ツール/オプションで1つ設定してください。
プロジェクト test をビルド中にエラーが発生しました
ビルドステップ 'QMake' を実行中
ビルドを中止しました。
というエラーが発生してしまいます。
実際にツール/オプションの「Qtバージョン」を確認してみると確かに
自動検出したQt <見つかりません>
と表示されていてQtの検出に失敗しているようです。
コンソールからのコンパイルは問題なくできているのでおそらくQt自体のインストールには
成功していると思うのですが、QtCreatorでビルドできない理由は何でしょうか?
0766デフォルトの名無しさん
2010/03/21(日) 19:05:280767デフォルトの名無しさん
2010/03/21(日) 19:19:08>成功していると思うのですが、QtCreatorでビルドできない理由は何でしょうか?
有効なQtバージョンが設定されていません。ツール/オプションで1つ設定してください。
0768デフォルトの名無しさん
2010/03/21(日) 19:34:11QtCreator上でソースコード編集中に日本語入力すると余分に改行が入る。
手順的には
1.日本語入力( 下線状態 )
2.returnで確定
3.その後カーソル移動するとなぜか改行
日本語入力中( 変換未確定中 )でもキーイベントが送られちゃってる気がする。
ちなみに、demoのテキストエディタでもなったから、Mac版Qt自体のバグっぽい。
0769デフォルトの名無しさん
2010/03/21(日) 19:37:35> 有効なQtバージョンが設定されていません。ツール/オプションで1つ設定してください。
具体的にはどのフォルダを設定したらよろしいでしょうか?
デフォルトの「自動検出」でひっかからないのも不思議です・・・
0770デフォルトの名無しさん
2010/03/21(日) 20:53:54試してみようとしたら、MacのQt 4.6.2のqtdemoでボタンをクリックしても先に進まない。
4.6.1も同じ。4.6.0はうまく行く。
そこで、直接4.6.2のqtdemos/texteditを動かして、手順通りにやってみたけれど再現できなかった。
0771デフォルトの名無しさん
2010/03/21(日) 21:30:39QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkReply *reply = manager->get(QNetworkRequest(QUrl("http://xxxxx.com")));
//この関数内でそのまま
QByteArray ba = reply->readAll();
//とかしたい
マルチスレッド自体がよくわかっていないのでまずはそこから勉強する必要があるのかも
しれないのですが、とりあえず上記のことは可能なのでしょうか?
可能ならヒントでいいのでお願いします。
一連の getとpost の連鎖処理になるのでSIGNALとSLOTで書いてたらキリがないし
何もわざわざ非同期にするほどの重い処理でもないので同期でやりたいのですが、
もし不可能なら、そういうのを書く場合の定石ってあるのでしょうか?
0772デフォルトの名無しさん
2010/03/21(日) 21:32:590773デフォルトの名無しさん
2010/03/21(日) 22:00:20たった一握りの人間が産業の興廃を決めるのは共産主義
政府が金銭的に支援すると企業が消費者のことではなくて
役人のご機嫌取りに走るから産業の成長を阻害するんだよ
0774デフォルトの名無しさん
2010/03/21(日) 22:26:16どこのスレの誤爆ですか
0775デフォルトの名無しさん
2010/03/22(月) 01:25:12whlie (!reply->isFinished())
QCoreApplication::processEvents();
0776デフォルトの名無しさん
2010/03/22(月) 01:25:360777デフォルトの名無しさん
2010/03/22(月) 01:28:13でも、検索のしにくさに比べたら、どうということはないなぁ。
0778デフォルトの名無しさん
2010/03/22(月) 01:29:28むしろそのまんま
0779デフォルトの名無しさん
2010/03/22(月) 02:08:42cuteとcue teaのどっちでもいいんだよ。
0780デフォルトの名無しさん
2010/03/22(月) 03:01:33解像度どれくらいのディスプレイ使ってる?
0781デフォルトの名無しさん
2010/03/22(月) 03:18:150782デフォルトの名無しさん
2010/03/22(月) 07:33:360783デフォルトの名無しさん
2010/03/22(月) 09:21:18できました
ありがとうございます
0784デフォルトの名無しさん
2010/03/22(月) 10:16:56激しく動悸
0785デフォルトの名無しさん
2010/03/22(月) 10:38:40コレはるかに.netより使いやすい・・・
0786デフォルトの名無しさん
2010/03/22(月) 10:40:240787デフォルトの名無しさん
2010/03/22(月) 10:44:080788デフォルトの名無しさん
2010/03/22(月) 12:21:01Qt - Wikipedia
ttp://ja.wikipedia.org/wiki/Qt
> QtはGTK+やMFC等、他の標準的なグラフィックツールキットに比べて、
> もっとも後発であることもあり、以前から存在するライブラリーの
> よいところを集めたアーキテクチャーとなっている。
> そのため、商業アプリケーションでの採用例が多い他、オープンソース版も
> 用意されているおかげで、KDEという高品質なデスクトップ環境も開発された。
> OpenGLやSVG、XMLといった最新技術にも対応している他、
> 日本語を含む多バイト文字入力フレームワークへも対応している。
0789デフォルトの名無しさん
2010/03/22(月) 12:41:230790デフォルトの名無しさん
2010/03/22(月) 12:48:08.NET Frameworkの方が後発だけどなw
>>789
検索は -QuickTime しないとウザイよね
0791デフォルトの名無しさん
2010/03/22(月) 13:10:010792デフォルトの名無しさん
2010/03/22(月) 13:18:34仮にwindowsのexeとした場合、
cやc++などでwinapiを叩いてguiアプリ作った場合に比べて、どれくらいのサイズ比になりますでしょうか?
0793デフォルトの名無しさん
2010/03/22(月) 13:24:57作ってみないと何ともいえねんでね。
0794デフォルトの名無しさん
2010/03/22(月) 13:30:10qt4は0から作り直したのか?
0795デフォルトの名無しさん
2010/03/22(月) 13:46:49エロい人教えてください
0796765
2010/03/22(月) 13:53:140797デフォルトの名無しさん
2010/03/22(月) 14:01:22DLLに分けたら同じくらい小さくなるよ
0798デフォルトの名無しさん
2010/03/22(月) 14:12:01レスありがとうございます。
実際試してみないと具体的な数字はやっぱり出てこないですよね。
QtCore4.dllとexeを別にすればかなり最適なサイズになるようで一先ず安心しました。
0799>>792 = >>798 (事故レス)
2010/03/22(月) 14:13:18○ >>797
失礼しました。
0800デフォルトの名無しさん
2010/03/22(月) 14:18:52QtGuiやQtCoreを別にして良いんだったら
exe自体は全然小さいよ
でも、QtGui4.dllがデカイw
>>796
FreeBSD以外のプラットフォームにする
0801デフォルトの名無しさん
2010/03/22(月) 15:31:56商用版にして公式サポート受けろ
0802デフォルトの名無しさん
2010/03/22(月) 15:37:57Qt Creator の自動検出は PATH にある qmake (or qmake-qt4) が正常に動く場合。
QMAKESPEC は見てないので、QMAKESPEC が必要な環境では自動検出できないし、
マニュアルで指定してもだめ。
mkspecs のあるディレクトリで
ln -s freebsd-g++ default
すれば QMAKESPEC が必要なくなるのでうまくいくかもしれん。
freebsd の package の問題。
0803デフォルトの名無しさん
2010/03/22(月) 15:39:52FreeBSD使った事ないんでよく解らんけど
パスが通ってないだけなんじゃないの?
コンソールで起動したときには
*rcにQtのインストールパスが書いてあるんで大丈夫とか
0804765
2010/03/22(月) 16:22:28> Qt Creator の自動検出は PATH にある qmake (or qmake-qt4) が正常に動く場合。
>>803
/usr/local/bin/qmake
をQtCreatorのオプションに直接登録してみましたがそれでも認識されませんでしたorz・・・
Qt一式を全てpackageからインストールしているのに問題が発生すると言うことは
やはりFreeBSDのパッケージの方に問題がありそうですね・・・
0805デフォルトの名無しさん
2010/03/22(月) 16:47:140806795
2010/03/22(月) 16:54:410807デフォルトの名無しさん
2010/03/22(月) 17:07:34でも、日本語の場合はどうやってやればいいの?
0808デフォルトの名無しさん
2010/03/22(月) 17:13:17"ファイル (&F)"
0809デフォルトの名無しさん
2010/03/22(月) 17:13:53ファイル(&F)
0811デフォルトの名無しさん
2010/03/22(月) 19:46:410812デフォルトの名無しさん
2010/03/22(月) 19:49:00同一人物だから
0813デフォルトの名無しさん
2010/03/22(月) 19:58:04それって、qmakeまで入れるの?
/usr/local/bin/だけで大丈夫じゃないっけ?
0814デフォルトの名無しさん
2010/03/22(月) 20:36:27教えてエロい人!!
0815デフォルトの名無しさん
2010/03/22(月) 20:59:070817デフォルトの名無しさん
2010/03/22(月) 21:00:250819817
2010/03/22(月) 21:06:17コーディング時点で型が決まらないと言うより、何でもブチ込んでおける便利な型と
考えていいんじゃないか?
例えば、Object::setProperty() の第2引数はQVariant&なので、QObjectに好きな型の
変数を名前をつけてプロパティとして関連付けておける。
0820765
2010/03/22(月) 21:21:20> それって、qmakeまで入れるの?
> /usr/local/bin/だけで大丈夫じゃないっけ?
失礼しました
/usr/local/bin/
です。上記のように入力しましたが結果的にQtの検出には依然として失敗し続けています。
う〜む・・・
FreeBSDのコミュニティに報告した方がいい案件なんでしょうか・・・
0821デフォルトの名無しさん
2010/03/22(月) 21:46:11>>802 の後半は試したか?
0822デフォルトの名無しさん
2010/03/23(火) 01:46:14QVariantで扱える型を自分で追加できるのも便利です。
0824デフォルトの名無しさん
2010/03/23(火) 09:10:56それには何か明確な理由があるのでしょうか?
0825デフォルトの名無しさん
2010/03/23(火) 11:22:460826デフォルトの名無しさん
2010/03/23(火) 11:43:29foreachを書ける、ストリームにシリアライズ可能とか?
0827デフォルトの名無しさん
2010/03/23(火) 11:46:030828デフォルトの名無しさん
2010/03/23(火) 11:48:13どうやってCreatorで操作すればいいんだろうか。
例えば以下のような構成のプロジェクト構成にしたい。
Hoge <-メインプロジェクト
+-- GUIアプリケーション(Hoge/HogeMain) <-サブプロジェクト1
+-- C++ライブラリ(Hoge/HogeLib) <-サブプロジェクト2
今Creatorから上記の3つのプロジェクトを作って、保存後にメインプロジェクトを開いてみたけど
サブプロジェクトが含まれてなかった。。。
0829デフォルトの名無しさん
2010/03/23(火) 12:39:07複数プロジェクトをまとめる専用の.proファイルを使って,その中で,
TEMPLATE = subdirs
と書いておき,実際のサブプロジェクトのディレクトリは,
SUBDIRS = HogeMain \
HogeLib
のように指定する。詳しくは下記参照。
つhttp://qt.nokia.com/doc/qtopia4.2/qmake-variable-reference.html#template
各サブプロジェクトの.proファイル側で出力先ディレクトリが
同じになるように指定しておけば,アプリとDLLの同時デバッグも可能。
0830デフォルトの名無しさん
2010/03/23(火) 12:47:480832829
2010/03/23(火) 15:18:101.まずHogeディレクトリの下にサブディレクトリとして/HogeMainと/HogeLib,
ついでに/releaseと/degugも作っておく。
2.Hogeディレクトリの中に複数プロジェクトをまとめるためのHoge.proを作って,
そこに>>829のように記述する。ただ,普通はライブラリの方を先にビルドして欲しい
はずなので順番を変えて,
SUBDIRS = HogeLib \
HogeMain
とする。またここで指定した順番どおりにビルドするための指令として,
CONFING += ordered
も書いておく。
3./HogeLibにHogeLib.pro,/HogeMainにHogeMain.proを置く。これらは通常のプロジェクト
用の.proと同じ内容になるが,以下のようにして出力先を Hoge/debug と Hoge/release に
しておく。
CONFIG(debug) {
DESTDIR = ../debug/
} else {
DESTDIR = ../release/
}
こうしておけば,アプリとライブラリを一緒にデバッグできるようになります。
0835デフォルトの名無しさん
2010/03/23(火) 16:16:40gが全角`o'
0836829
2010/03/23(火) 17:08:140837デフォルトの名無しさん
2010/03/23(火) 17:31:280838デフォルトの名無しさん
2010/03/23(火) 17:59:46つ http://doc.trolltech.com/4.6/qframe.html
0839デフォルトの名無しさん
2010/03/23(火) 20:29:14とる事(グローバルフック?)って出来ますか?
今押されてるキーを表示するようなユーティリティを作ろうと思ってます。
0840デフォルトの名無しさん
2010/03/23(火) 21:08:27組込みLinux用のQtはできる。
0841デフォルトの名無しさん
2010/03/23(火) 21:37:00端末にバインドしてない keylogger みたいなもんか
0842デフォルトの名無しさん
2010/03/24(水) 00:02:40教えてエロい人!!
0843デフォルトの名無しさん
2010/03/24(水) 00:21:450844デフォルトの名無しさん
2010/03/24(水) 00:24:55QGraphicsBlurEffect* blur_effect = new QGraphicsBlurEffect(this);
blur_effect->setBlurRadius(10);
QPixmap *image = new QPixmap(tr(":/images/aaaa.jpg"));
ui->label->setPixmap(*image);
ui->label->setFixedSize(image->size());
ui->label->setGraphicsEffect(blur_effect);
Windows版だと上手く動くのに、Mac版だとうまく動かない(エフェクトがかからない)んだけどなんでだろ
環境
Windows:
Windows Vista
Qt 4.6.2
Mac:
Snow Leopard
Qt 4.6.2
0845デフォルトの名無しさん
2010/03/24(水) 00:31:54ことを覚悟してるんだろ?wxもgtkもさ。
0846デフォルトの名無しさん
2010/03/24(水) 01:11:12スロットはvoid型しかできません。
そうしたいなら、signalを定義してスロットからそのシグナルを発生させてください。
signals:
void button1_clicked(int);
private slots:
void on_button1_clicked(){
...
// return QDialog::Accept;
emit button1_clicked(QDialog::Accept);
...
// return QDialog::Reject;
emit button1_clicked(QDialog::Reject;
...
}
0847デフォルトの名無しさん
2010/03/24(水) 08:32:35> スロットはvoid型しかできません。
戻り値があっても構いません。
スロットは、メタオブジェクトにその情報が格納され、シグナルと接続でき、メタ情報からの
メソッド呼出しなどができる他は、普通のメソッドと同じです。シグナルによって呼ばれた場
合には、戻り値が使われないだけで、単にスロットをメソッドとして呼出して、戻り値を得る
ようにするのは、問題なくできます。
0849デフォルトの名無しさん
2010/03/24(水) 08:50:53ありがとうございました
0850デフォルトの名無しさん
2010/03/24(水) 11:34:04.proにはどのように書けば良いのでしょうか?
今はMakefileのCFLAGSに、直接手で追加しています…
0851デフォルトの名無しさん
2010/03/24(水) 12:31:49ありません。
0852デフォルトの名無しさん
2010/03/24(水) 12:34:35普通に DEFINES += 使えばいいんじゃね?
あとは QMAKE_CFLAGS_DEBUG とか QMAKE_CFLAGS_RELEASE とか。
Assistantで 「qmake Variable Reference」探してみて。
0853デフォルトの名無しさん
2010/03/24(水) 14:15:07ttp://owa.as.wakwak.ne.jp/zope/docs/Python/BindingCpp
ttp://owa.as.wakwak.ne.jp/zope/coreblog/199
0854デフォルトの名無しさん
2010/03/24(水) 15:07:31どこで公開するのがいいのでしょうか?
おすすめの場所があったら教えてください。
0856デフォルトの名無しさん
2010/03/24(水) 16:03:58ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
0857デフォルトの名無しさん
2010/03/24(水) 16:47:29qt-apps.org
0858デフォルトの名無しさん
2010/03/24(水) 20:53:56ttp://qt.nokia.com/resources-jp/the-qt-contribution-model
0859デフォルトの名無しさん
2010/03/24(水) 21:22:44それじゃ、スレッド使った処理は書けないの?
0860デフォルトの名無しさん
2010/03/24(水) 23:34:57Re: [Kde-bindings] Using threads with QtRuby - msg#00122 - kde-bindings
http://osdir.com/ml/kde-bindings/2010-02/msg00122.html
phosphorescence: Where has Qt::Thread gone?
http://phosphor-escence.blogspot.com/2009/05/where-has-qtthread-gone.html
0861839
2010/03/25(木) 13:21:36ありがとうございます。環境依存になってしまうって事ですね。
今回はWindowsを対象にしてるので、WinAPIで考えてみることにします。
0862デフォルトの名無しさん
2010/03/26(金) 11:32:200863デフォルトの名無しさん
2010/03/26(金) 15:19:10espおながいします
0864デフォルトの名無しさん
2010/03/26(金) 19:23:17QTextCodec.setCodecForTr(QTextCodec.codecForName('UTF-8'))とすると文字化けせずに表示されました。
0865デフォルトの名無しさん
2010/03/26(金) 22:21:52ありがとうございますた
0866デフォルトの名無しさん
2010/03/28(日) 07:14:20ttp://www.dailymotion.com/swf/x26nox
おっぱいおっぱい
0867デフォルトの名無しさん
2010/03/28(日) 10:41:13後から高さや幅を変更できません
どうにかならない?
0868デフォルトの名無しさん
2010/03/28(日) 11:13:12>どうにかならない?
できます。
http://doc.trolltech.com/4.6/layout.html
http://doc.trolltech.com/4.6/widgets-and-layouts.html
レイアウトのリファレンスを読めばよい。
0869デフォルトの名無しさん
2010/03/28(日) 17:13:54でpostするときにpostするデータを
QUrl params;
params.addQueryItem("id", id);
params.addQueryItem("password", pw);
QByteArray paramdata(params.toString().toAscii());
manager->post(request, paramdata);
してるんですが、このさいparamdataには"?id=hoge&password=hage"と
先頭に?が入るようで、これがpost()の際に邪魔になるようです。
?を毎度paramdataから取り除くの面倒なんですが
最初から?がダブらないようにするにはどうやるんでしょうか?
0870デフォルトの名無しさん
2010/03/28(日) 17:55:53QByteArray paramdata(params.toAscii());
じゃダメなの?
0871デフォルトの名無しさん
2010/03/28(日) 18:17:16これ使ってできるはずなんじゃないかな?と
0872デフォルトの名無しさん
2010/03/28(日) 19:02:22みなさんもそうですか?
0873デフォルトの名無しさん
2010/03/28(日) 22:19:58PhononはDirectShow9を要求するけどMinGWはそれをコンパイルできないから使えないって話をどこかで読んだ
0874デフォルトの名無しさん
2010/03/28(日) 23:44:42http://qt.nokia.com/doc/qurl.html#encodedQuery は?
0875デフォルトの名無しさん
2010/03/29(月) 00:14:33それだわ!ビンゴ
0876デフォルトの名無しさん
2010/03/29(月) 01:58:58file->open(QFile::ReadOnly);
in.setDevice(file); //inはQDataStream型
char* buf = new char[4];
sampleBasePos+=in.readRawData(buf, 4);
qWarning() << sampleBasePos;
if(strcmp(buf, "RIFF"))
{
qWarning() << "Not RIFF";
qWarning() << buf;
qWarning() << strlen(buf);
return;
}
以下Wavファイルのヘッダ読み込み処理
}
という感じのメディアソースが変更されたら呼ばれるスロットを作っているのですが
実行してみると
in.readRawData(buf, 4);で4バイト分ファイルから読もうとしているのに対して
qWarningの出力には
4
Not RIFF
RIFF(
9
となぜか"RIFF" + 文字化けした何かというように9バイト読み込まれています。
文字化けの内容は実行するごとに変化し、Warningに全くひっかからずに最後まで通ってしまうこともあります。
原因は一体何なのでしょうか?
0877デフォルトの名無しさん
2010/03/29(月) 02:04:05読み込みは正しく4バイトだけ読み込まれてると思うぞ。
0878デフォルトの名無しさん
2010/03/29(月) 02:07:22長文すいませんでした。
0879デフォルトの名無しさん
2010/03/29(月) 14:27:29SIGNALを発したオブジェクトが何であるかを取得できるでしょうか?
念頭においてるのはpushButtonのclicked()です。
0880デフォルトの名無しさん
2010/03/29(月) 15:07:01QPushButton *button = qobject_cast<QPushButton*>(sender());
とかやればよい。
0881デフォルトの名無しさん
2010/03/29(月) 15:19:36即レス大変感謝です
思うようにいきました
0882デフォルトの名無しさん
2010/03/29(月) 15:26:030883デフォルトの名無しさん
2010/03/29(月) 15:49:080884デフォルトの名無しさん
2010/03/29(月) 15:50:34moc の追加仕様なんて気にしたら負けです
本当にありがとうございました
0885デフォルトの名無しさん
2010/03/29(月) 20:46:14比べるならλ式と比べてやれや
0886デフォルトの名無しさん
2010/03/30(火) 00:38:12classじゃなくてプレフィックスがQの文字列なんだね
ためしにQTaroとかでも紫色になるし・・
0887デフォルトの名無しさん
2010/03/30(火) 01:11:15src/plugins/cppeditor/cpphighlighter.cpp
void CppHighlighter::highlightWord(QStringRef word, int position, int length)
{
// try to highlight Qt 'identifiers' like QObject and Q_PROPERTY
// but don't highlight words like 'Query'
if (word.length() > 1
&& word.at(0) == QLatin1Char('Q')
&& (word.at(1).isUpper()
|| word.at(1) == QLatin1Char('_')
|| word.at(1) == QLatin1Char('t'))) {
setFormat(position, length, m_formats[CppTypeFormat]);
}
}
0888デフォルトの名無しさん
2010/03/30(火) 11:34:450889デフォルトの名無しさん
2010/03/30(火) 14:16:460890デフォルトの名無しさん
2010/03/30(火) 19:54:58QPushButton に connect で SIGNAL clicked() を
自分のクラスに作った SLOT で受けてるのですが
self.sender().text() で取得したボタン表示文字列の
型が何か分かりません
unicode(self.sender().text()) だと unicode で取得出来たのですが
self.sender().text().decode('utf-8') みたいにすると
str ではないと怒られます
0891デフォルトの名無しさん
2010/03/30(火) 19:57:21type(self.sender().text())
で
PyQt4.QtCore.QString
だと分かりました
0892デフォルトの名無しさん
2010/03/30(火) 21:29:45Qjは、予約されていないからです。
0893デフォルトの名無しさん
2010/03/30(火) 21:38:53その仕様なのにオプション設定のカラースキームで「型」とするのは紛らわしいよな
0894デフォルトの名無しさん
2010/03/30(火) 23:44:06Qtでlibファイルをリンクするにはどうしたらよいのでしょうか?
0895デフォルトの名無しさん
2010/03/30(火) 23:58:53気合いと根性とちょっとのgnu cの知識
qtは関係ない
0896894
2010/03/31(水) 00:15:57外部ライブラリをリンクする方法は、2通り。
・プロジェクト設定でリンクするlibファイルを設定する方法。
・使う箇所だけで#pragma comment(lib, "xxxx.lib");と読み込ませる方法。
との記事を見つけたので
プロジェクト設定をいじれるところがどこかあるのかなーと思ったのですが。
#pragma commentについてはminGW版ではignoreされたので・・
0897デフォルトの名無しさん
2010/03/31(水) 01:26:47sender()なんてあったのか。
ボタンを全部同じスロットで受け取って、sender()->objectName()使って処理を振り分けることも可能なのね。
0898デフォルトの名無しさん
2010/03/31(水) 06:34:25>>887の書いてくれたコードが読めないの?
それとも>>888の最後にwが付いてるのにマジレスしてんの?
0899デフォルトの名無しさん
2010/03/31(水) 06:46:36naming guidelineをしらないの?
0900デフォルトの名無しさん
2010/03/31(水) 09:30:430901デフォルトの名無しさん
2010/03/31(水) 12:45:16話の主旨がわかってない。>>900の言うとおり。
0902デフォルトの名無しさん
2010/03/31(水) 12:47:59そうそう。例えばラジオボタンを沢山並べて,それらのclicked()シグナルにconnectするスロット関数を一つに
できるので便利だよ。
0903デフォルトの名無しさん
2010/03/31(水) 15:02:36http://doc.qt.nokia.com/4.6/widgets-calculator.html
これのCalculator::digitClicked()でまさにその処理を書いてるね
0904デフォルトの名無しさん
2010/03/31(水) 16:32:230905デフォルトの名無しさん
2010/03/31(水) 17:52:290906デフォルトの名無しさん
2010/03/31(水) 18:28:11といかC++はクソ難しい(さらに変態的になりそうな現状もある)からDelphiばっか使っていた方は
発狂すると思うぞ?
0907デフォルトの名無しさん
2010/03/31(水) 19:50:420908デフォルトの名無しさん
2010/03/31(水) 20:00:30> 馬鹿除けトラップ
でもそのせいで俺らだっていちいち苦労するぞ
0909デフォルトの名無しさん
2010/03/31(水) 20:37:01つ >>292
0910デフォルトの名無しさん
2010/03/31(水) 22:05:390911デフォルトの名無しさん
2010/03/31(水) 22:23:58グリッドレイアウトでウィジェットを多数配置しているのですが、
そのうちのいくつかを無効化しようとしています。
.hide()で隠すことで対応したのですが、
グリッドの一行を全てhide()すると、その行がグリッドレイアウトで
つめられてしまい、ウィジェットの位置が変わってしまいます。
位置が変わらないように、
グリッドの一行を空のままスペースをあけるような事はできますでしょうか?
hide()以外でもなんでもかまいません。
よろしくお願いします。
0912デフォルトの名無しさん
2010/03/31(水) 22:46:590913デフォルトの名無しさん
2010/03/31(水) 23:12:36無効化だけしたいならQWidget::setDisabledを呼べばいい
>>912
4.6から追加されたQWebElementがそれらしい機能なんじゃないかな
0914デフォルトの名無しさん
2010/04/01(木) 00:41:58つ ttp://qt.nokia.com/doc/4.6/qbuttongroup.html
0915デフォルトの名無しさん
2010/04/01(木) 00:46:08ttp://labs.trolltech.com/blogs/2009/03/27/speeding-up-visual-c-qt-builds/
0916902
2010/04/01(木) 06:33:38うん。そっちも使ったことあるけど、なんか>>880みたいなコーディングの方を
書いちゃうんだよね。それとQButtonGroupで何か不具合に出会った記憶が...
時間がなかったので、あまり調べもせずに..>>880式の書き方に変えたので
覚えてないんだけど(完全無責任モード)。
0917デフォルトの名無しさん
2010/04/01(木) 08:45:260918902
2010/04/01(木) 09:51:25あまりに無責任なので,ちょっと手元で試してみたけど,普通に使う分には問題なかった。
不具合に出会ったときは setProperty() とか使ってゴニョゴニョ書いてたんだけど,
何をやったらどうおかしかったのか思い出せない...ので,気にしないで。
ただ,コーディング量は QButtonGroup 使っても共通スロット関数で sender() 使っても
大差ないのでお好きな方でどうぞってところかな。
0919デフォルトの名無しさん
2010/04/01(木) 10:41:18なんだぁ、jomの話じゃん。今のQt Creatorではデフォルトでnmakeの代わりにjomが使われる
から,今のスピードに満足できていない人には情報として役に立たないよぉ。
0921デフォルトの名無しさん
2010/04/01(木) 12:57:10そりゃDelphiやC#とかヘジルスバーグ言語と
C++のコンパイル速度を比較したらいかんよw
0922デフォルトの名無しさん
2010/04/01(木) 15:11:05さっと見てみましたがQNetworkAccessとあわせて使うには
ちょっと大げさな感じになっちゃうみたいですね・・
0923デフォルトの名無しさん
2010/04/01(木) 21:16:28スペーサーかダミーのWidgetに差し替えるか、GridLayoutのサブクラスを作って
位置が変わらないようにオーバーライドするとか・・・。よく調べれば何か方法はあるはず
0924デフォルトの名無しさん
2010/04/02(金) 00:48:45ttp://qt.nokia.com/doc/4.6/eventsandfilters.html#event-filters の機能で
あるプロパティ(例えば Disabled)が true の時は PaintEvent をフィルタしてしまうのはどうかな
できるかどうかわかんないけど試す価値はありそう
もしくは ttp://qt.nokia.com/doc/4.6/qgraphicseffect.html で描画を上書きするって方法もありかも
0925デフォルトの名無しさん
2010/04/02(金) 07:32:13真実と嘘の区別が付かないのが、チョウセンヒトモドキ
0926デフォルトの名無しさん
2010/04/02(金) 07:52:03function getValue(Form,Target){
var value = document.getElementById(Form).value; // 変数Form名のIDのフォームの値をvalueに代入
value = window.prompt("文字を入力",value); // 入力フォームを表示。valueを入力プロンプトに渡す。(上の行と1本かできるの事は気にしないで)
document.getElementById(Target).value = value; // 変数TargetのIDのフォームにvalueを代入
}
これをQtで書くとどういう感じになるのかな?
FormとTargetの値(参照元のフォーム名と代入先のフォーム名)が変化するんだけど。
あと、
form = document.getElementById(Form+'_name')
みたいな表現ってできない?
0927デフォルトの名無しさん
2010/04/02(金) 12:24:02意味不明。「真実」とか「嘘」という言葉の使い方が不適切だと思われ。
では国語の問題です。
問1:ここであなたの言う「真実」とは何を指しているでしょうか?
問2:ここであなたの言う「嘘」とは何を指しているでしょうか?
0928デフォルトの名無しさん
2010/04/02(金) 12:37:050929デフォルトの名無しさん
2010/04/02(金) 12:38:400930デフォルトの名無しさん
2010/04/02(金) 12:40:500931デフォルトの名無しさん
2010/04/02(金) 12:42:07まったく文脈のズレまくった試験官キャラやっちゃってるんでしょw
0932デフォルトの名無しさん
2010/04/02(金) 12:43:35わからんつーこと。書いた本人に適切な言葉で説明することを求めてる。
0933デフォルトの名無しさん
2010/04/02(金) 12:44:480934デフォルトの名無しさん
2010/04/02(金) 12:49:36>>925はそれを「嘘」と言ってるのかな?
正直俺も何が言いたいのかよくわからん。
0935デフォルトの名無しさん
2010/04/02(金) 13:20:230936デフォルトの名無しさん
2010/04/02(金) 13:51:310937デフォルトの名無しさん
2010/04/02(金) 14:00:16QWebFrame::evaluateJavaScript() を使う方法もあるけど、
C++ を使いたいなら QWebElement を使う。
適当なサンプル
QWebElement form0 = ui->webView->page()->mainFrame()->documentElement().findFirst("input#form0");
if (!form0.isNull()) {
QString value = form0.attribute("value", "");
QString result = QInputDialog::getText(this, tr("Input Text"), tr("Value:"), QLineEdit::Normal, value);
if (!result.isNull()) {
QWebElement form1 = ui->webView->page()->mainFrame()->documentElement().findFirst("input#form1");
form1.setAttribute("value", result);
}
}
0938デフォルトの名無しさん
2010/04/02(金) 14:01:41プログラムの目的にもよると思うけど。
0939デフォルトの名無しさん
2010/04/02(金) 17:58:41そこまで速度要求されないものだと、そんなに変わらんよ。
それに開発中だと、動作速度よりも、コンパイルしなおさずに使える方が嬉しいこともある。
Pythonで動くものを作って、できるだけQtライブラリを使う方針でコード書けばC++への移植もそう難しくない。
0940デフォルトの名無しさん
2010/04/02(金) 18:49:16この話って>>905のDelphianが発端だから、そういのがないと厳しいと思う。
0941デフォルトの名無しさん
2010/04/02(金) 21:06:23ポトペタでuiを作ったら、ui読み込んでGUI構築できる。
uiからpyファイルを生成するuicもある。
0942デフォルトの名無しさん
2010/04/02(金) 21:41:52GUI設計からソースコード編集、ビルド、デバッグまでが一貫して行える本格的RADツール。
Delphi使いなら、当然ここまで要求したくなると思うよ。開発効率が全然違うもの。
0943デフォルトの名無しさん
2010/04/02(金) 21:42:190944デフォルトの名無しさん
2010/04/02(金) 21:43:270945デフォルトの名無しさん
2010/04/02(金) 21:49:260946デフォルトの名無しさん
2010/04/02(金) 21:50:03またゆとりのオマエか。
0947デフォルトの名無しさん
2010/04/02(金) 23:02:48それほど重要とは思わないけど、EricみたいなIDEを使えばデザイナやデバッガや
インタラクティブシェルやヘルプや静的チェックやユニットテストやバージョン管理なんかを
統合できるな。
0948デフォルトの名無しさん
2010/04/02(金) 23:15:54ただまとめられてるだけじゃなくて、シームレスってところが重要なんだよ。
例えばQt Creatorでボタンを貼って、右クリックで[Go to slot]すると、
スロット関数のスケルトンが作られてて、中にコードを書いていくだけでいい
とか、デバッグ中にエディタ上で変数にカーソルを当てると、値がツールチップ
で表示されるとか。
こういうところがサクサク仕事が出来るかどうかに相当関わってくると思う。
0949デフォルトの名無しさん
2010/04/02(金) 23:31:16仕事をササっとやるとか,GUI付きでもアクセサリ的な小物ソフトを作るのに向いてる。
画像処理とかハードウェア制御を伴うような本格的な大物アプリは,やはりコンパイラ言語の
守備範囲だろう。こういうのをやる場合には,RADツールも本領を発揮するし。
目的に応じて使い分ければいい。
0950デフォルトの名無しさん
2010/04/03(土) 00:52:25それは、C++とPythonの生産性の差を覆せる程の差とは思えないな。
uiをそのまま使う事もできるから、uicを呼び出すために明示的に右クリックから
コード生成をクリックする必要はあるけど、その後に右クリックからスロットに
対応する為のコード自動生成までは同じだし。
むしろ、 PyQt だとスロットとかいちいち宣言しなくても button.clicked.connect(somefunc) みたいに
普通の関数につなげられたり、自動生成以外のところで圧倒的にC++よりも柔軟で便利。
そして何より、C++はコンパイル遅いし。
>>949
Pythonはスクリプト言語じゃないよ。スクリプティングにも使えるけど、本物のプログラミング言語。
画像処理を伴う場合も、画像処理ライブラリがC言語で書かれているし、足りない部分は自分で
Cで書ける。でも、画像処理アプリでも実際に画像処理している部分は2割だったりする。
残りの8割はPythonで書いた方が効率的。
0951デフォルトの名無しさん
2010/04/03(土) 03:11:12暮暮厨うぜ
0952デフォルトの名無しさん
2010/04/03(土) 07:21:38> Pythonはスクリプト言語じゃないよ。
そりゃあんたの勝手な定義で無理がある。いろんなところでスクリプト言語に分類されてる。
つ http://ja.wikipedia.org/wiki/Python
> 画像処理を伴う場合も、画像処理ライブラリがC言語で書かれているし、足りない部分は自分で
> Cで書ける。でも、画像処理アプリでも実際に画像処理している部分は2割だったりする。
> 残りの8割はPythonで書いた方が効率的。
偏愛きもいよ。
足りない部分をCで書くくらいなら、最初から全部C++で書いた方がずっと効率的。
自分でCで書いた部分のデバッグはどうするの?
ハードウェア制御だってそう。市販のI/Oボードに付属のDLLはPythonから直接使え
ないだろ?
インタープリタ言語にはインタープリタ言語の得意分野がある。それを捻じ曲げて
まで、C++を嫌う理由が「いちいちコンパイルしなければならない」だけなの?
コンパイル遅いと言うけど,プリコンパイルドヘッダー使えば充分速いし,
仕事の息抜き時間になってちょうどいい。
カットアンドトライですぐコンパイルかけるようなプログラミングの仕方してると
気になるのかもね。
実行の遅さの方がずっと問題。人様に使っていただくプログラムならなおさら。
だいたいあんたC++や本格的なRADツールの体験はどれだけあるの?
いままで書いた最も大きなプログラムってどんなもの?
0953デフォルトの名無しさん
2010/04/03(土) 07:32:00だいたいあんたC++や本格的なRADツールの体験はどれだけあるの?
いままで書いた最も大きなプログラムってどんなもの?
0954デフォルトの名無しさん
2010/04/03(土) 07:47:18一番大きなプログラムは,数億\単位の装置をオペレーターが使う制御ソフトで,
単純I/Oだけじゃなくてモーションコントローラーや自社開発ボードのハードウェア
制御,画像処理,ZOOM IN/OUTを含んだ描画処理などを含む大掛かりなもの。
大体あんたずれてるよ。突っ込むんなら Python の経験はどれくらいあるのか
聞くんじゃないのか?
他人のカキコを借りてあえて言う。「またゆとりのオマエか」
>>951 もずれてる。>>948は実在するものの話をしてるのに「暮暮厨うぜ」だって。
またゆとりのオマエか。
0955デフォルトの名無しさん
2010/04/03(土) 08:59:140956デフォルトの名無しさん
2010/04/03(土) 09:11:150957デフォルトの名無しさん
2010/04/03(土) 09:20:450958デフォルトの名無しさん
2010/04/03(土) 09:54:140959デフォルトの名無しさん
2010/04/03(土) 10:10:46>非表示にしたいため、setDisabledでは対応できませんでした。
QGraphicsOpacityEffect で透明にするとどうですか。
0960デフォルトの名無しさん
2010/04/03(土) 10:40:46>ハードウェア制御だってそう。市販のI/Oボードに付属のDLLはPythonから直接使え
ないだろ?
無知って怖いな
0961デフォルトの名無しさん
2010/04/03(土) 10:51:00>そりゃあんたの勝手な定義で無理がある。いろんなところでスクリプト言語に分類されてる。
そりゃあんたの勝手な解釈で無理がある。いろいろなところでスクリプティングにも適しているけれど、
大規模アプリケーションにも適している、本物のプログラミング言語とされている。
http://www.python.jp/doc/2.5/tut/node3.html
http://en.wikipedia.org/wiki/Python_(programming_language)
>Python is a general-purpose high-level programming language
DLLは、C#でdllを呼ぶのと同じくらいに簡単に呼べる。
実行時間は20:80の法則があるので、時間のかかっている部分だけ、より良いアルゴリズムや
データ構造を選んだり、画像処理みたいな部分はCで書けば良いだけ。
そんだけ経験あるんだったら、RADツールで削減できる手間なんて最初のちょろっと
だけだって気づかない?
RADの自動生成コードばかり使っていて、自分でコードの再構成をしないまま
肥大化すると、そのうちスコープの大きい変数が散らばったり、MVCが分離できていなくて
一部の機能をテストするためになぜかGUIを人間が操作しないといけないクソコードになるよ。
0962デフォルトの名無しさん
2010/04/03(土) 12:42:16high-level programming languageが本物のプログラミング言語なの?w
その訳語が何か理解できてる?
0963デフォルトの名無しさん
2010/04/03(土) 12:44:14> そりゃあんたの勝手な解釈で無理がある。いろいろなところでスクリプティングにも適しているけれど、
> 大規模アプリケーションにも適している、本物のプログラミング言語とされている。
> http://www.python.jp/doc/2.5/tut/node3.html
> http://en.wikipedia.org/wiki/Python_(programming_language)
前者は作った方の言い分だからねぇ。後者だってPythonだけについて書いたwikipediaのページだから、
作った関係者が書いた可能性大。俺が挙げたページは同じwikipediaでも「スクリプト言語」のページだから、
より公正だと思うが。
> DLLは、C#でdllを呼ぶのと同じくらいに簡単に呼べる。
Cの関数の形をしたいわゆるWINAPI(__stdcall)呼び出し規約のDLLだけでしょ? まぁ、市販ボードのDLLなら
大抵はそうだけど、社内ライブラリなんかクラスDLLにすることが多いから無理。
> 実行時間は20:80の法則があるので、時間のかかっている部分だけ、より良いアルゴリズムや
> データ構造を選んだり、画像処理みたいな部分はCで書けば良いだけ。
だから一部だけCで書くなんて非効率。しかもC++じゃなくてCじゃねぇ。上のDLLと同じ方法になるんだろうけど、
デバッグも面倒だよね。
> そんだけ経験あるんだったら、RADツールで削減できる手間なんて最初のちょろっと
> だけだって気づかない?
全く逆。RADツールのおかげで、顧客ごとのカスタマイズを手早くやってこれた。おかげでホクホクだ。
で、何使ったことあるの? どんなプログラム作ってるの? 聞くの二度目なんだが。
> RADの自動生成コードばかり使っていて、自分でコードの再構成をしないまま
> 肥大化すると、そのうちスコープの大きい変数が散らばったり、MVCが分離できていなくて
> 一部の機能をテストするためになぜかGUIを人間が操作しないといけないクソコードになるよ。
そんなのは仕事の出来ないヤツのやることだ。
0964デフォルトの名無しさん
2010/04/03(土) 12:54:34そのページ見ても、Pythonがスクリプト言語だという記述は見られないけど?
「スクリプト言語」という単語には、スクリプティングに使われる言語という意味と、
スクリプティング用途の為に開発されたという意味の2種類がある。
そのページで「スクリプト言語としての特性から」というのは、明らかに前者。
英語のWikipediaのページにも、General purpose language と書いてある。
Pythonを「スクリプト言語だからスクリプト用途にだけ使っとけ」なんて言ってるのはおまえだけ。
0965デフォルトの名無しさん
2010/04/03(土) 13:01:29リンク間違えた。スマソ。
つ http://ja.wikipedia.org/wiki/スクリプト言語
> Pythonを「スクリプト言語だからスクリプト用途にだけ使っとけ」なんて言ってるのはおまえだけ。
そんなことは言っていない。 つ >>949
>>962
ほんとだ。high-level programming language = 高級言語。Pythonが高級言語なのは当たり前じゃん。
0966デフォルトの名無しさん
2010/04/03(土) 13:02:17C++で書かれたmonotoneみたいなツールよりも、Pythonと一部だけCで書かれた
MercurialやBazaarの方が広く使われているのはなぜ?
いい加減スレチだな、スマソ
0967デフォルトの名無しさん
2010/04/03(土) 13:05:47>>965
「所詮はスクリプト言語」と言っているよね?スクリプティング目的の言語だから、
それ以外では非効率という意味で言ってたんだよね?
だから .>>964 みたいに反論したんだが。
Pythonは汎用言語で、大規模アプリケーション開発にも適しています。
↑これに反論はない?
0968デフォルトの名無しさん
2010/04/03(土) 13:17:37人がいたらダメなの?
だけど世の中には人殺しもロリコンも居るんだ。
「Pythonは大規模なプログラミングに向かないと、お前もそう思え」と
押しつけるぐらいの変態は居るだろうな。
0969デフォルトの名無しさん
2010/04/03(土) 13:21:080970デフォルトの名無しさん
2010/04/03(土) 13:37:28バージョン管理システムくらいなら、どっちもありなんじゃないの。
0971デフォルトの名無しさん
2010/04/03(土) 13:48:40そもそも、C++のコンパイル速度が気になるDelphi使い (>>905) に PyQt を勧められるかどうかっていう話だろ?
>>940 でポトペタが必要
>>941 でポトペタあるよ
>>948 でスロットからスケルトン作れるのかという話に、
>>950 でEricというIDEならできるという回答
なのに、なんで >>949 はいきなり C++ vs Python の話を始めているんだ?
C++ のコンパイル速度が気になる Delphi 使いがQtを使うという前提はどこいった?
0972デフォルトの名無しさん
2010/04/03(土) 13:50:38> もしPythonとCを混ぜるのがC++だけを使うより本当に非効率だとしたら、
自分でやってみて書いてる?そもそもC++が使えなくてCだけだってところで×なんだが。
>>967
> 「所詮はスクリプト言語」と言っているよね?スクリプティング目的の言語だから、
> それ以外では非効率という意味で言ってたんだよね?
規模が大きくなったり、Pythonだけで済まない部分が増えると非効率。
実行速度が重要な場合も向かないと思う。
実際、FFTだの特殊な画像フィルタを含むアプリを書いてるが、こんなのPythonだけじゃ
速度が問題になるし、Cと併用するなんて面倒なだけだ。
逆にPythonの方がC++より効率が良いのは、コンパイルがいらない他に何がある?
> Pythonは汎用言語で、大規模アプリケーション開発にも適しています。
> ↑これに反論はない?
ある。前述の通り。
>>968
> 大規模なプログラミングをするのにC++よりPythonの方が良いなあって
> 人がいたらダメなの?
PyQtじゃDelphi使いの要求には応えられないって話から始ってるんだが。
0973デフォルトの名無しさん
2010/04/03(土) 13:56:33>>949は>>938、>>939のやり取りに対応してる。
でさぁ、結局>>961はいったいドンだけの経験を持って言ってるのさ。答えてない。
0974デフォルトの名無しさん
2010/04/03(土) 13:58:05>自分でやってみて書いてる?そもそもC++が使えなくてCだけだってところで×なんだが。
あぁ、もちろん。
DLLの呼び出しはCだけだけど、拡張モジュールはC++だって使えるぞ。
というか、 PyQt ってそもそも Python の拡張モジュールで C++ の Qt を使っているんだぞ。
個人的には、 PyQt が使っている sip じゃなくて Cython を使う方が好きだけどな。
>Cと併用するなんて面倒なだけだ。
単に拡張モジュール作った経験が無いだけじゃないの?
>逆にPythonの方がC++より効率が良いのは、コンパイルがいらない他に何がある?
例外が使いやすい。何もしなくてもバックトレースが取れる。
参照カウンタ方式のGCが標準でつく。shared_ptrを返すか、参照を受け取るかを悩む必要がない。
コンテナに値を入れるときに、そのまま値を入れてコピーコストや例外安全を気にしたり、
どのスマートポインタを使うかを気にする必要がない。
動的言語だからインタラクティブシェルで動かしながら開発・デバッグができる。
標準ライブラリが豊富。
>PyQtじゃDelphi使いの要求には応えられないって話から始ってるんだが。
だれがそんな事言った?おまえが勝手に言っているだけで、そんな話題は最初から無かったんじゃない?
0975デフォルトの名無しさん
2010/04/03(土) 14:03:36日本語で桶
0976デフォルトの名無しさん
2010/04/03(土) 14:08:12Python, C/C++ 両方でいろんなアプリケーションやライブラリ作ってるよ。
QtCreatorもPyQtも使ってるが、GUIの比率は少ないな。
おまえこそ、どれだけPythonの経験があってPythonはスクリプトにしか向かないって言ってる?
拡張モジュールの知識があんまりないってことは初心者だよな?
実際にPythonでたくさんのアプリケーションが作られていることも知らないんじゃない?
0977デフォルトの名無しさん
2010/04/03(土) 14:08:46>> PyQtじゃDelphi使いの要求には応えられないって話から始ってるんだが。
> だれがそんな事言った?おまえが勝手に言っているだけで、そんな話題は最初から無かったんじゃない?
>>905、>>936、>>938、>>939、>>940
実際、Delphi使っちゃうと、開発環境はQt Creatorレベルじゃないと耐えられないと思う。
そうするとC++で書くことになるけど、コンパイル速度はプリコンパイルヘッダーやjomで
補うってことで良いんじゃないの?
もちろんPyQtでDelphiなみのRAD環境が構築できるのならおkだと思うけど。
0978デフォルトの名無しさん
2010/04/03(土) 16:03:00どこから始まっていようが、流れ着いた話が
「大規模なプログラミングをするのにPythonは向いていないとお前も思え」
じゃあ変態さんだよ。
0979デフォルトの名無しさん
2010/04/03(土) 16:39:32「お前も思え」なんて、直接じゃなくて意味上からもどこにも書いてない。
逆に C++ だけより Python の方が良いと思えと言われてるように感じるが。
0980デフォルトの名無しさん
2010/04/03(土) 17:00:14書きまくってるじゃん。
>Python の方が良いと思えと言われてるように感じるが。
確かにそう言ってる変態さんもいるね。
大規模なプログラムにPythonが適していると思うのも、適していないと思うのも
所詮は「自分にとってはそういうものだ」に過ぎないのにね。
0981デフォルトの名無しさん
2010/04/03(土) 17:37:04Pythonは本格的な大物アプリには向かないなんて的外れな主張をし出しただけ。
言語論争は他のスレでやれ。
0982デフォルトの名無しさん
2010/04/03(土) 17:55:46そんなことを言い出したら、自分の意見を主張することは一切出来なくなってしまう。
>>981
もう一度 >>949 をよく読んで。スクリプティング用途にしか使えないなんて書いてないし、
「画像処理やハードウェア制御を伴うような」と前置きもしてある。Pythonが好きだとも書いている。
これは言語論争じゃない。DelphiからQtへの移行を考えてる人に何を勧めるかの話だ。
0983デフォルトの名無しさん
2010/04/03(土) 17:59:44> Python, C/C++ 両方でいろんなアプリケーションやライブラリ作ってるよ。
> QtCreatorもPyQtも使ってるが、GUIの比率は少ないな。
それでわかった。GUIの比率が少なければそう思うかもね。
> おまえこそ、どれだけPythonの経験があってPythonはスクリプトにしか向かないって言ってる?
> 拡張モジュールの知識があんまりないってことは初心者だよな?
その通りだよ。
拡張モジュールにC++が使えるのはわかったけど、クラスDLLはコンパイラによって互換性がない。
VCとMinGW gccじゃインターフェースが異なる。この辺はどうやって吸収できるの?
> 実際にPythonでたくさんのアプリケーションが作られていることも知らないんじゃない?
さすがにこれは知ってるが。
0984デフォルトの名無しさん
2010/04/03(土) 18:08:08使ったことがあれば、最低でもQt Creator並のRAD環境が必要なのはわかるはず。
DelphiやC++ Builderはもっと便利だ。例えばFileを開くダイアログやポップアップメニュー
はQt Creatorではポトペタできないので、手書きコードで書くしかないが、
DelphiやC++ Builderではその場に表示されない擬似的なGUI部品としてポトペタ
してプロパティの設定とかが可能。
しかもDelphiなら、高速な処理が必要な部分も他の言語で書いたモジュール等に
頼ることなく記述できるし、当然本体と一緒にデバッグもできる。
それなのに「コンパイル速度」という理由だけでPyQtを勧めるのはいかがなものか
と思う。高速処理が必要な部分は他の言語で書いたモジュールに頼らざるを得ない
という弱点もある。
勧めるのなら、最低でもDelphi並みのRAD環境の構築方法も書くべきだ(存在するの
ならだけど)。
0985デフォルトの名無しさん
2010/04/03(土) 18:31:53Pythonについて、
・所詮はスクリプト言語
・仕事をササっとやるとか
・小物ソフトを作るのに向いてる
なんて言ってるわけですが、これってあなたの主観に過ぎんのだわ。
大物にだって向いているよと考える人がいても良いわけだし、一般論みたいに
言うのはよろしくないですな。
あなたが「Pythonは大物には向いていない」と考えるのは自由ですが、
他人が「Pythonは大物には向いている」と考えることを否定する必要は何もありません。
Delphiからの乗り換えを踏まえるとしても、Delphiってのはポトペタだけが魅力なんですか?
「言語記述が好きだ」「C++は大嫌いだから」という人は想定外ですか?
それにQtもCreatorがなければダメってことはありませんよ。
ところで「Pythonが好きだとも」は何かの弁解になるんですか?
0986デフォルトの名無しさん
2010/04/03(土) 18:36:23画像処理のコードを修正したときに、GUIから操作しないとテストできないみたいなバカな設計はしないよな?
分離して設計するなら、一つの言語で書く必要がどこにある?
C++ってのは、ヘッダファイルとソースファイルに分割して書かないといけなかったり、
オブジェクトを値のままコンテナに突っ込んだらスライシングやコピーコストやコピーコンストラクタの
例外安全性を気にしないといけなかったり、だからってshared_ptr<>をコンテナに突っ込むと
演算子オーバーロードがオジャンになるからアルゴリズムを使うために述語関数を用意しないと
いけなくなったり、それを避けるために pImpl を使ったら継承が面倒になったりと、
アプリケーションのロジックを書くのに、C++ならではの余計な事を大量に考えながらコードを書かないと
いけない言語だ。
Pythonの方がアプリケーションのロジックに集中して書けるし、あとから他の人が読んでも理解するのが速い。
RADで解決できるのなんてほんの表面の部分だけ。
あと、9割以上のアプリケーションでは、自分で拡張モジュールを書かなくても既存のライブラリで問題を解決できる。
0987デフォルトの名無しさん
2010/04/03(土) 18:40:38自分が受容できないからといってC++Builderを引き合いにしてキレるのはいかがなものか。
0988デフォルトの名無しさん
2010/04/03(土) 18:45:22この人、LinuxとかMacでもこんなことするんか。
Windows専用だったらC++ Builder使ってればいいのに。
0989デフォルトの名無しさん
2010/04/03(土) 19:08:34> Delphiからの乗り換えを踏まえるとしても、Delphiってのはポトペタだけが魅力なんですか?
ほとんどそうだと思うよ。言語的には潰しが利かない(他にごく一部の例外を除いて開発環境が
ない)から、Delphiを選択する一番の理由は優れたRAD環境にあると思う。
> それにQtもCreatorがなければダメってことはありませんよ。
あの便利さを知ってしまったらDelphi使いがQt CreatorなしでQtを受け入れるのは困難
なことだろうね。
使ってみなければ理解できないと思うよ。
0990デフォルトの名無しさん
2010/04/03(土) 19:13:02> 普通に考えて、GUI部分と、アプリケーションロジックと、画像処理みたいなルーチンは分離して設計するだろ?
> 画像処理のコードを修正したときに、GUIから操作しないとテストできないみたいなバカな設計はしないよな?
> 分離して設計するなら、一つの言語で書く必要がどこにある?
組み合わせてみて初めてわかるバグとか問題点がよくあるのはわかるよね?
それとロジック部や個別機能のルーチンのテストも、Delphiだったらテストプログラムを
ササっと(ショボイGUIで構わないから)書けるから、一つの言語ですべてを完結させられる。
0991デフォルトの名無しさん
2010/04/03(土) 19:20:00> Windows専用だったらC++ Builder使ってればいいのに。
Delphi/C++Builderは最近品質低下が激しいし、開発元が部門の分離やら買収やらで
弱体化してるから、他へ逃げようとしてる人は多いと思う。俺もその一人。>>905もそうだと
思う。
0992デフォルトの名無しさん
2010/04/03(土) 19:21:55ttp://pc12.2ch.net/test/read.cgi/tech/1269010332/l50
0993デフォルトの名無しさん
2010/04/03(土) 19:33:49RADの完成度に比べたらアプリケーションの生産性に大した影響がないの?
0994デフォルトの名無しさん
2010/04/03(土) 19:38:13Python脳になるとコード書き換え、コンパイル、再実行なしにプログラムを実行したまま
テスト、デバッグ、書き換えができない環境がイヤになる。
C++脳になると、ヘッダファイルを書いたりテンプレートを書いたりする作業が
アプリケーション構築には本来不要な余計な作業だという認識が無くなる。
0995デフォルトの名無しさん
2010/04/03(土) 19:47:28あれを経験したらキミがしてくれることには満足できないね、ですか。
やれやれ。
>>989みたいな
「Delphi/Builderではできたからxxでもこうできなくてはならない」
なんて価値観の押しつけってバカ丸出しだと思う。しかもエンバカ難民。
国を捨てて流れ着いた難民が、「元の国ではこんなサービスがあったんだから
この国でも我々は同じサービスを受ける権利がある」なんて主張したらどう思う?
帰れよ元の国に、って思うんじゃない?
エンバカ難民の傾向ってこういうのなのかなあ。
要は「RADでない開発環境は使えねえ。他人にも薦められないし他人に薦める奴も許せねえ」って感じ?
これがあっての上での>>949なのかなあ。だとしたらすごく分かりやすい。
俺、Delphiは昔使ってたよ。あれはあれ、これはこれだろ。
0996デフォルトの名無しさん
2010/04/03(土) 20:05:16PySideの開発に乗り出した。
それくらい、Qtの開発元にとってもPythonは重要な言語。
0997デフォルトの名無しさん
2010/04/03(土) 20:46:370998デフォルトの名無しさん
2010/04/03(土) 20:48:160999デフォルトの名無しさん
2010/04/03(土) 20:49:221000デフォルトの名無しさん
2010/04/03(土) 20:50:0410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。