【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 18©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
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/ コンパイルが糞重いんで、
Zapccに対応してくれないかな〜 サブプロジェクトに分けて、最終成果物だけリビルドしたらそれほど遅くはない まぢかw
qmakeが今ひとつ書きづらいところがあるからqbsに将来的に移行しようと思ってたが、
(installシステムを活用しないとまともに処理が書けない)
CMakeに開発リソース突っ込むのかよ。
こりゃあqmakeも捨ててCMakeで書き直したほうがいいかもなあ。 >>821
レスが遅れてすみません
サブプロジェクトに分ける方法を試してみます あれから勉強してqbsで
自作のProductやModule/Ruleを書いて動かせるようになったが、
資料がなさすぎて死ねるな。
公式ソース添付のテストプロジェクトが一番マシな資料というね。 最近転職活動してるんだが、Qt の需要高くなってんのな
車載経験してるのもあるけど、他業界の組込み系もQt採用を追従してて、
そんなにアピールしてないのにそこに食い付く企業さん多い まあQtの組み込みアプリをメンテして50万って仕事ならあるな。 組み込み系UIでまともに使えるフレームワークがあって、タッチ操作がさばけるのはQtくらいしかないからな javaからの移行考えてるけど
メモリリークが不安で踏み切れないです
正式記述は覚えることは基本として
使いやすい(手間のかけない)fullGCみたいのってあります?
メモリリークの検出機能でなんとかなるのかな そんなものはない。
ってかメモリ開放は全て責任をとった上で、
メモリブロックの開放確保のアルゴリズムをライブラリ切り替えで変更するのがC++の流儀。
まあ、Qtはその部分も内蔵してるので、ここを差し替えるときは自力でQt全体のビルドが必要になるが。
メモリ確保がシビアなら、実際の処理を別プロセスにやらせて、プロセスごと殺せばいいんじゃね。
その方が手っ取り早い。 よく思うのだけど、Qt のサンプルとかってやけにnewで動的確保してない?
必要な時に初期化しつつ生成ならまだしも、
常に持ち続けるパラメータだったり、生成が一度限りのインスタンスだったり
QObject や QWidget のベースクラスへのポインタ渡せば、
自壊時にメモリの解放もしてくれます、って機能は、
逆に new で動的確保したアドレスでないとダメって縛りはないですよね? 親子にしておけば勝手に解放してくれるから
newしまくるのがQt流 Qtで2万行ぐらいのアプリ作ってるけど、
結構ローカルスコープでインスタンスを扱うことが多いかな。
QImageとか、カジュアルにインスタンスをコピーしても
パフォーマンスの問題がないのは嬉しいね。
ポインタをやむを得ず使うのはコピーコンストラクタがまともにないクラスを扱う場合。 そりゃインスタンスは余程のことがなけりゃ滅多に動的では取らんだろー
今も昔も変わらずさ
一般型の動的配列はCやってきた奴はalloc使いたがるつーかallocしか知らんけど
C++ならnewだわな vectorは配列やクラスインスタンスには使うけど
一般型でvectorは使わんな QtCreator使いにくいからVSで開発したいのに環境構築で詰む QtCreatorってファイルが増えるとエディタが物凄く遅くなるんだけど、
回避方法あるのかしら? 4000個ぐらいのファイル数のプロジェクトを作ってるけど別に遅くないよ。
qmakeの実行は時間かかるけどこりゃあしゃあない。 >>848
とりあえず最新の4.8.0に更新してみたら? あとVisualize white space が有効だと遅くなるとか見た記憶が >>849
>>850
ありがとう
最新版の QtCreator を使って様子を見てみます
Visualize white space も無効にします この2019年においてSTLとQtコンテナどっちを使うべき? ものによるとしか言いようがない。
Qtの範囲で使うだけならQtで作ればいいし、
Qt以外の世界でも使いたいならSTLで作ればいい。 コンテナだけのためにQt採用はさすがにやり過ぎだわな
移植範囲もQtが使える環境前提であればQtのコンテナ使えば良いし、
Qt自体、STL版は性能面に於いても勧めていない GUI部分だけQtを使うってのは少数派なんですかね 暗号クラス作ってくれんかな
しょぼいハッシュ計算だけじゃなくてAESと公開鍵暗号がほしい
CryptoPPやBotan使えばいいんだけど TrippleDES程度なら無かったか?
悪い記憶が曖昧、実装した記憶はあるんだが、俺が自分で作ったのかな? 暗号ライブラリは調査機関の認証を得ないと意味ないから個人が趣味で作ったのではなくQt Projectとしてやってほしい 暗号化ライブラリそのものはないっぽいけど、SSLで暗号通信するモジュールはNetworkにあるっぽいよ。 >>861 さんのいう通り OpenSSL を呼び出すだけ 認証機関で認証されてないけど去年話題になったgoogle製のtinkあたりでもいいだろ。 その辺のQtラッパーを作ってくれると楽でいいや
QByteArrayを直接突っ込みたい そうか
せっかくネットワーク回り整ってるのに暗号がないのだけが残念と思ってただけだ http://blog.qt.io/blog/2019/01/25/introducing-qt-http-server/
Qtが公式でhttp server出すのか
WebAssembly対応も進んでるっぽいからフロントエンドとバックエンド両方をQtで書けるとなると意外に需要があるのか? 認証機関とか意味なさ過ぎて草
確信が欲しければ自分で実装見ればいいだろ 意味がないとか、客先相手したことないの?
(と思ったオレもその手の案件はないけども) すいません質問よろしいでしょうか?
QMLのGridViewに画像を挿入したとき自動的に描画されなくて困っています
スクロールして一旦画面外に出せば描画されるのですがQAbstractListModelに挿入したら即座に再描画させるにはどうすればよいでしょうか?
ちなみにデータはリアルタイムで追加されたり変更されたりします QMLはあんまり触れてないけど、SIGNAL/SLOTに相当する機能あるんじゃないの?(update とか)
明示的にSIGNAL発行しないと更新されないのであれば、
それはそれでお粗末な仕様だけども QtってC#とかより面白よな。なんでもっと売れないんだろう。
やっぱ、何の社会でも金がものを言うなw なんか日本ではプログラムはオタク系のものになってて
本も全部そういう思考で書かれてる。
元々プログラムもセンスある人がトップに入れるものなんだろうけど、
日本はそういう人いないみたいだね。
入門Qt4みたいなセンスがあり、本来のプログラミングの楽しさも味わえる本が日本でも
出てくるといいね。 高い金だして、文系の書いたような本ばっか買って、アホミタイ Qtの関数は、時々ヤバい不具合の起爆剤になってるから
便利だからと言って過信できない点が怖い Qtつまらないよ
Linuxだと他にまともな選択肢がない GUIツールキットはつまらなくていい。
変な動作をされるよりは。 QML使いだしたけどちょっとしたオブジェクトの生成も別ファイル用意するか文字列の引数でコード渡すのか
もっとサクッとできないものか >>869
golang勉強しようかと思ってたがもしかしてC++で事足りるのかな? wtとtreefrogのどちらがよいでしょうか?
LAN内のPCからのみ動画を閲覧できるwebサービスを作る予定です QMLを使ってiOSで動かしてるんだけどスクロールがガクガク何だがどうしてだろう
QMLの描画エンジンのフレームレートを制御する方法ってあるかな? 元々QMLはJavaScriptで動くのが基本なので遅い。
さらにiOSはJavaScriptのJITが無効なのでなおさら遅い。
解決策としてはQMLをネイティブコンパイルする。 QMLの遅さの原因はそこだけじゃない
構造そのものがおかしい まともな定義とはなんぞ
モバイルアプリって範疇なら組込みLinux / Windows も含まれるよな
まぁLinuxデスクトップ相当のUIならそのままAndroid/iOSでもほぼそのままで動くけども >>898
作れるけどそれぞれネイティブで作った方が早いんじゃないの?って気になってくる 速度の話をすればQt使わない方がもちろん速いけどね iOSはともかくとして、鈍重なAndroid SDKをバイパスして
Skiaに直結できるQt 製アプリのほうが高速な可能性まであるぞ。
まあライセンスの問題はどうにもならないけどね。 Qtのスマポってvoid使えないんだな
全部Qtで統一してきたのにそこだけstd:shared_ptrになって不格好 void ポインタ使うのが不格好なのでは?
あまりにも型変換が自由すぎる そもそもQtほど型・インターフェイス継承きっちりやってるライブラリもないのに、
型無視してスマートポインタを使ったら片手落ちだろ。
自動破棄できなくないか。 >>873
QAbstractListModelを使えばデータが変わればGridViewに自動的に描画される。
QAbstractListModelを継承したクラスの実装が間違っていてデータ変更をシグナルで通知していないからだ。 c++20でc++11並に機能が強化されるし最早gui部分以外にqt使いたくないよ プログラム内で呼んだ関数の戻り値一切テストしないプログラムとか書く方が難しそう 例外の難点は想定しうるエラーを把握しにくい点だな。 いちいち戻り値を検証するより例外を投げた方がパフォーマンスは良い
バイナリサイズやメモリ容量の制限が厳しい環境でなければバンバン投げるべき 使ってないね
使ってたら死ぬほど使いにくいものになってただろうな Qtは古いコンパイラや組み込み向け環境にも対応しているから
Q_COMPILER_NOEXCEPT オプションがある。
このフラグは手で設定するものではなく通常Qtのビルド時に
コンパイラのバージョンから自動認識されるものだが手で設定することもできる。 レス数が900を超えています。1000を超えると表示できなくなるよ。