【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 18©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
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/ 英語云々ではなく説明不足
MSなら事細かに説明が書かれてるうえに
サンプルコードがほぼ記載されてる あのドキュメントで分からないなら
qt以前にプログラミングの経験が足りないんじゃないの? MSも大して書かれていないし、サンプルコードも冗長過ぎたりしてない方が良かったりする。
まあこれ以上は宗教戦争になるな。 例えばQtでWindowsのレジストリを読み書きするときは
QSettingsにQSettings::Registry64FormatやQSettings::Registry32Formatを設定して初期化したうえで
beginGroup()〜endGroup() を多重に呼び出して潜っていくんだが、
そんなのマニュアルのどこにも書かれてない。
http://doc.qt.io/qt-5/qsettings.html#beginGroup
マニュアルだけで使い方理解できたらエスパーだな。
例は他にもいくらでも挙げられるぞ。 >>255-256
分かる分からないではなく度を超えて説明不足
MS系使ったこと無いんだな qtはwinでしか動かない訳じゃないんだから
環境依存する部分のドキュメントは汎用的になるのは当たり前でしょ Qtの資料が説明不足という例は出した。
反論できないならそれまでのことだ。 何から何までマニュアル例示してもらわないと何もできないって
自信満々に言われてもな
コピペプログラマかよ 学習の初期段階は例があればあるほどいいに決まってるだろうに SDK自体のソースコード読んで初めて分かるようなマニュアルなんて意味ないだろ。
常識で考えればわかることなんだが。 まあ昔のMSDN引き合いにするのが間違いだったよな
当時はデザパタといったテンプレート的な設計なんて浸透してなかったから、
利用者の事前知識ゼロが前提で説明も細かくなる
今はその辺理解してる前提のドキュメントが普通で、
だからこそ今のMSのドキュメントはしょぼいんだろ QtCreatorに限ってだが、普通にサンプルやチュートリアルが大量にあるので、学習にはもってこいだよ。
Visual Studioをインストールしてもサンプルコードなんて無いだろうに。
ただQtの場合はc++を熟知していないと使いにくい事は確かにある。 俺がやりたかったことのサンプルプログラムはQtには無かったな バージョンアップで仕様変更されてもドキュメントに記載なし
結局ソースコード読んで調べたわ >>246
気に入らないのではなくてダメだから価値がない 質問です。
画像ファイルの読み込みをstatic関数化したうえで
QtConcurrent::run()で複数スレッドで並列実行してるんですが、
run()に渡したstatic関数が複数回呼び出される不具合に悩んでいます。
run()を呼び出す直前(呼び出し側スレッド)でqDebug()出力した内容は各ファイル1個ずつなのに、
static関数内部はそれぞれ2回以上呼ばれてしまう感じです。
その後、関係ないときにも何度も呼び出されているような挙動をしています。
QFutureのインスタンスの扱いに何かポイントがあるのでしょうか。
この辺の挙動についてご存じの方、コメントください >>265
勝手に普通を定義すんなよ
MSは複数の言語のヘルプがごちゃ混ぜになってしまって
期待するものと違うものがヒットしやすいけど
検索がバカになっただけで内容の細かさはピカイチだわ Qtのはヘルプってより一覧レベル
一般的なヘルプは「これ使えそう」
Qtのヘルプは「名前や概要説明はそれっぽいけど使ってみなきゃわかんねえ」 みなさんGUIが絡んでいないlibの部分でもsignal/slotガンガン使ってますか? signal/slotを編集管理できるwizard系機能はQtCreatorには無いの?
面倒臭くてかなわないんだけど >>274
serialportの非同期通信とかすごく楽に書けるやん >>276
今ちょうどそういうツールをnode.jsで作っている。
正確にはactionとアプリケーション設定値の設定表とソースコードの自動同期ツールだけど。 Qt Creatorを2つ起動していると頻繁に
ビルドメニューが死ぬ。
左側のタブバーのビルドボタンも使えなくなる。
こうなるとQt Creator再起動するしかない。
めんどくさい。 >>278
いいな、俺はQMLのプロパティ管理ツールでも作ろうかな v2cつらいし誰かkitaをqt5に書き直してくれへんか windeployqtを実行したら用意してくれる translations/qt_XX.qmが、
実は置いただけじゃ自動で読み込まれないことに気付いた。
コード書いてやる必要あるってことかな。 QtCreatorのclangbackendほんと頑張ってるなぁ
独立プロジェクトにしてlanguage server protocolに対応とかしてほしいけどQt使ってるからあんま歓迎されないのかな >>285
QtCreatorのClang Code Modelプラグインで使われてる補完ツールです
別プロセスで起動してQtCreatorと通信していて、そのプロトコルをlspに対応させればvscodeとかでもそのまま動くはず
半年ほど前から公式がclangdという似たプロジェクトを始めたけど全然出来が違いすぎるし、clangbackendをQtCreatorから切り離して(さらにQt依存も取り除いて)くれないかなぁ
QtCreatorチームもclangdに関心を抱いていたようなので(http://lists.llvm.org/pipermail/cfe-dev/2017-January/052478.html)協力し合って欲しかったです
まったく同じものを作ろうとしてるのに... QML始めたけど慣れなさすぎて辛い
ドキュメント睨んで目がチカチカしてる QtもJavaFXも良く出来ている!しかし、俺はGtk+が好きでGtk+のスレがないから
言わせてくれ!Gtk+もQtQuickやJavaFXみたいなリッチクライアント&簡単なスクリプト作ってくれ・・! GTK+ってバージョン2時代の激オソ、クソ設計の頃しか知らないんだけど、
最近はマシになったのかな? gtkもqtもcmakeでおk
CLionみたいなIDEもあるし qmakeでも意外と色々できるんだが、
設計外のことをやらせようとするととたんに大変になるんだよな。
例えばasmをアセンブルする構文がないから
いちいちカスタムコンパイラ定義して外部コマンドとしてアセンブラを実行する必要がある。 WindowsのQtCreatorでBoostが使えません(C1083 cannnot open include fileと言われてしまいます。)
.proファイルに「INCLUDEPATH += "C:\boost_1_65_0"」と追加することにより、
F2キーによってヘッダファイルをたどることができるのですが、
コンパイルすると、上記エラーを言われてしまいます。
絶対パスを指定した場合、使用するヘッダの中で、さらに<>で#includeするファイルをオープンできないと言われてしまいます。
上記パス以外に、どのような設定が必要でしょうか?
OS:Windows 10 pro
Qt Creator 4.3.1bBased on Qt 5.9.1 (MSVC 2015, 32 bit) ○次受けが多いほど退場率が早くなる。高くなる
直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ
長時間労働 高稼働 高スキル要求が多い 零細フリーランスサイトは5次受けから誰もできない難易度の高い仕事 余り物の仕事を紹介してくる。40万円代でやってくれと これならJIETから3次でいったほうがいいな
372仕様書無しさん2017/08/11(金) 10:31:43.41
JIETに毎月5千円払えば3次から入場できるだろ?
高額をうたうフリーランスのサイトはだいたい5次から45万円
JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした
高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした
JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の間でやらしている。
フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。
高額に見せているけど実際は50万前後
JIET等に加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ
自称エージェントはJIET等から流れてくる案件を転売してるだけだった。
労働市場(JIET等)に加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
エンド - ユー子 - エージェント-(JIET等) 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-(JIET等) 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-(JIET等) 公表価格 90~60 - JIETに加入して公表価格で応募できる
eJobgo JIET JISA で検索
優良エージェント・優良サイト
首都圏IT(PE-BANK) クラウドテック プログラマーズ Qt4.8.4でQMLを使い始めたのですが、QtChartsやGo言語を使わずに
LineGraphを作成するにはどのようにしたらいいのでしょうか? ボタンが押されたら新しいダイアログを生成するという処理をしたいのですが…
新しいuiファイルを作成して、それ専用のクラスを作る流れになると思うのですが、
#include "ui_(uiファイル名).h"
としてもビルドできません
一度手動でuicをいじってヘッダを生成しなくてはならないのでしょうか?
また、qt 5.7でwebkitを使いたいのですが、proファイルにQT+=webkitwidgetsと書いてもエラーになります
環境はUbuntuで、sudo apt-get install libqt5webkit5-devも試しましたが出来ませんでした
どうしてでしょうか? >>303
uiファイルで指定したクラス名のQDialog継承クラスを定義してあげないと
uiファイルはC++ソース上で使われない。
そのへんは口で説明するよりQtSDK付属のサンプルソースを読んだほうが早い。
ちゃんと読んでから質問しようね。 >>304
ありがとうございます
帰ったら目を通してみようと思います… >>303
Qt Creatorを使って、ファイルの新規作成から
Qt Designer フォームクラス を作れば自動でcpp,h,uiが作られるよ
...Quickのほうはよく分からんけど... >>306
なるほど!
そっちでやれば良いんですね…
uiフォームだけ作る方でやってました そういえば一時期削除されたgtkテーマのサポートが復活したようで嬉しいです >303です
デザイナでQWebEngineViewを使いたい場合、QWidgetを配置して格上げすると思うのですが、
ヘッダにQWebEngineViewを指定してグローバルにインクルードするを選ぶと「既にクラスが存在します」と出て格上げできません
自分でQWebEngineViewを継承したクラスを定義しなくてはならないんですか? だからサンプルコードを見なよ。
話がループしてるんだが。 >>309
Ubuntuのデスクトップ環境もUnityからGNOME(Gtk)になるねw Linuxは今自分が動いている環境がGNOMEなのか
KDEなのかを検出する方法がわからなくて嫌になる。
QtはGNOME環境じゃまともに動かない。 >>311
サンプルからヒントを掴みQWebEngineViewのウィジェットを表示させることには成功しましたが、そこら辺のサンプルは敷居が高く理解できません…
これから読めば理解が進む、というようなものがあれば教えて頂ければ幸いです 目的のウィジェットが使われてるサンプルを一通りビルドして動かして、
自分の目的に一番近い使われ方をしてるサンプルを改造することから始めたらいいんだよ。
いじって元のコードがわからなくなるのが嫌な場合は
サンプルコードごと別のフォルダにコピーすること。 >>315
なるほど!
そういう使い方も出来るんですね
やってみます マジでこの先Qt製の2ch専ブラなんて登場しないのかな...
v2cもjdもいい加減つらいわ... ウィンドウの左端にボタン画像を並べてタブのように切り替えられるコントロールって何かない?
QTabBarのタブに画像を貼るとある程度近くなるんだけど見た目のイメージが違う。 ダイアログだかウィザード系でそんなのあったね
QtCreatorのサンプル一覧でもあったんじゃね QtのサンプルをQtCreatorで眺めてたが、少なくともサンプルのサムネイルでは見当たらないな。
それからWizardと名のつくサンプルはないようだ。 >>323
この適当な返答するおっさん前にも湧いてたな QtCreatorそのものがそういうレイアウトじゃろ QtCreatorのはFancyTabWidgetっていうんだけど、
QtCreatorのコアライブラリと密接に結びついてて単独で扱えない。
芋づる式に20個ぐらいソースファイルの移植が必要になる上に、そのままでは動かんようだ。 qt専用のパッケージマネージャqpmってどうです? >>332
質問の場が悪いんじゃね
Qt Forumのgeneralとかいう所で聞いたら早いし優しい QMLってもしかしてスクロール関係が全体的に弱い?
QMLのListBox、100行程度入れただけで
スクロールが耐え難いほど重くなるんだけど
何か軽くする方法とか、別の手段とかない?
画面外のリストはいちいち破棄したり、表示する度に
書いてるようだけど、QMLの描画自体が重いから話にならない
実際には1000行、2000行とか入れる予定だから実用に耐えない
スクリプト言語によくあるような、QMLを予めコンパイルして
描画時スクリプト解析みたいのを無くす方法あればいいんだけど QMLのスクリプト解析描画が重いのって
ColumnやRowのリピート描画でも言えるな
標準のプログレスバーがダサいからリピートで書いたら
重すぎて高速の更新にまるで使えん QML側でどうなってるか知らないが、
ListWidgetやTreeWidgetはC++実装でも重い物だから、
数百項目以上になるなら普通はListViewやTreeViewを使う。
こいつはデータモデルを別途構築して、
Viewクラスがそれをなめて自分で描画するという手順を取る。 Qt World Summit 2017のモバイルアプリどっちも十分出来がいいように思えるな
http://blog.qt.io/blog/2017/09/29/qt-world-summit-app-2017-open-source-live-now
まあモバイルでQt/Qmlが使われるようになる日はこないだろうけど
ライセンスも酷いしな QtはLGPL/GPLの制限がある限りモバイルでは使いものにならないので、
Golangあたりで再実装して、ライセンスもスタティックリンク可能なものにするしか生き残る方法はないと思う。 xamarinがWPF/macOS/Gtk#にも対応するっぽいしマジで最初からc#学んでおくべきだったかな
最近はクロスプラットフォームなアプリといえばまずElectronでQtなんて早々お目にかかれないし、どんどんjsとc#に吸収されていきそう
Qtにうつつを抜かしてたせいでMVVMにもすっかり乗り遅れちゃったしなぁ しかしxamarinの発想は、Qtみたいに同じソースコードでどのプラットフォームにも
同じUIを提供するというものではないからな。
プラットフォームごとにUIは作り直しになる。
しかもC# がネイティブになってる処理系はないから
ツールキットAPIの脳内翻訳が必要になる。 >>337
すまん間違えた、重いのはListBoxじゃなくてListView
もちろんQAbstractListModelを使ってる
DelegateもRectangleとTextだけのシンプルなもの
この重さ、いったい何を想定して作られたんだ?
軽くする方法あるのか?
beginInsertRow-end、beginRemoveRow-endみたいな仕様も
正直めっちゃ使いにくいし、全更新の関数は落ちるし
スクロールバーの位置の保持とかどうすりゃいいねん >>343
スレ違いだからスルーする
>>344
C++で実装すると、15000件登録しても描画は0.1秒未満だよ。
もっとも、画面描画で必要な件数しかアクセスされないから、
画面外の件数は描画速度には直接関係ないが。 >>345
描画をQMLにやらせずC++でってこと?
それができるなら是非それにしたいな、サンプルとかどこかにあるかな?
細かいスクロールの位置保持や復元の方法はわからないけど
指定の行までスクロールさせる命令がQMLにあるでしょ
頭の方の行だったらいいけど、ケツの方の行を指定すると
数秒間フリーズしたみたいになる
その間は表示してないからわからないけど、もしかして
指定行までスムーズにスクロールしててあんなに遅いのか? >>346
QtSDKのソースコードに含まれてるサンプルの中に
QAbstractItemModel/QStandardItemModelそれぞれのサンプルコードがあるよ。
単なる表示用で行選択さえできればいいのなら、後者で実装すればより簡単。
個人的にはQMLはRAD開発やユーザー拡張用で、
本格的なアプリを作るなら普通にC++で作ったほうが速度出るしつぶしが利くと思う。 >>347
Qt使えとかQML使えというのは上の絶対命令でね
初動からおかしいうえに方向転換できない末期に放り込まれたから
とにかくありがとう、めちゃめちゃ参考になった
表示して選択してだけだから、まさに後者かもしれない、早速調べてみるよ FlickableとColumnとRepeaterでテストした限り100件でスクロールが重いってことはない感じ 上の命令なら、商用版でQt Quick Compilerが使えるんじゃない?
まあ、それでもC++ネイティブには負けるけど。 >>344
昔試したけどそこまで重かった記憶ないな。Qtのバージョンは? >>349
今時の速いのが当たり前のスペックだけでテストしてたら商品にならないでしょ
>>351
5 qtのsignal&slotパラダイムってgoto文みたいだよな ■ このスレッドは過去ログ倉庫に格納されています