1read 100read
2013年06月プログラム57: 【RAD統合環境】 Qt 総合スレ 15 【Win/Mac/Linux】 (136) TOP カテ一覧 スレ一覧 2ch元 削除依頼
ネット上でプログラムを共同開発できるか? (134)
マルチスレッドプログラミング相談室 その9 (185)
【GNU】スクリプト言語 Guile【scheme】 (105)
VBで作られた有名なアプリって何? (165)
VBで作られた有名なアプリって何? (165)
【消しゴム】MONOを使ってみるスレ4【じゃない】 (461)

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


1 :2013/04/19 〜 最終レス :2013/06/22
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)
 こっちはDigia社か日本の代理店(SRA社)とライセンス契約(年間30万くらい?)を結んで使います
■Qt を使って作られたソフト例
KDE、Maya、Adobe Photoshop Elements、Google Earth、Skype、DAZ Studio
MotionBuilder、RealFlow、Nuke、LuxRender、Mathematica、Kindle、VirtualBox など
■前スレ
【RAD統合環境】 Qt 総合スレ 14 【Win/Mac/Linux】
http://toro.2ch.net/test/read.cgi/tech/1344830647/

2 :
■リンク
・Qt Project
 http://qt-project.org/
・Qtユーザー会
 http://planet.qt-users.jp/
・Qt Users Forum Japan
 http://qtusersforum.s2.zmx.jp/forum/index.php
・Qt Creator を日本語化するプロジェクト(非公式)
 http://qt-creator-jp.sourceforge.jp/
・PyQt4(GPL。定番)
 http://www.riverbankcomputing.co.uk/software/pyqt/intro
・PySide(LGPL。)
 http://www.pyside.org/downloads/

■ライセンス関連まとめ
各ライセンスでの自作アプリのソース公開/頒布
Qtのライセンス   アプリのライセンス     Qtの頒布/(変更部分のソース公開)
GPL           GPL(ソース公開必須)      必須
LGPL         任意(ソース公開不要)      必須
商用          任意(ソース公開不要)      不要
*: LGPLは動的リンク時
実際には他にも条件(リバースエンジニアリング関係とか)あるので、
きちんとライセンスの条文を読むこと。

3 :
Windows ユーザー向け Tips
・プロジェクトのパスに日本語を入れちゃダメ
・日本語のソースコードはUTF8 BOMで保存するとMinGW版でもVC版でもコンパイルできる
 プロジェクト作成後に「プロジェクト」タブの「エディタの設定」→「デフォルトの文字コード」
・デバッグ出力などが文字化けする場合、プログラムの最初で文字コード変換設定をする
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 :
Qt 解説書
■ 入門 Qt 4 プログラミング
http://www.amazon.co.jp/dp/487311344X/
原著第二版(英語PDF、公開リンク)
http://www.cuteqt.com/blog/wp-content/uploads/2009/06/c-gui-programming-with-qt-4-2ndedition.pdf
■ 実践 Qt 4プログラミング
http://www.amazon.co.jp/dp/4873115078/
■ Qtプログラミング入門―使いやすいフレームワークを基礎から解説
http://www.amazon.co.jp/dp/4777516504/
■ Qtで簡単 GUIプログラミング―Qt入門書を読む前に読む「入門書」
http://www.amazon.co.jp/dp/4877832211/
ごちゃごちゃ言わず、QtQuickも使ってみてください(><;)

5 :
>>1
乙です

6 :
例えばボタンのclick()でどっかのウィジェットに線描画したいときはどう書けばいい? QPainterで書こうとしたんだけど、paintEventの中に書かないと描いてくれなくて困ってる。

7 :
>>1
どっかのウィジェットのサブクラスを作ってpaintEventを再実装。

8 :
>>7
ありがとう。やっぱしpaintEventに書くことになるんか

9 :
QImageかQPixmapをバッファとしてウィジェットのメンバに追加して、
clickでバッファに描画、paintEventでバッファをウィジェットに描画でおk

10 :
QStringListのitemの中にコマンド名を入れたいが、英文でも文字化けする。
qDebug()ではまともに表示されるのだが。うむわからん。
for (int i=0;i<=10;i++){
SubMenu3.addAction(QString(item.at(i)).toAscii());
}

11 :
自己解決。itemのヘッダファイルの宣言がQStringになってた。

