X

【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 18©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/03/08(水) 13:49:03.39ID:jMX+hATM
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、
RuviEdit、さくさくエディタ など

■前スレ
【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 17
http://echo.2ch.net/test/read.cgi/tech/1438593408/
2017/06/17(土) 19:16:26.95ID:dBxyMrx/
http://qiita.com/amay077/items/38ee79b3e3e88cf751b9
Xamarin.Formsがmacにもlinuxにも対応するってマジ?

最近はLinux用アプリでさえQtよりElectronを目にするようなってきたし、いよいよQtもオワコンかなぁ
2017/06/17(土) 20:45:35.08ID:vMjKwWc4
Javaのコーダーがあれだけ増えたのに、
デスクトップじゃいまだにVisualBasicの代替程度しかなれてないけどな
2017/06/17(土) 21:57:37.22ID:zSsDLH5L
ElectronじゃC++使えないじゃん
2017/06/17(土) 23:03:00.81ID:tjX69Ey+
デスクトップアプリは今後もQtを中心に使うけど、
スマフォ/タブレット用はXamarinにする予定でいる。

手元のアプリではだいたい44-47%は外部インターフェイスを持たないModel部の実装になるから、
これだけのボリュームがプラットフォーム非依存にできる利点は大きい。
2017/06/17(土) 23:59:32.82ID:SJko7C46
非依存でもQtありきってのがなぁ
2017/06/18(日) 04:18:04.11ID:stDA8hu1
Qtなんてただの道具なんだから、
使いたくなければ使わなきゃええねんで。

Model部はpure C++でも構わんだろ。
生産性がいくらか下がるだけの話だ。
177デフォルトの名無しさん
垢版 |
2017/06/18(日) 15:32:25.19ID:xPH4G83l
ほんそれ
2017/06/21(水) 20:33:46.03ID:q4L265CV
Qt SDKのexamples/widgets/gestures をWindows10で動かしてるんだけど、
pinchは反応してるけどpanとswipeは反応しないね。

これってこんなものなの?
2017/06/26(月) 22:14:29.72ID:lEyLgHV4
QMLについて調べてるんですが、.uiを使わずにこれを使う利点であるのでしょうか?
少し調べてみた限りでは面倒臭くなるだけに見えるで候
2017/06/26(月) 23:07:41.05ID:uFFYsDWn
1回使ったら二度と使いたくなくなる
2017/06/27(火) 07:34:52.49ID:jbbVXxr0
>>178
二本指してる?
182デフォルトの名無しさん
垢版 |
2017/06/27(火) 09:10:34.15ID:WuBzCuMJ
Qt Creatorの、Debug実行を行っているのか、exeを起動しているのか、判定する方法かifdefはありますでしょうか?
183178
垢版 |
2017/06/27(火) 09:40:29.58ID:9FJ950aK
>>181
公式Helpとサンプルの挙動を見る限り、pinchは2本以上の指でpanとswipeは1本指のように見えるんだが。
違うのかな。


>>182
qmakeのことを言ってるのかC++のことを言ってるのかで話は変わる。
184178
垢版 |
2017/06/27(火) 10:18:45.06ID:WuBzCuMJ
>qmake
>C++

どちらの実現でも、OKです。
C++ってのは、VC++ですが。

知りたいのは、出来上がったExeの挙動をリリース/デバッグで切り替えることではなくて、
QtCreatorで動作するときだけはある処理をスルーしたい(逆もできればますます便利)です。

ある処理とは具体的には、throwで、exeのときにはQApplicationのオーバーライドでcatchして
エラーメッセージがちゃんと出せるのに、
QtCreatorで実行すると、throwでドカンとアセンブラステップ画面に移動して、アプリがEND。
2017/06/27(火) 10:39:15.47ID:9FJ950aK
>>184
Qtに限らず、C++上では
_DEBUG プリプロセッサシンボルの定義状態によって判定するのが基本。

qmakeではconfig関数を使う。デバッグビルドであることはわかるけど
リリースビルドであることはわからないので ! 演算子を併用するとかやや意味不明な運用になってるね。

例外の下りだけど、どうも184のコードがおかしいような気がする。
そもそもQtはQT_NO_EXCEPTIONSが定義されていると例外機構が存在しないものとして動作したりするし。
例えばQException以外が飛んで来ることが想定できてないんじゃね?
2017/06/27(火) 11:05:47.35ID:64w1N/XC
>>184-185
昔 java が流行った頃にその手の挙動であった一例として。もしかするとこういう書き方をしてるかもしれない。

java の throws のつもりで関数定義のところに throw(XException) を書いてあって
関数内で XException 以外の例外が発生するとそこでコアダンプするというのがあった。

