X



【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 18©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©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/
0748デフォルトの名無しさん
垢版 |
2018/07/01(日) 03:09:03.95ID:dsG/NsPI
iOSとAndroidのアプリをQtで作ろうとしたけれどまともなもの作れないじゃないか。
どっちのUIもひどい。iWatch対応ってなっているけれどUIを作れないのは嘘つきだ。
モバイル対応はまったくできていない。
0750デフォルトの名無しさん
垢版 |
2018/07/01(日) 08:54:25.37ID:s+tkdMF1
○Windows アプリをそのままAndroid で動かせる
×Android SDKをフルセットで扱える

iOS?知らんがな
0751デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:19:05.01ID:gFgZc5FG
JE3
0753デフォルトの名無しさん
垢版 |
2018/07/05(木) 16:39:24.77ID:bmsMRAhD
福岡で人殺したのと同じような粘着を感じる
0754デフォルトの名無しさん
垢版 |
2018/07/06(金) 21:17:56.90ID:qwHUUd4G
Qtって誰が使ってるんだろう
話題になったアプリがQt製だったことなんて2年前のopentoonz以来知らないわ
0756デフォルトの名無しさん
垢版 |
2018/07/06(金) 23:12:19.16ID:hQdG24X7
ぶっちゃけ、デザインに『凝ってない』アプリか、
Windows でライブラリが同梱されてるかぐらいじゃないと気付かないと思う

業務用、組込み用なんてわかるはずもなく
0758デフォルトの名無しさん
垢版 |
2018/07/07(土) 01:00:31.79ID:7gowXclh
手元のPCで見る限り、
・フリーソフトの動画編集ソフトで海外製のやつはだいたい
・DropBox
・Adobe AIR/OpenCL SDK
・画像ビューアがいくつか、
だな。
スタティックリンクされてるのまでは調べてない。
0760デフォルトの名無しさん
垢版 |
2018/07/07(土) 09:44:57.65ID:IaRheRZb
>>757
Tkinterが標準でしょ・・。

あと、PyGtkもC言語のGtkよりWebページだくさんあるよ。
0762デフォルトの名無しさん
垢版 |
2018/07/17(火) 23:18:24.55ID:23aiddq7
こちらのゲームツールをwindowsで実行したいのですが
http://generalarcade.com/gamepadtool/

エラーメッセージのダイアログが出てしまいます。
ダウンロードして解凍するだけなので再インストールはできないし、
対処方法を探しましたが解決できないため
お伺いする次第です。どうやれば実行出来るのでしょうか

検索しても、

1. qt.conf をつくれ → 何のパスを設定すれば良いかわからない
2. depends でパスを調べれ → 対応してもエラー箇所が減らない
3. 作者に聞いてみる → 解凍して実行しろよとのお言葉。わけわからん

マシンはwindows10 pro x64,QT5.8もインストールしてみました。

---------------------------
gamepad-tool
---------------------------
This application failed to start because it could not find or load the Qt platform plugin "windows"
in "".

Reinstalling the application may fix this problem.
---------------------------
OK
---------------------------
0764デフォルトの名無しさん
垢版 |
2018/07/18(水) 06:13:35.33ID:qVUGnzpI
>>763
残念ながらどちらともダメでした。
回答ありがとうございました。
0765デフォルトの名無しさん
垢版 |
2018/07/18(水) 13:12:26.50ID:jJw1m5s0
ファイルパス・PC のユーザー名など、システムに日本語を使うな

半角英数字だけを使え
0766デフォルトの名無しさん
垢版 |
2018/07/18(水) 15:04:34.08ID:nWGFDyl7
それ、どっちかっていうとmingwの制約かと

まぁ開発者にとって気持ち悪さは半端ないけども
0767デフォルトの名無しさん
垢版 |
2018/07/19(木) 08:35:43.65ID:3Q3O2uwB
>>762
それはqwindows.dllが足りないときに出る症状だ。

通常platforms\qwindows.dll に配置すればいい。

qt.confを各と、Qt製アプリが必要とするQtのプラグイン等のパスを変更することができる。