12 :
winで5.0.2 64bitビルドしてみた人いる?
途中で失敗するんだけど俺だけ?

13 :
winで5.0.2 64bitビルドしてみた人いる?
途中で失敗するんだけど俺だけ?

14 :
msvc2010だけど、
32,x64,shared,staticのビルド成功している

15 :
>>14
ありがとう
http://qt-project.org/wiki/Building_Qt_5_from_Git
これの通りにやれば大丈夫なんだよね?
なにか気をつけることってあるかな?

16 :
てか5.0.2は64bit版置いてあるけど、知っててあえてビルドしてるのかな
俺はopengl版でもQtGUIとglewが同時にインクルードできないことに気づいてまた4.8.4に戻った

17 :
>>16
うん、32・64bit両方欲しいの

18 :
あー、win 7以前で vs2012が入れられないとかの事情か
雑談ごめん

19 :
あらためて>>15読んだ。ビルドできたりできなかったりは
jomの影響もあるんだな。インストールしたの忘れてたよ。
MSVC2010のばあい、5.0.2はSDKのインストールなしでビルドできた。

20 :
はじめて4.8.4のビルド成功した記念
Windows7, MSVC2010, 64bit
4.8.4 jomあると失敗、SDK必要
5.0.2 jomなし、SDK不要

21 :
Qtを自力でビルドできるなんて凄いですね

22 :
Qt様〜

23 :
Qtサイキョ

24 :
Qtおよび、C++初心者です。
下記URLのサンプルコードを使用して、TCP/IPでの相互通信を行いたいのですが、
ビルドに失敗してしまいます。
memotiyou.blogspot.jp/2012/02/qt-c-tcp_3936.html
「mainwindow.h」に「#include <QTcpServer>」を追加して、
「エラー: 'QTcpServer' does not name a type」は解決でしたのですが、
「エラー: 'Request' does not name a type」の解決方法が分かりません。
どこを直せば良いでしょうか?ご教示願います。
環境は、Windows 7 64Bit。Qtのバージョンは5.0.2です。
よろしくお願い致します。

25 :
class Request;
でも追加しておけば。。

26 :
よくわからんけどURLが開けなかった

27 :
>また.proファイルに QT += network を必ず追加してください。
これちゃんとやった?

28 :
皆さん、レスありがとうございます。
>>25 今、開発環境が手元にないのですが、その方法で通りましたか?
>>26 ttp://memotiyou.blogspot.jp/2012/02/qt-c-tcp_3936.html
です。 リンク規制が掛かってたので、省略しました。
>>27 QT += networkは追加済みですが、前述のエラーが発生します。
話題がそれますが、いくつかサンプルコードを試した中で、
Qt4.8系とQt5.0系で互換性が無いものがありました。
バージョンとしては、4.8系がメジャーなのでしょうか?

29 :
5は怖いから4.8使ってる

30 :
>>28
メジャーバージョンが上がるとソースコード互換性はなくなります。
クラスなくなったのを除けば、たいていは両方で動くように書き分けるのは難しくはないです。
でもウィジェットは5.0は不安定で動きが間違っているのが目立つので、4.8の方が安心して使えます。
QMLを使うなら5の方がよいけれど、ウィジェットを使うなら5.2くらいになるまでは4.8の方がよいでしょうね。

31 :
>>24
Qt4でビルドできるようにしてからQt5でビルドできるようにしてみました。
QT += widgetsを.proに追加するだけでQt5でビルドできます。

32 :
A

33 :
レスありがとうございます。
>>30
やはり互換性が無いのですね...
開発環境を4.8系、5.0系の両方を入れ、動作確認できるようにしたいと思います。
また、実際にアプリケーションを作成する際にはQML、ウィジェットのどちらを採用するかによって
バージョンを使い分けたいと思います。
>>31
取り急ぎ、Qt5.0.2での確認ですが、QT += widgetsを追加しても、
Requestでのエラーは回避できませんでした。
>Qt4でビルドできるようにしてからQt5でビルドできるようにしてみました。
というのは、他にも修正が必要なのでしょうか?
可能であれば、プロジェクトをUpして頂けると幸いです。

34 :
>>33
Requestは自分で作るんだよ
リンク先の最初の方に載ってるじゃないか