java: XException を投げる可能性があるので上位で対処を要求する書き方
void test() throws XException {
}

C++: XException 以外は投げられず、std::unexpected() に制御が移る
void test() throw(XExpception) {
}
187184
垢版 |
2017/06/27(火) 11:18:24.72ID:WuBzCuMJ
>>185

全然話が違っています。

デバッグコンパイルでも、リリースコンパイルでも、ただしくcatchできています。

ただ、QtCreatorで、throwのところで、デバッガーが止まるのが困ってるだけです。

前にも書いた通り、デバッグコンパイルのexe/リリースコンパイルのexe、を切り分けたいのでなく、

デバッガ―が止まらないように、でばっがーによる起動を判定したい、だけです。
2017/06/27(火) 11:23:13.30ID:9FJ950aK
>>187
184の文章ではcatchできているかできてないかの話に読めるし、
187の文章を見てもやはりcatchできなかったときのデバッガの挙動に見える。

自分の書いたコードとデバッガの挙動とが正しく把握できてないんじゃないかな。

実際のコードを単純化してgistとかに上げてみたらどうだい。
189187
垢版 |
2017/06/27(火) 11:25:51.04ID:WuBzCuMJ
catchの話は無かったことにしてください。

起動がExeなのか、QtCreatorデバッガ―なのか、の判定がプログラム中で知りたいです。
2017/06/27(火) 13:12:09.51ID:i4lW4rrf
>>189
実行するとき環境変数設定してgetenvしたらええんちゃうの
2017/06/27(火) 14:01:59.58ID:WuBzCuMJ
>実行するとき環境変数設定して

QtCreatorのデバッグのオプションで設定できるのでしょうか。
192デフォルトの名無しさん
垢版 |
2017/06/27(火) 15:19:46.03ID:uIJC4qRu
そろそろVisual Studio 2017に対応した?
2017/06/27(火) 21:44:59.72ID:KhuoEdOG
しかし、ここまで全角半角、大文字小文字、ひらがなカタカナ、
はたまた、ハイフンと長音記号が入り乱れてる文章はなかなかお目にかからないな

会話の前後も一致しないし、もしこれで日本人なら、
そもそものコードもちょっと心配
2017/06/28(水) 13:52:31.51ID:AJijq7Zo
変なのが着た。
2017/06/29(木) 22:55:44.29ID:ArTJNFYC
>>191
実行の構成のところに環境変数設定がある。
ひだりの縦のバーのプロジェクト設定のところな。
2017/06/30(金) 04:33:23.66ID:I0PScEug
誰かShogiGUIのQt版を作ってくれへんか
LinuxとMacでまともな将棋検討アプリがなくて困っとるんや
2017/06/30(金) 08:51:03.58ID:/WxXdso/
自分で作れば
2017/07/01(土) 04:16:29.98ID:ld38oKrr
無理(>_<)
2017/07/01(土) 10:44:01.75ID:lFxw+Ui+
最近お仕事で使い始めた
便利なTkだな
しかしフレームワークが膨大でオライリーの第1部読んでからはかいつまんで集めた情報でコード書いてる
2017/07/01(土) 10:48:42.47ID:ZWbv/QSj
Qtは情報がすぐに古くなるので、
・公式ヘルプ
・公式サンプル
・githubのQtプロジェクトまたはKDEのソースコード

に当たったほうがいいよ。
2017/07/01(土) 11:51:03.53ID:Cy4uCrIi
Qtの公式ドキュメントすごい読みやすいよな。
クラス説明のやつとか、概要一覧詳細一通り揃ってる。
2017/07/01(土) 16:01:24.87ID:ld38oKrr
KDEのソースの質ってどうなんです?
2017/07/01(土) 16:04:01.01ID:ZWbv/QSj
コードの良し悪し以前にKDEのライブラリ環境が前提の実装になってるから
純粋なQtプログラムとしては使いものにならない。