Qt SDKのwindeployqt.exeにアプリのexeをドロップすると、そのアプリが必要とするプラグインや
設定ファイルが自動生成されるからやってみるといいかもね。
0768762
垢版 |
2018/07/21(土) 21:02:13.57ID:1rDQTKz9
回答ありがとうございます。
結果からいうと、動くようになりました。
解凍でwindows10の展開機能を使いました。
サードの解凍ソフトではエラーが出るのです。

作者殿の回答をよくよく見てみれば確かにそう書いてありました。
0770デフォルトの名無しさん
垢版 |
2018/07/22(日) 04:07:23.46ID:UzkOgwHb
当人じゃなく、別件ではあるが、
圧縮解凍ライブラリが静的リンクされてるやつ、
もしくは32bit系当時のソフトだとなりがち

メジャーなライブラリで、dll形式で同梱されてるやつだと、
そこだけ更新すりゃ特に問題起きないね
0771デフォルトの名無しさん
垢版 |
2018/07/22(日) 20:50:52.89ID:3i0K2IoV
たとえばLhaPlusみたいなクソアーカイバだと、
deflate64なzipの展開をぶっ壊れた状態で平気で展開するから
作者に余計なクレームが届く悲劇が起こる。

そのくせLhaPlusは公開したままだしな。
マジ迷惑だわ。
0772デフォルトの名無しさん
垢版 |
2018/07/23(月) 10:17:56.08ID:eU1p7hr8
古すぎるそんなの使うなって話だけど
それなら公開したままのサイトの責任もあるよな
0773デフォルトの名無しさん
垢版 |
2018/07/23(月) 19:07:16.75ID:bgcPBI8p
お気楽な無責任バグ修正ビジネスモデル
Open Governance → Open Maintenance → Waiting for 3rd party response
→ Too old → Removed
0774デフォルトの名無しさん
垢版 |
2018/07/25(水) 16:28:39.31ID:TbDHSr+9
Qt Creatorで開発を始めたところです。
Windowsで、日本語を含む文字列「テスト.txt」を引数に渡すと「???.txt」に文字化けします。
デバッガで見ると、main文のargvの時点で「???.txt」になってます。
QString::fromLocal8bit(argv[1])の結果も同様です。
これってなぜでしょうか?
(Linux上では問題なし)
0775デフォルトの名無しさん
垢版 |
2018/07/25(水) 17:53:47.29ID:8PO6NK+Q
encoding設定汁
0776デフォルトの名無しさん
垢版 |
2018/07/25(水) 18:59:21.15ID:TbDHSr+9
>>775
ファイルをUTF-8 BOM付きにしたらイけました。
(コンパイラはVisual C++)
ありがとうございます。
0777デフォルトの名無しさん
垢版 |
2018/07/25(水) 20:19:12.32ID:NI8Yywyu
ちなみに Visual Studio で、ソースコードを BOM なしにするとひどいことになるゾ