35 :
>>33
ウィジェットは、ソースコードで#ifdefで書き分けて、.proもバージョンで書き分ければ、
ほとんどをQt4とQt5の両方をひとつのソースコードにできます。
QMLはそういう書き分けがまったくできないという欠点があります。
importのバージン指定もまるっきり役に立たない。

36 :
レスありがとうございます。
度々、申し訳ないです。
>>34
Requestクラスは作成してありますが、ビルド時にmainwindow.hでエラーが出ます。
当方のプロジェクトファイルをUpしました。
ttp://www4.puny.jp/uploader2/download/1367585696.zip
Pass:Qt
>>35
解説ありがとうございます。QMLにはそういったデメリットがあるのですね...
私はQtおよびC++での開発自体、初心者ですので、QMLの使用は
今後の課題にしたいと思います。

37 :
>>36
mainwindow.hでrequest.hをインクルードすればビルドできますよ。
QML使うならQt5を使った方がいいから書き分けられなくても実際にはデメリットにならないです。

38 :
>>37
ありがとうございます!
ビルドおよび動作確認できました(Qt5.0.2)
大変、お騒がせいたしました。
ひとまず開発は5.0系で行い、サンプルコードを試す環境として4.8系も用意しておきたいと思います。

39 :
QTで作ったウィンドウをリサイズして、その終了時にイベント拾いたいのだけど、
なんかいい方法ないかな?
リサイズ途中で毎回イベント拾うと処理が重くて…。

40 :
tes

41 :
マウスドラッグだったらボタンを離した(押してない)時だけ処理するとか

42 :
C++及びQt初心者ですが、
QGraphicsItemで円を描画できるようなものはありますか?

43 :
>>42
QGraphicsEllipseItem

44 :
>>43
ありがとうございます。

45 :
QtおよびLinux初心者です。
Qt5.0でタッチパネルで操作するアプリケーション(ウィジェット)を作成したいのですが、
Qt5.0に対応したQt/Embeddedはリリースされていないのでしょうか?
LinuxがインストールされたBOX PCに4.3インチLCDを接続し、アプリケーションを表示します。
知識が乏しく申し訳ないのですが、Qt/Embeddedは開発環境とターゲットの
どちらに必要なものなのでしょうか?
宜しくお願い致します。

46 :
Macで日本語入力が可能になりそう!Windows爆死www Linux憤死wwwwwwwwwwwwwwwww
http://engawa.2ch.net/test/read.cgi/poverty/1368116873/

47 :
>>45
組み込みよく知らないけど、誰もレスしないのでとりあえず
・Qt for Embedded linux の Qt5版はいつリリースされるのか
他のプラットフォームからwebkit外して自分でビルドしてって書いてあった
http://qt-project.org/forums/viewthread/23007
・とりあえずここ読まないと始まらないと思われ
http://qt-project.org/doc/qt-4.8/qt-embedded-linux.html

48 :
>>45
Qt5.0そのままで、クロス環境でビルドすれば、組込みLinuxで使えてタッチパネルを使えます。
Qt5ではQt/Embeddedに分ける必要がないので、Qt5に対応したQt/Embeddedはリリースされません。
マルチタッチもというならば、Qt側ドライバを作る必要があることが多いです。
WebKit外す必要はありません。

49 :
>>47
>とりあえずここ読まないと始まらないと思われ
Qt5はそこを読んでも役に立たないですよ。

50 :
>>49
あ、そうなんですかども
Qt5では専用の仕組み(QWSサーバがどうとか?)がなくなったってことすかね

51 :
>>50
なくてよいようになりました。

52 :
>>47-51
遅くなりましたが、みなさんレスありがとうございます。
自分で調べた限りでは「Qt5.0でのEmbedded」に関する情報が得られなかったので、大変参考になりました。
マルチタッチは必要としておりませんので、特に気にせずクロス環境でビルドしたいと思います。
テストできる環境が整い次第、実験したいと思います。
ありがとうございました!

53 :
Qfileでファイルの読み込みをしているけれど、
Linuxで動くコードがOSX(山ライオン)に持ってゆくとファイルが読めず、アプリが強制終了する。
そんな目にあわれた方いませんか。
俺のバグかQtのバグかわからない。Qtは4.8.5から5.02まで試したが同じ挙動ですた。

54 :
簡単な再現コードでもあれば誰か反応すると思うけどそれだけじゃなんとも

55 :
Qt creator 2.7.0でc++ソース内で日本語を使用するとビルドが通りません。
utf8では駄目なんでしょうか?