だが全体がQtの文法で書かれてるから書き方や使い方の参考にはなる。
204デフォルトの名無しさん
垢版 |
2017/07/01(土) 20:38:59.74ID:lLi0bV67
Visual Studio 2017でQtを使う方法教えて!
2017/07/01(土) 20:41:19.95ID:ZWbv/QSj
qmake自体はVS2017を認識するから自力でビルド。
2017/07/01(土) 21:37:40.16ID:ld38oKrr
qmake vs cmake
2017/07/02(日) 00:57:38.56ID:OkK6wggA
ビルドする前にqmakeするだけだろ
2017/07/04(火) 20:24:29.81ID:LHjKTsra
qtはちょっとc++やりたい時にいいね。
最近のvisualstudioデカすぎて、ダイアログボックス出すプログラム書くだけでも何十ギガバイトもダウンロード&1日かけてインストールせなあかん
2017/07/04(火) 20:44:10.02ID:KTt0sA2G
MinGW版は GNU configure系と相性が悪すぎてプロジェクト管理が死ぬ
2017/07/05(水) 11:53:59.83ID:Qpg00Afa
>>208
wxもオヌヌメ
2017/07/05(水) 11:54:31.07ID:Qpg00Afa
>>209
tdmgccいいお
212209
垢版 |
2017/07/05(水) 12:40:59.25ID:2EpUYxaW
>>211
いや、コンパイラの問題じゃなくてqmakeによるビルドシステムの問題だから。

qmakeでプロジェクトを管理すると、ファイルをコピーしたりasmをアセンブルしたりするみたいな当たり前のことが
基本機能じゃ扱えなくなって自動化するのが大変になる。

GNU configureの自動実行もできないっぽいから実行時に自動生成されるソースファイルとかを
元のソースツリーの外にコピーして別途管理したり涙ぐましい努力でプロジェクトを維持している。
2017/07/05(水) 13:13:53.34ID:2EpUYxaW
qtcreatorからCMakeFile.txtを扱えたのか……。

手書きする部分はqmakeのままでいいけど、外部ライブラリをビルドしてるだけの部分は
cmakeで作ったほうが楽だったかもね。
2017/07/07(金) 00:01:22.07ID:waX9BtEA
>>208
何か作るたびにインストールしてんのかよ
2017/07/08(土) 18:16:25.10ID:cZ1rXSl8
qtでスキンメッシュアニメーションできないか定期的に調べるんだけど未だできなさそうかねぇ?
2017/07/08(土) 18:18:22.49ID:hq2BkHJS
>>215
QGraphicsViewのサンプルにあったで
2017/07/08(土) 18:36:18.64ID:cZ1rXSl8
>>216
すまぬが見つからん
3dモデルが動いてるサンプルはいくつかあるけど、コード上で回転させたり伸縮させてるのしかないように見える。
3dモデルに内蔵されてるアニメーションデータを再生するってのがなくて、
それがないと人が歩く絵を表示できなくて困っとる
2017/07/08(土) 19:01:45.52ID:cZ1rXSl8
qt 3d studioがリリースされるまで待つしかなさそう
2017/07/08(土) 20:55:18.35ID:hq2BkHJS
>>217
スキンメッシュアニメーションってのが3Dなんて誰が言ったんだ?

QGraphicsViewは2Dのフレームワークだ。で、そのサンプルがあるぞと指摘しただけなんだが。
2017/07/08(土) 23:14:06.03ID:8yNBhf/k
お、おう
それじゃー3dモデルのアニメーションは
自分で書くか将来に期待するしかないねー
2017/07/10(月) 19:43:20.02ID:ZCxRuI9v
Qt製のMMD期待
2017/07/11(火) 17:45:12.44ID:NSdcOZU/
割と最近めのqt creatorで
デバッグ開始するとデバッグ用のウィンドウが下の方とかに出てくるんだけど
デバッグ終了しても消せない
どこ押せば消える?ググってもぽちぽちしまくっても消えん!
2017/07/11(火) 18:56:56.29ID:Bmuxh1Qp
それはね、左側のボタンをデバッグから編集に切り替えると消えるよ。

見た目ボタンにしか見えないんだけど、以前ソース見たらこれはタブとして実装されている。
visualstudiocodeでもほぼ同じデザインになってるし、最近のはやりなのかもねえ。
224デフォルトの名無しさん
垢版 |
2017/07/11(火) 21:06:44.95ID:aZj0SKJK
>>221
なんで?
メリットは?
2017/07/13(木) 06:39:50.46ID:jJkkZRgw
定期的にv-playが気になるんだけど誰かがっつり試してみた人はおらんか
2017/07/20(木) 19:59:30.58ID:efH7dlme
http://blog.qt.io/blog/2017/07/20/qt-creator-4-4-beta-released/

そろそろ
・1文字補完
・fuzzy補完
・引数と補完を同時に表示する
・補完中にdoxygen形式のコメントを表示する