主に日本語コメントがめんどくさくて、
/*これはダメで*/
/* これはOKだ */
0780デフォルトの名無しさん
垢版 |
2018/07/26(木) 02:12:01.56ID:sKjh+yFy
BOM なしUTF8にした場合の話ね
/*の直後にマルチバイト文字が来ると誤判定されるっぽい

まぁVisual Studio としてもBOM ありを推奨してたはずだから文句は言えないのだけど
0781デフォルトの名無しさん
垢版 |
2018/07/26(木) 21:35:10.90ID:27ylTyqt
というよりも、プログラムに日本語を混入する方が馬鹿げているので、
プログラム本体は全て英語で作って日本語の部分はコメント程度に留めておくことを進める。
文字列リテラルとかは全部外部化する
0784デフォルトの名無しさん
垢版 |
2018/07/27(金) 05:23:50.48ID:XpW7fkKf
昔、YPSと言う日本語+フローチャートな言語があってな・・・・ってまだ作っとんかい!?→不治痛
0785デフォルトの名無しさん
垢版 |
2018/07/27(金) 06:13:48.88ID:uuhNedST
>>781
Qtは特にそうだな
0786デフォルトの名無しさん
垢版 |
2018/07/28(土) 08:36:42.20ID:w1bpvOAm
文字列リテラルを全部外部化するといっても、必ずしもテキストファイルを読み込むコードを手で書く必要はない。
tr("abc")
ってプログラム中に書いておいて、Qt Linguistで言語リソースを作ってアプリにバンドルすれば、
実行時には文字列"abc"に対してQtが自動的に
日本語の文字列を割り当てる形でプログラム中に読み込まれる。

もちろん言語リソースの選択はPC環境の言語に合わせて自動選択することも明示的に選択することもできるし、
iniファイルとかを作って自前で差し替えするコードを書くこともできる。
0787デフォルトの名無しさん
垢版 |
2018/07/29(日) 20:46:29.05ID:6vWbeAZB
midiの編集ソフトを探しています

GUIアプリケーションの開発になるので、VisualStudioでMFCと思い立ち、WindowsAPIにはmidi関連のAPIも含まれてるので、面倒なサードパーティライブラリを用意したりmidi再生部分を自作する手間が省けると思いました

調べたらQtもmidi関連のAPIを持ってそうな雰囲気なのですがどうなのでしょう?
ただ、日本語の情報がなさそうでした

確かFluidSynthのGUIがQt製だったように思いますSoundFontが使えるのでmidi化したあとのプレイバックに使えますかね?
0788デフォルトの名無しさん
垢版 |
2018/07/30(月) 10:27:06.88ID:Qfso/A9s
openmidi
0789デフォルトの名無しさん
垢版 |
2018/07/30(月) 10:35:04.03ID:Wg41h7hn
ふと思ったんですが、スキャンした楽譜からMIDIデータを生成するんじゃなくて、例えばMuseScoreのような楽譜xmlを書き出した方が良いですよね
0790デフォルトの名無しさん
垢版 |
2018/07/30(月) 10:55:01.51ID:t5W0Q4n1
楽譜の読み方とかよく知らないけど、五線譜のエディタがあっておたまじゃくしを配置するとドレミとか再生に必要な情報がキューイングされて行って、midiファイルをエクスポートする時にmidiのデータ形式に変換されるイメージだった
楽譜の画像解析とか面倒な事はしなくて、ユーザーに楽譜を書かせる感じ
openmidiのページにある世界樹ってやつの機能切り出し版みたいな
0791デフォルトの名無しさん
垢版 |
2018/07/30(月) 11:04:24.33ID:Wg41h7hn
任意の位置の点が0か1か、と、楽譜、なら、こりゃもう楽譜OCRだろうと思ってたw
0792デフォルトの名無しさん
垢版 |
2018/07/30(月) 13:01:58.86ID:OTf1bV4O
soundOCRなら意味あるけど楽譜OCRなんて馬鹿のやること
0793デフォルトの名無しさん
垢版 |
2018/07/30(月) 18:11:08.73ID:Wg41h7hn
単純にドレミをmidi形式でシリアライズするぐらいならWindowsAPIとかQt備え付けのAPIで充分かな〜と思ってたけど、エフェクトとかも編集したいとか要望が複雑化してくるのなら確かにopenmidi使うのが良いかも
openmidiで物足りねぇ俺はもっと変態的な事がしたいんだ!ってなった時にはサウンドプログラミングを学ぶのも手かな
0795デフォルトの名無しさん
垢版 |
2018/08/30(木) 01:34:31.21ID:lcYNN+N9
Qtで表を表示したいんですけど
1つのヘッダーに2列データを表示するみたいなことって出来ませんかね?
0796デフォルトの名無しさん
垢版 |
2018/08/30(木) 10:13:29.80ID:S/vwwZyF
可能
0797デフォルトの名無しさん
垢版 |
2018/08/30(木) 19:41:41.51ID:V2Id/lva
>>795
QStyledItemDelegateを使って描画イベントを乗っ取るのが一番簡単だと思う。

基本的には元の描画方法をコピペして乗っ取っても同じ描画になることを確認してから、
少しずつカスタマイズしていく。
0799デフォルトの名無しさん
垢版 |
2018/09/06(木) 08:32:09.29ID:xZU7TQSU
QPrintDialogでオプションで設定した用紙サイズが反映されないんですが、
なにか原因ありますかね?

printer->setPaperSize( QPagedPaintDevice::A3 );
printer->setPageOrientation( QPageLayout::Landscape );

QPrintDialog *printDialog = new QPrintDialog( printer, 0 );

printDialog->enabledOptions();
0801デフォルトの名無しさん
垢版 |
2018/09/08(土) 10:43:44.48ID:8EdXckwk
electronでいいよ
0802デフォルトの名無しさん
垢版 |
2018/09/09(日) 02:18:50.96ID:mNtyUT/G
質問です
C++ではこんな風に書けばメインスレッドに簡単に投げられますがpyqtで似たようなことをするにはどうすればいいでしょうか?
QObject::connect(&QObject(), &QObject::destroyed, [&]() { });
0803デフォルトの名無しさん
垢版 |
2018/09/09(日) 11:15:13.75ID:kzlGF2pO
pyqtにもconnectはあるよ
0804デフォルトの名無しさん
垢版 |
2018/09/09(日) 18:46:55.69ID:mNtyUT/G
こんな風にしたいんだけどどうすればいいのか全くわからない
そもそもconnectが見つからない

from PyQt5.QtCore import QObject
QObject.connect(QObject(), QObject.destroyed, lambda: print("print"))
0805デフォルトの名無しさん
垢版 |
2018/09/10(月) 10:58:31.95ID:wQh8RVrU
instance に connect 汁
0806デフォルトの名無しさん
垢版 |
2018/09/18(火) 19:21:21.69ID:8qpEkq+C
フラットデザインといいますかwebページっぽいデザインにしなくてはいけなくなったんですが
webengineを使わずにそれっぽいデザインのサンプルはどこかにないでしょうか?
0807デフォルトの名無しさん
垢版 |
2018/09/18(火) 20:38:45.60ID:b8yWRBG5
Qtアプリの見た目を変更するのはWidgetにStyleSheetを適用するんだが、
アプリ全体に同じようなStyleを統一的に適用するためのThemeという仕組みが存在する。

基本的に各OSごとに用意されているわけだが、フラットなUIを実現してくれるThemeがなにかあるかもね。
見つけたら報告してね。
0809デフォルトの名無しさん
垢版 |
2018/09/20(木) 00:45:00.21ID:w38b2cTU
windows10でQt5.11+qtcreator4.6にしてから、
日本語入力して確定前にBackspaceで入力中の文字を削除すると、
実際のテキストでは消えているのに、表示上は消えず、しかもカーソルが
消えてしまう、みたいな現象があるのですが、解決方法ご存知の方いませんか。
0810デフォルトの名無しさん
垢版 |
2018/09/20(木) 03:10:11.46ID:71xXtLtN
>>808
俺もそう思うがリバースエンジニアリング対策でコンパイルできる言語でないとだめだと言われた
0812デフォルトの名無しさん
垢版 |
2018/09/20(木) 23:14:13.37ID:jIZcwJ0v
ウィジェットコンポーネントが整備されてない
Electronでまともなアプリを作ろうと思ったら火傷するだけだと思うんだがな。
最近のエンジニアはそう思わないんだろうか。
0813デフォルトの名無しさん
垢版 |
2018/10/05(金) 21:55:50.06ID:VwoZZtVF
WindowsのQtで、USB シリアル使用中に、USBケーブル引っこ抜かれたときのえらーって
検知・対処方法ってわかりますか
スレッドの終了またはアプリケーションの要求によってI/O処理は中止されました
と出て、次に延々と
デバイスがコマンドを認識できません
のダイアログが出てきて追われないんです。
仕方なしにタスクマネジャから殺しています
殺さずに自分で終わりたいのですが
0814デフォルトの名無しさん
垢版 |
2018/10/05(金) 22:09:58.78ID:fyk4/HsR
>>813
んー、Windowsでシリアルデバイスを扱うこと自体はWin32 APIでもそれほど難しい処理ではないから、
一度自力でサンプルを書いて挙動を調べたほうがいいと思うよ。

API越しのデバイスの実際の挙動を把握してから、自分で作ったQtのプログラムでどうすべきか考えればいいのでは。

あるいは、GUIだけQtで作って、通信部分はWin32 APIで記述するキメラ実装であってもいいわけだし。
0817デフォルトの名無しさん
垢版 |
2018/10/12(金) 05:12:06.58ID:1iFt3dhJ
asioだっけ
0818デフォルトの名無しさん
垢版 |
2018/10/14(日) 02:33:24.17ID:iHlUkB5I
boost.asioはライブラリを作るためのライブラリなので便利なライブラリを見つけてきた方がいい
0819デフォルトの名無しさん
垢版 |
2018/10/16(火) 01:42:35.33ID:ia4noRZU
c++の構造体をqml側で読み込むには構造体の要素それぞれをQ_PROPERTYマクロで宣言するしかないのでしょうか?
0821デフォルトの名無しさん
垢版 |
2018/10/30(火) 08:06:52.17ID:5foPrrB2
サブプロジェクトに分けて、最終成果物だけリビルドしたらそれほど遅くはない
0823デフォルトの名無しさん
垢版 |
2018/10/30(火) 21:35:04.96ID:5foPrrB2
まぢかw

qmakeが今ひとつ書きづらいところがあるからqbsに将来的に移行しようと思ってたが、
(installシステムを活用しないとまともに処理が書けない)
CMakeに開発リソース突っ込むのかよ。

こりゃあqmakeも捨ててCMakeで書き直したほうがいいかもなあ。
0825デフォルトの名無しさん
垢版 |
2018/11/24(土) 02:29:31.13ID:+or5Qf7y
あれから勉強してqbsで
自作のProductやModule/Ruleを書いて動かせるようになったが、
資料がなさすぎて死ねるな。

公式ソース添付のテストプロジェクトが一番マシな資料というね。
0826デフォルトの名無しさん
垢版 |
2018/12/10(月) 18:14:16.27ID:E1cmU6C8
最近転職活動してるんだが、Qt の需要高くなってんのな
車載経験してるのもあるけど、他業界の組込み系もQt採用を追従してて、
そんなにアピールしてないのにそこに食い付く企業さん多い
0829デフォルトの名無しさん
垢版 |
2018/12/10(月) 22:19:24.58ID:tDHB0Ch6
組み込み系UIでまともに使えるフレームワークがあって、タッチ操作がさばけるのはQtくらいしかないからな
0835デフォルトの名無しさん
垢版 |
2018/12/12(水) 21:24:59.35ID:vpkDqqDI
javaからの移行考えてるけど
メモリリークが不安で踏み切れないです

正式記述は覚えることは基本として
使いやすい(手間のかけない)fullGCみたいのってあります?
メモリリークの検出機能でなんとかなるのかな
0836デフォルトの名無しさん
垢版 |
2018/12/13(木) 00:27:29.81ID:T0k+nfUW
そんなものはない。
ってかメモリ開放は全て責任をとった上で、
メモリブロックの開放確保のアルゴリズムをライブラリ切り替えで変更するのがC++の流儀。
まあ、Qtはその部分も内蔵してるので、ここを差し替えるときは自力でQt全体のビルドが必要になるが。

メモリ確保がシビアなら、実際の処理を別プロセスにやらせて、プロセスごと殺せばいいんじゃね。
その方が手っ取り早い。
0837デフォルトの名無しさん
垢版 |
2018/12/13(木) 09:23:33.79ID:Tb5Xcrhu
よく思うのだけど、Qt のサンプルとかってやけにnewで動的確保してない?

必要な時に初期化しつつ生成ならまだしも、
常に持ち続けるパラメータだったり、生成が一度限りのインスタンスだったり

QObject や QWidget のベースクラスへのポインタ渡せば、
自壊時にメモリの解放もしてくれます、って機能は、
逆に new で動的確保したアドレスでないとダメって縛りはないですよね?
0838デフォルトの名無しさん
垢版 |
2018/12/13(木) 11:40:53.67ID:zFPTCGev
親子にしておけば勝手に解放してくれるから
newしまくるのがQt流
0843デフォルトの名無しさん
垢版 |
2018/12/13(木) 23:20:41.58ID:T0k+nfUW
Qtで2万行ぐらいのアプリ作ってるけど、
結構ローカルスコープでインスタンスを扱うことが多いかな。

QImageとか、カジュアルにインスタンスをコピーしても
パフォーマンスの問題がないのは嬉しいね。

ポインタをやむを得ず使うのはコピーコンストラクタがまともにないクラスを扱う場合。
0844デフォルトの名無しさん
垢版 |
2018/12/13(木) 23:59:19.17ID:GwYCK18f
そりゃインスタンスは余程のことがなけりゃ滅多に動的では取らんだろー
今も昔も変わらずさ

一般型の動的配列はCやってきた奴はalloc使いたがるつーかallocしか知らんけど
C++ならnewだわな
■ このスレッドは過去ログ倉庫に格納されています

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