56 :
コンパイラはなに使ってんだよカス

57 :
Qt4か5かも書けよカス

58 :
ググれよカス

59 :
>>54
こんなソースです。
QFile Data("Data.bin"); //set data file
Data.open(QIODevice::ReadOnly); //file open
HexData = Data.readAll(); //Read all data to Hex
Data.close();
Ubuntu Linux では動きますたがOSXだとファイルが読み出せないようです。

60 :
>>59
openの返り値は?

61 :
OSXだと-1が返ってきます。
ファイルのパーミッションも見ましたが、
読み取り可能になっていますた。

62 :
置換ミスったが元に戻すことできねえオワタ

63 :
>>61
openの後でQFile::errorstring()を見れば
open失敗の原因が分かるかも

64 :
Qt for Tizen来たな

65 :
Qt4.8.4のminGWですが、Qtカスタムデザイナウィジェットで作成したウィジェットをQtcreatorのウィジェットボックスに表示させるにはどうすればいいてすか?
ビルドでできた.dllと.aをQt4.8.4pluginsdesingerに入れてみましたがでませんでした。

66 :
Qt Creatorをビルドしたコンパイラとカスタムウィジェットのコンパイラを合わせる

67 :
>>65
(qtcreator)/bin/designer にも出来たdllを入れる。
あと,入れるdllはリリースビルドしたものじゃないとダメ。

68 :
>Qt for Tizen来たな
誰も待ってないのに

69 :
>>66
>>67
ありがとうございます。
コンパイラを変えてdllも置いてみたのですができませんでした……。

70 :
ここはWindowsでQt使ってる奴等ばかりなのだろうけどQtの未来としては
Linuxベースでスマホ分野の Tizen や Ubuntu や Android ports は非常に重要

71 :
Tizenはどうかねと思うな。

72 :
>>69
それは多分、どこか作り方が間違ってる。
ちょっとでも違うと表示されなくなるんで、以前苦労した覚えがあるよ。
domXml() の中身とか、良くチェックした方がいいと思う。

73 :
>>72
そうだったのですか……確かめてみます。
ありがとうございます。

74 :
>>73
ビルド済みのバイナリは使わずに、QtとQt Creatorをソースコードからビルドすれば、そういうことに悩まなくてすみますよ。

75 :
>>74
それはカスタムウィジットをウィジットボックスに表示させることと無関係だろ?

76 :
>>75
releaseとdebug、コンパイラを合わせるということができるから関係あり。

77 :
無理ヤリくさいこじつけ。
「ソースからビルドしろ」と書いてみたかっただけ。

78 :
>>77
違うよ。

79 :
そろそろmocなしでも使えるようになって欲しい

80 :
http://qt-project.org/
を開くと
Error 503 Service Unavailable
になってしまうのはなぜだろう。

81 :
[Interest] qt-project.org web failing?
http://lists.qt-project.org/pipermail/interest/2013-May/007319.html

82 :
Windowsですが、小ウィンドウを親ウィンドウと連動して動くように開くにはどうしたらいいですか?
childwindow = new ChildWindow(parentwindow);
childwindow->show();
だと親ウィンドウの中に入れられてしまいます。
外に出た状態で
・親ウィンドウが動いたら子ウィンドウも連動して動く。
・子ウィンドウは常に親ウィンドウの前面に表示(但しWindowStaysOnTopHintでは無い)
にしたいです。

83 :
qwebview の linkclick シグナルを
<A href=javascript:open_window('foo')>
というリンクをクリックした際に発火させることは可能ですか。
javascript を文字列で取得したいです。
(そこから正規表現で URL を抽出 -> ゴニョゴニョ -> new page という処理を予定)
qwebsetting や setLinkDelegationPolicy は設定されています。
代用可能な方法ならなんでもいいです。
click した位置の DOM を取得とか。
よろしくお願いします。

84 :
QMLはTypeScriptで作れるようにしてよ

85 :
カスの単発質問ばかりで有益な情報の無いスレだな

86 :
>>85
いいから質問に答えろよカス

87 :
Qt SDKのダウンロードって
qt-windows-opensource-1.4.0-x86-online-2013-05-30-73.exe
をダウンロードすればよいんだっけか
なんかサイトがかわってわかりにくくなったな