ぐらいやってほしいんですけど。
VSCodeでもやってるというのに...
2017/07/20(木) 22:08:09.95ID:am65me5o
俺のVSCodeは全然言うこと聞いてくれないのでQt使ってなくてもQtCreator使うしかない
2017/07/20(木) 23:24:02.41ID:IVrypgAG
QtCreatorはそんな細かいこと以前に
msvcと組み合わせたときのデバッガの絶望的な重さをなんとかしてほしいわ。
2017/07/21(金) 21:45:56.95ID:zZI23jDl
最近流行りのzen mode欲しい
俺の頭がバカすぎてアレがないと読むのがつらい
2017/07/21(金) 23:45:00.40ID:OjZ8KrLm
>>229
耳栓してHMDで常に視界の中央にコードが追従し続ける究極のzen modeはどうでしょうか
2017/07/22(土) 00:59:21.85ID:efCXTrlK
>>229
そんなものが必要だとか考えたことすらなかったわ。
画像ビューアだと当たり前だけど、IDEだとゴテゴテ物が付いてる方がいいという風潮すらあるわな。
2017/07/24(月) 17:57:47.74ID:WnfXPepi
>>170
一般的にはidから特定できない
2017/07/25(火) 09:06:39.95ID:p9DCZc7G
>>179
もっと調べて使ってみればQMLの.uiは役に立たないと分かる
2017/07/25(火) 12:53:49.90ID:p9DCZc7G
>>222
ESC
2017/07/25(火) 12:56:03.83ID:p9DCZc7G
>>225
がっかりだった
2017/07/26(水) 20:18:06.95ID:XAtQRBtZ
>>235
モバイルでQt/Qmlが使われるようになる日は来そうにないか
2017/07/27(木) 21:22:11.75ID:bCxd+zrD
みんなQtで何作ってるの?
作りたいもの(特にGUIで)って次から次へと出てくる?
2017/07/27(木) 22:55:21.12ID:Pwjsu1Lp
使えば使うほど使いたくなくなる
2017/07/27(木) 23:02:34.73ID:Fr5QaIId
GUIとかいらなくね?って思いながら使ってる
そろそろ自分が納得できるGUIライブラリと作り始める頃合い
2017/07/28(金) 02:03:02.85ID:u4Na0MOP
>>238
Qtのやり方でクロスプラットフォームは抜けだらけで嫌になる。
Qtはデスクトップとモバイルはもうダメ。
残るは組み込みだがそれもいつまで持つか。
2017/07/28(金) 17:28:25.48ID:kt6nJrg7
tkは原始的すぎるし、GTK+は遅すぎるし、って考えると
Qtは相対的によく出来てるよ。wxは使ったことないから知らん。

Windowsでファイル拡張子関連付けやレジストリやらいじるプログラム作ったけど、
意外とQtだけでなんとかなるもんだ。いちいち用例やドキュメントが無いから
自力で調べ回って作らされる羽目になるが。

タイトルバーやシステムボタンをQtはほとんど制御してないことをつい先日理解した。
2017/07/28(金) 20:28:16.99ID:wxsWHM64
ここ数ヶ月?ネガキャン頑張ってるよね

QMLの悪いところを使って、あたかもC++版が悪いように表現したり、
逆にC++で問題ないデスクトップ版をQML使って陥れようとしてるし
2017/07/28(金) 20:31:09.64ID:lgcBXbCz
どこのこと?
2017/07/29(土) 02:31:35.74ID:WaVIPdWN
デスクトップはC++はダメで、QMLはどうしようもなくダメ。
モバイルはC++はどうしようもなくダメで、QMLはまったくよくなる見込みもない。
2017/07/29(土) 11:45:48.22ID:Ws5hVYlo
QtはダメでFA?
2017/07/29(土) 13:22:51.32ID:EjofYfo7
意味がわからん。
QMLが気に入らないなら使わなきゃいいんだし、
そうしたところでQtの価値が下がるわけでもない。

ってこういうツッコミはもう以前入れたと思うんだが。

同じことを2回言わなきゃいけないってそれだけ頭が固い証拠じゃね?
2017/07/29(土) 15:25:03.01ID:xTAcHkko
MFCやらVCL使ってきた身としては英語ドキュメントしか無いにも関わらずQtのライブラリは本当にわかりやすい
2017/07/29(土) 17:48:50.29ID:bkSgqPHp
ライブラリなんか常に文句言いながら使うもんだろ
2017/07/29(土) 18:59:37.71ID:QwRURlf0
Qtはjavafx以下のゴミ
2017/07/30(日) 09:00:46.06ID:9kuTCBsS
>>247
それってオンラインドキュメントとしての話?
VSはオンラインドキュメント化してからゴミ以下になったが
とりあえず2008以前までのオフラインドキュメントは良かった

なんにせよQtのドキュメントがわかりやすいという感覚は理解できん
2017/07/30(日) 14:10:55.33ID:eTfuhWoZ
MSDNと比べる前提で言えば、Qtのヘルプは各APIの説明が全然足らんわ。
各引数と戻り値の説明がない。

