1read 100read
2012年1月1期プログラム31: 【RAD統合環境】 Qt 総合スレ 12 【Win/Mac/Linux】 (757)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
・ 次のスレ
32: 推薦図書/必読書のためのスレッド 65 (729)
33: 【入門】Common Lisp その8【質問よろず】 (738)
34: Eclipse統合M32【Java/C++/Ruby/Python/Perl】 (208)
35: 【SICP】計算機プログラムの構造と解釈 Part2 (697)
【RAD統合環境】 Qt 総合スレ 12 【Win/Mac/Linux】
- 1 :11/08/19 〜 最終レス :12/01/09
- Qt(キュート)は C++ ベースのフレームワーク&RAD開発環境です。
ライブラリの機能は、フォーム、ボタンなどの各種ウィジェットからネットワーク、マルチスレッド、
グラフィックス(OpenGL)や各種コンテナ、XMLパーサー、組み込み JavaScript など、非常に多岐に渡ります。
公式の統合開発環境「Qt Creator IDE」を使えば、クロスプラットフォーム対応のRAD開発が可能です。
また、EclipseやVisual Studio上で開発したい人のためのアドインも用意されています。
■主な対応プラットフォーム(デスクトップ用途の場合)
Windows XP, Vista, 7
Mac OS X 10.4, 10.5, 10.6
Linux
■ライセンス
・オープンソース版(Open-source version)
LGPL 2.1 または GPL 3.0 のうちどちらかを利用者が選べます。
LGPL を選んだ場合はソースコード非公開のままでの商用利用が可能です(いくつか制限あり)。
※正確には通常「LGPL+商用利用向きの例外条項」を選ぶことにな7ります(Qtインストール先の「LGPL_EXCEPTION.txt」を参照)。
ちなみにGPLでも商用利用が不可能というわけではありません、念のため。
・商用版(Commercial version)
こっちはNokia社か日本の代理店(SRA社)とライセンス契約(年間30万くらい?)を結んで使います
■Qt を使って作られたソフト例
KDE、Adobe Photoshop Elements、Google Earth、Skype、DAZ Studio など
■前スレ
【RAD統合環境】 Qt 総合スレ 11 【Win/Mac/Linux】
http://hibari.2ch.net/test/read.cgi/tech/1306071448/
- 2 :
- ■リンク
・Qt Development Frameworks (Nokia社のQt公式サイト)
http://qt.nokia.com/title-jp
・SRA社(日本の代理店)の日本語で読める Qt 関連ドキュメント
http://www.sra.co.jp/qt/relation/index.html
・Qt Users Forum Japan
http://qtusersforum.s2.zmx.jp/forum/index.php
■ライセンス関連まとめ
各ライセンスでの自作アプリのソース公開/頒布
Qtのライセンス アプリのライセンス Qtの頒布/(変更部分のソース公開)
GPL GPL(ソース公開必須) 必須
LGPL 任意(ソース公開不要) 必須
商用 任意(ソース公開不要) 不要
*: LGPLは動的リンク時
実際には他にも条件(リバースエンジニアリング関係とか)あるので、
きちんとライセンスの条文を読むこと。
- 3 :
- Windows ユーザー向け Tips
・プロジェクトのパスに日本語を入れちゃダメ
・日本語のソースコードは、MinGW版ならUTF-8、VC版ならSystem(Shift-JIS)
プロジェクト作成後に「プロジェクト」タブの「エディタの設定」→「デフォルトの文字コード」
・デバッグ出力などが文字化けする場合、プログラムの最初で文字コード変換設定をする
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); //ソースの文字コードを直接指定("utf-8"や"Shift-JIS")
// QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); //システムロケールの文字コードを指定
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //翻訳用マクロ tr()の文字コード
qDebug() << "うまく表示できた?";
・MinGW版配布時は mingwm10.dll も一緒に入れる(public domain。配布上の制限はない)
- 4 :
- ■インストール方法:MinGW版Qt & Qt Creator
(1)「Qt SDK for Windows」をインストール
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」をインストール
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 を使用する」のチェックを外してリビルド
- 5 :
- ■Qt Creator 日本語化プロジェクト
Qt Creator を日本語化するプロジェクトです(非公式)
http://qt-creator-jp.sourceforge.jp/
■Python バインディング
PyQt4(GPL。定番)
http://www.riverbankcomputing.co.uk/software/pyqt/intro
PySide(LGPL。)
http://www.pyside.org/downloads/
ごちゃごちゃ言わず、QtQuickも使ってみてください(><;)
では、どうぞ!
- 6 :
- >ごちゃごちゃ言わず、QtQuickも使ってみてください(><;)
ハ,,ハ
((⊂ ヽ ( ゚ω゚ ) / ⊃))
| L | '⌒V /
ヽ,_,/ ヽ_./ お断りします
__,,/,, i お断りします
( _ |
\\_  ̄`'\ \
ヽ ) > )
(_/´ / /
( ヽ
ヽ_)
- 7 :
- SDKってサイズでかすぎない?
あんまりデカイの入れたくないから極力削りたいんだけど
(HDD増設しろというのは横に置いておいて)
Symbianは興味も無いから入れないとして
Qt Creator上で開発するとすれば、Simulatorは入れなくて良いのかな?
- 8 :
- でかいよね
Qt Quickとか
別プロジェクトにすればいいのに
- 9 :
- >>7
Simulatorも入れなくてよいですよ。
SDKのアップデータが煩わしいので、Qt CreatorとQtを入れるようにしています。
- 10 :
- >>9
Qt CreatorとQtライブラリを個別に落としてインストールするだけで良いのかな?
- 11 :
- >>10
そうしているよ。
- 12 :
- SDKサイズうざいけど手動でごちゃごちゃやるのも面倒だから全部入れてるわ俺
- 13 :
- その為のSDKだから間違っちゃいないよ
- 14 :
- 前スレ最後の妙に味わいのあるAAが気になる
- 15 :
- SDKはDefaultは使わずに、CustomでAPIs、Qt Moblility(デスクトップ用にビルドしたものは入ってない)、Qt Simulator Documentation、Symbian Documentation、Simulator、Device Filesを外して、
Qt DesignerとQt Linguistを追加するとサイズも小さくてインストールも早くてよい。
- 16 :
- >>3
#include <QTextCodec>
もテンプレに入れておきなよ。
- 17 :
- 【CodeGear】Embarcaderoオッチャ その25【Delphi】
http://hibari.2ch.net/test/read.cgi/tech/1310977286/
- 18 :
- Qt for Google Native Client Preview
http://labs.qt.nokia.com/2010/06/25/qt-for-google-native-client-preview/
っしゃ。これでブラウザでも勝てる?
- 19 :
- それ1年以上前の記事だけど今どうなってんの?
- 20 :
- Windows で、ある拡張子を Qt で作成したアプリに関連付けし、
エクスプローラで関連付けされたファイルをダブルクリックすると、
アプリが起動し、main(int argc, char *argv[]) がコールされます。
このとき argv[] に入っているファイル名の文字エンコーディングは何なのでしょうか?
- 21 :
- >>20
そこ迄動いているなら、argv[]の中を見てみれば分かる。
- 22 :
- >>20
5スレ前のログだが
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); //ソースの文字コードを指定("utf-8"や"Shift-JIS")
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //同上
QString str = argv[1]; // 添え字チェックはとりあえず無視
qDebug() << str; //NG
str = app.arguments()[1];
qDebug() << str; //OK
str = QString::fromLocal8Bit(argv[1]);
qDebug() << str; //OK
return 0;
}
- 23 :
- Qt初心者なんですが、ぱっと触ってみた感じでは、
GUIはデザインツール使わずに、ゴリゴリ書いたほうが分りやすくないですか?
みなさんはどうやって書いてます?
現在、Windows用とMac用で同一アプリ作っているんですが、
Qtだとコードが一本化されそうなんで期待大です。
- 24 :
- >>23
俺は、QtであろうとJavaであろうと秀丸エディタ+コマンドラインコンパイル
- 25 :
- デザイナは使いこなせないのでコード書く派です。
- 26 :
- VisualStudioからデザイナが起動できないから
全部コードで書いてる
- 27 :
- >>23
デザインツール使った方が良いよ
- 28 :
- ( ゚ω^ )b
- 29 :
- なんやそのツラ、腹立つなあ
- 30 :
- >>23
簡単なGUIならともかく,パーツの数がある程度増えてレイアウトも複雑に
なるのならデザインツール使ってWYSIWYGでやった方が良い。
どうせ紙にポンチ絵描くくらいなら,デザインツールで直接作ってしまった
方が手っ取り早いよ。
- 31 :
- 慣れれば楽だよ。
- 32 :
- >>24
漢だな。
- 33 :
- リダイレクト一発。修正はしない。
- 34 :
- 秀丸からVisualStudioを使うマクロがあったな
- 35 :
- ツールバーにいろいろ追加していると右のほうにはみ出てしまうんだが多段表示にできないの?
起動後にいちいちドラッグで多段にするのめんどい
- 36 :
- 次期Microsoft OfficeのVBAはJavaScriptになるそうです。
- 37 :
- JScriptじゃなくて?w
- 38 :
- 帳票ツールってどうしてる?
- 39 :
- 帳票こそVBAで書けよ
- 40 :
- なるほど。
- 41 :
- 座標や幅の設定ってgeometry 使わないとできないのでしょうか?
普通に
widget->x = 100; とか
widget->setX(100); みたいなのができるかと思っていたのですが、
それらしい関数がわかりませんでした。
固定的な幅と高さの設定は分かったのですが。。。
この座標等を「この設定にしたい」という場合は、
現在の geometryを取得
必要な場所だけ上書きして、残りは前の設定を入力。
geometory を 再設定
という流れが通常という認識でよろしいですか?
- 42 :
- >>41
move、resize
- 43 :
- >>42
なるほど。ありがとうございます。
- 44 :
- PySideはいまだにバグだらけ。
- 45 :
- これ?既出かな?
Monkey Studio (MkS) - C++/Qt 4 用クロスプラットフォーム統合開発環境
ttp://www.monkeystudio.org/
- 46 :
- Qt 4.7.4
Qt Creator 2.3
- 47 :
- メンテナンスツールはアップデートして益々使いづらくなったような
- 48 :
- Qtがオワコンになる日がこようとは
- 49 :
- Qt Creatorとどう違うのかがFAQにすら書いてないね。
うーん。
- 50 :
- アホ毛
- 51 :
- >>46
4.7系最終版だな
ttp://sourceforge.jp/magazine/11/09/02/0332244
>>48
別に終わってない。
>>48
ざっと Features ページを読む限り、汎用IDEにQt 関連機能を追加したものってところか。
- 52 :
- >>47
SDKはもう少し使いやすい構成にしてメンテナンスツールをまともにしないといけない。
- 53 :
- プロジェクトの中で使われている、フォント名を調べるには
- 54 :
- はい
- 55 :
- >>44
その上にこの窮状
>the Nokia MeeGo funding for PySide is slated to end after this year,
>and I have also failed to find a new sponsor for the project within Nokia.
http://www.pyside.org/2011/08/pyside-project-future/
- 56 :
- PyQtがあるから問題なし。
- 57 :
- Qt Creatorをバージョンアップしたらいつの間にか
「Ctrl+←→」の移動範囲が単語単位から大文字区切りになったり
文字列選択中にカッコを押したら選択範囲にカッコが付けられたりと
使用変更されてね?
はっきり言って使いにくいんだけど
- 58 :
- ソースコードを読めば云々
- 59 :
- 「Ctrl+←→」は、オプションのキーボードでキーボードショートカット定義。
使いにくい方については、オープンソースなのだから文句は言わずに、オプションで切換えられるようにするパッチを作ってマージリクエストすればよい。
- 60 :
- というか
どういう理由で今まで使いやすかったのを
変更したのかね
- 61 :
- 「Ctrl+←→」はキャメルの方が使いやすいから。
カッコの方は機能追加だから。選択範囲をカッコにしたければ消してからカッコを入れればよい。
- 62 :
- 今でより使いやすくなった。
- 63 :
- IntelがMeeGo開発から手を引くらしい。
- 64 :
- QtはQtだしあんま関係ないよデスクトップ用途では
今まで通り進んでゆくだろうし…どっちかっていうと
モバイルのほうが特殊な環境なんよ
- 65 :
- QAbstractItemModelの実装例が載ってるサイトしりませんか?
- 66 :
- >>65
本家のhttp://doc.qt.nokia.com/latest/model-view-programming.html#model-subclassing-reference に実装するときに満たすべき要件のガイドみたいなのがある。
実装例は上のページから辿れる所にある以下の2つとか。pdfの方は23ページ辺り(紙面上の表記は239ページ)
http://doc.qt.nokia.com/latest/itemviews-simpletreemodel.html
http://ptgmedia.pearsoncmg.com/images/0131872494/samplechapter/blanchette_ch10.pdf
- 67 :
- >>64
NokiaにいるQtの開発者はNokiaの携帯が売れるから食っていけてるいる訳だ。
商用版はDigiaに売ってしまっているから、Digiaがいくばくか払ってはいるかもしれないが、直接的な収入はまったくない。
QtがNokiaの携帯に使われなくなっているのに、NokiaがQtの開発者を食わせていく価値があるのだろうか。まったくない。
NokiaからIntelに行った開発者もいるが、IntelがMeeGoから手を引けば存在価値はなくなる。
これで、今まで通りにデスクトップ用途で進めるか。進める訳がない。
NokiaにQtを売ったのがそもそもの間違いなのだ。
- 68 :
- またいつものアスペか
- 69 :
- >>65
オープンなトレーニング飼料にスライドとサンプルコードがあるよ。
http://qt.nokia.com/learning/online/training/materials/essentials_-_widget_edition
- 70 :
- >>68
また、いつものどカスか。
- 71 :
- >>66
>>69
ありがとうございます
- 72 :
- >オープンなトレーニング飼料に
一瞬畜産業でもはじまったんかと思ったわw
- 73 :
- こりゃ、Gtk+の時代・・・ あるで!
- 74 :
- GTK+と共に廃れる時代。
- 75 :
- GTKは糞
- 76 :
- こりゃ、Flkの時代・・・ あるだっちゃ!
- 77 :
- 以下マイナーGUIツールキット知ってる自慢が続きます・・・
- 78 :
- FLTKはスレ立ってないね
ストラウなんとかさんの本で出てたが
- 79 :
- >>77
はい。マイナーね。
寒天。その実力は!? - Agar(あがー)
ttp://libagar.org/
酸菌は入ってません。 - Lgi (えるじー)
ttp://www.memecode.com/
動物園。今更 System 7対応。お黄泉帰りOldMacの皆様 - Zoolib (ずららいぶ)
ttp/www.zoolib.org/
- 80 :
- Qtのソースコードってクラス設計の勉強になります?
- 81 :
- なります
- 82 :
- InterViews復活はまだか?
- 83 :
- Qtのソースは巨大すぎて設計の勉強にならん
- 84 :
- クラスの設計の勉強なら,ソースコードは要らないでしょ?
ドキュメントだけで充分わかる。
- 85 :
- Qt4.7のQProcess使って、stdoutを読んで、それに応じてstdinに書きたいのだけど、
readyReadStandardOutput()シグナルが出てくれなくて困ってる。
(stdoutがバッファリングされてるのかな?)
1行ごとか、stdoutがflushされるごとに発してくれたら、
あるいは、Qt側からflushさせることができたらありがたいのだけど。
いい方法ないですか?
startのOpenMode引数に QIODevice::ReadWrite | QIODevice::Text や QIODevice::ReadWrite | QIODevice::Unbuffered 指定はやってみたけど、変わらなかった。
ぐぐったらQt3時代のwhile(proc->canReadLineStandardOut()){}みたいなのが出てきたから
proc->setReadChannnel(QProcess::StandardOutput);
while(proc->canReadLine()){}やってみたが、canReadLine()がfalse返すだけだった。
ためしにシグナルきてなくてもreadAllStandardOutput()呼び出したが、何もこなかった。
waitForReadyRead()呼び出してみたが、処理が帰ってこなくなるだけだった。
- 86 :
- 複数のQTimerクラスを使って処理を分けたいのですが
timeoutが発生したQTimerが、どのQTimerなのか判別できなくて困っています。
A,B,C,Dという4つのQTimerクラスを生成して、それぞれstartを実行させると
バラバラにtimeoutが呼び出されるんですが、その際にどのQTimerなのかを
判定するにはどうしたらよいでしょうか。
- 87 :
- sender()でわからない?
- 88 :
- >>86
4つのタイマーのスロットを分けるか、スロットを共通にするなら>>87の言うように
sender()で識別可能。
- 89 :
- >>87,88
ありがとうございます。QTimerは動的に生成するのでスロットは共通を
考えていました。sender()の存在は知りませんでした。
timeout時のスロットをこんな感じで実装してみます。
void a::slot(){
QTimer* timer;
timer = qobject_cast<QTimer*>(QObject;;sender());
(略)
}
取得したtimerと自分で持ってるQTimerを比較して一致したら特定
とできそうです。
- 90 :
- 比較だけならqobject_castしなくてもよいですよ。
- 91 :
- >>90
あ、そうか、アドレス比較ならキャストしなくてもいいのか。
すいません、どうもありがとうございます。
- 92 :
- アドレス比較でもいけるんやろけど、お行儀的には QTimer::timerId() を使って比較する方が賢明な
気がしないでもない。
- 93 :
- QTimer::timerId()は、setInterval()を呼び出すと変わってしまうからアドレス比較をしなければならない。
スレッドを跨がっていたら、ドキュメントにスレッドセーフと書かれてなくてもtimerId()ならよいけれど、
他のメソッドはスレッドセーフでないから注意。
- 94 :
- そういうことなら、QObject::property() の方がいいかも。
- 95 :
- アドレス比較でいいと思うけど、お行儀気にするならQSignalMapperでも使えば?
>>85
UNIXかMinGWなら内部でPIPE使ってるから、
./a.out |cat みたいにしても何も表示されないなら無理。
Windowsは知らん。
- 96 :
- だれか↓読んだ人いますか?
http://www.amazon.co.jp/Advanced-Qt-Programming-Creating-Development/dp/0321635906
・・・Advanced Qt
- 97 :
- カスタマーレビュー見ればいいだろ
http://www.amazon.com/Advanced-Qt-Programming-Creating-Development/product-reviews/0321635906/ref=dp_top_cm_cr_acr_txt?ie=UTF8&showViewpoints=1
- 98 :
- それ日本語版が出るんじゃなかった?
QtWebkit、
Model/View(QTreeView、QListView、QTableView)、
QTextEdit、
QGraphicsView
あたりを知りたい人向け
- 99 :
- すみません、質問です。
MFC CDCを使って様々な図形を描画している、ソースコードを、
Qtのソースコードへと移植したいんですが、どういった方法がいいでしょうか?
自分でラッパーを書こうかと思ったのですが、大変そうなので、もっと効率的な方法があればと
思って質問させて頂きました。
(仮想マシンのWindows上で動かす以外の案でお願いします。
Qt/MFC Migration Frameworkというのもあるようですが、CDCは関係なさそうなので…
動かすだけなら、Wineというのを使ったほうがいいのでしょうか(?))
何か的はずれなことを書いているかもしれませんが、
アドバイスのほどよろしくお願いします。
- 100read 1read
- 1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
・ 次のスレ
32: 推薦図書/必読書のためのスレッド 65 (729)
33: 【入門】Common Lisp その8【質問よろず】 (738)
34: Eclipse統合M32【Java/C++/Ruby/Python/Perl】 (208)
35: 【SICP】計算機プログラムの構造と解釈 Part2 (697)
-