88 :
メインウインドウでプロセスを生成して、ダイアログからそのプロセスへ書き込みしたいんだがどう書けばよい?
MainWindow.proc -> write("Hoge");
みたいな感じで書けないかな?

89 :
>>63
遅レスだがありがとう。それでQtCreatorから動かして見たらfile not found。
プログラムと同じディレクトリにデータ置いてるのになんでだろと思ったら、
OSXのプログラムの実物はその下の階層にあるんだな。
そこにデータを置いて実行したらデータ読み込んで動いたよ。
ありがとう。

90 :
>>88
MainWindow().proc -> write("Hoge");
でコンパイルは通るが、実行させると、
QProcess: Destroyed while process is still running.
となる。プロセス殺さずにすまないかな。

91 :
別クラスのメンバへアクセスする方法が分からないって書いた方がいいんじゃね

92 :
なかなかのエスパー

93 :
Visual Studio2013が出るようだけど
ビルド済みの配布はどうなるんだろう

94 :
それ以前に、VS2012から #pragma execution_character_set が使えなくなって、Qt5の日本語はお手上げ状態じゃね?
C++11のunicodeリテラルは2013でも対応してないみたいだし

95 :
Qt4でOpenGLやってみてるのだが、bindTexture()で一発でテクスチャを登録できるのはわかった。
んで、自前でglTexImage2D()とかglTexSubImage2D()をコールしてみた場合はうまくいかないのだけど、普通にできてる人いる?

96 :
馬鹿には無理

97 :
普通にやってるよ
最初GLUTやwglで動かしてたコードを後でQtWidgetで動くようにしたからgl関数しか呼んでないな

98 :
>>97
徹夜でやってたらできたわ。
迷惑かけたな、失礼した。

99 :
www

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
.netグレープシティコンポーネント (149)
スレ立てるまでもない質問はここで 127匹目 (191)
CORBAなら俺に聞け (135)
【.NET】WCF〜Windows通信基盤技術【通信】 (100)
マルチプラットフォーム プログラミング言語 haXe (110)
開発工数を大幅削減できた言語は存在しない (102)
--log9.info------------------
【洒落】エロゲースレッド9988【Share】 (1001)
【うpろだ】声優総合スレッド 104【Uploader】 (437)
Share 一般漫画雑誌スレ Part273 (907)
関西AM/FMラジオ番組UPスレ 3kHz (170)
同人音声エロボイス専用Vol.21 (397)
P2P小説総合スレ part202 (895)
μTorrent質問スレ Part21 (179)
【CFW】 PS3 Part53 【Jailbraek】 (214)
ラジオ番組UPスレ JUNK JUNKサタデー専用 39kHz (469)
ラジオ番組UPスレ TBSラジオ 15kHz (302)
ろだコミ83 (652)
Shareで落とせるオススメ同人誌 204 (170)
【洒落】エロゲースレッド9987【Share】 (1001)
逮捕関連総合 ||Φ|(|゚|∀|゚|)|Φ|| Part114 (132)
■■■BTで拾えるエロ動画スレ part387■■■ (464)
■■■BTで拾えるIV動画スレ Pert12■■■ (240)
--log55.com------------------
【奈良】古墳の埴輪(はにわ)持ち出し…たけのこ掘りの小中学生らと判明 [靄々★]
中国の違法な海砂採取船、ついに台湾に拿捕される [アルヨ★]
【岐阜】コロナに感染した「店舗型風俗店」勤務の20代女性 発症までの3日間“1日あたり約8人”接客…市は店名公表せず 岐阜市 ★3 [Lv][HP][MP][★]
【障害者雇用】障害特性理由に雇い止め 福岡の工場「意思疎通できぬ」主張食い違い [ramune★]
【速報】蓮舫「#国会を止めるな」    [Toy Soldiers★]
【コロナ】マスク義務化で感染大幅減か「最も効果的」と米チーム 伊で7万8千人、米NY市で6万6千人以上の大幅な感染防止と推計★2 [納豆パスタ★]
【社説検証】横田滋さん死去 産経「北の拉致に怒り新た」 東京「柔軟性欠く政府対応 北朝鮮に圧力一辺倒の対応をしてきた」と批判 [特選八丁味噌石狩鍋★]
【東京都】ステップ3移行 カラオケ店 約2か月ぶりに営業再開…25歳会社員「早く歌いたくて午前中にきた。気持ちよかったです」 [ばーど★]