ソースコード読んだほうが早いくらい。
2017/08/01(火) 13:15:45.00ID:R0nmZVxs
>>249
2017/08/02(水) 06:24:57.23ID:PuCuze1G
>>251
Qtのマニュアルはかなりわかりやすいと思うが。
英語がある程度分かること前提だけど。
2017/08/02(水) 06:41:41.30ID:/KmPY1dw
英語云々ではなく説明不足
MSなら事細かに説明が書かれてるうえに
サンプルコードがほぼ記載されてる
2017/08/02(水) 07:18:26.48ID:YkTKmp+S
あのドキュメントで分からないなら
qt以前にプログラミングの経験が足りないんじゃないの?
2017/08/02(水) 08:46:04.00ID:bYfLOAN2
MSも大して書かれていないし、サンプルコードも冗長過ぎたりしてない方が良かったりする。
まあこれ以上は宗教戦争になるな。
2017/08/02(水) 18:42:57.98ID:Itl2aFQC
>>253 >>255
それな
2017/08/02(水) 19:05:01.03ID:AVhnh1yO
例えばQtでWindowsのレジストリを読み書きするときは

QSettingsにQSettings::Registry64FormatやQSettings::Registry32Formatを設定して初期化したうえで
beginGroup()〜endGroup() を多重に呼び出して潜っていくんだが、
そんなのマニュアルのどこにも書かれてない。

http://doc.qt.io/qt-5/qsettings.html#beginGroup

マニュアルだけで使い方理解できたらエスパーだな。
例は他にもいくらでも挙げられるぞ。
2017/08/02(水) 21:38:40.28ID:/KmPY1dw
>>255-256
分かる分からないではなく度を超えて説明不足
MS系使ったこと無いんだな
2017/08/03(木) 00:13:02.70ID:QN52pFR1
qtはwinでしか動かない訳じゃないんだから
環境依存する部分のドキュメントは汎用的になるのは当たり前でしょ
2017/08/03(木) 01:37:06.18ID:chJp2IsX
Qtの資料が説明不足という例は出した。
反論できないならそれまでのことだ。
2017/08/03(木) 05:34:03.90ID:QN52pFR1
何から何までマニュアル例示してもらわないと何もできないって
自信満々に言われてもな
コピペプログラマかよ
2017/08/03(木) 07:37:53.61ID:XGmuoag/
学習の初期段階は例があればあるほどいいに決まってるだろうに
2017/08/03(木) 08:14:31.47ID:chJp2IsX
SDK自体のソースコード読んで初めて分かるようなマニュアルなんて意味ないだろ。
常識で考えればわかることなんだが。
2017/08/03(木) 19:32:27.95ID:BCoh/HEk
まあ昔のMSDN引き合いにするのが間違いだったよな

当時はデザパタといったテンプレート的な設計なんて浸透してなかったから、
利用者の事前知識ゼロが前提で説明も細かくなる

今はその辺理解してる前提のドキュメントが普通で、
だからこそ今のMSのドキュメントはしょぼいんだろ
2017/08/03(木) 21:03:01.10ID:rtMsvqw0
QtCreatorに限ってだが、普通にサンプルやチュートリアルが大量にあるので、学習にはもってこいだよ。
Visual Studioをインストールしてもサンプルコードなんて無いだろうに。
ただQtの場合はc++を熟知していないと使いにくい事は確かにある。
2017/08/03(木) 21:31:08.73ID:nsJKifQ/
俺がやりたかったことのサンプルプログラムはQtには無かったな
268デフォルトの名無しさん
垢版 |
2017/08/03(木) 23:46:34.32ID:Qd+M/pFD
バージョンアップで仕様変更されてもドキュメントに記載なし
結局ソースコード読んで調べたわ
2017/08/04(金) 12:45:07.25ID:09BtnDMQ
>>246
気に入らないのではなくてダメだから価値がない
2017/08/04(金) 15:13:01.53ID:sTEpfwDy
質問です。

画像ファイルの読み込みをstatic関数化したうえで
QtConcurrent::run()で複数スレッドで並列実行してるんですが、
run()に渡したstatic関数が複数回呼び出される不具合に悩んでいます。

run()を呼び出す直前(呼び出し側スレッド)でqDebug()出力した内容は各ファイル1個ずつなのに、
static関数内部はそれぞれ2回以上呼ばれてしまう感じです。

その後、関係ないときにも何度も呼び出されているような挙動をしています。
QFutureのインスタンスの扱いに何かポイントがあるのでしょうか。

この辺の挙動についてご存じの方、コメントください
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況