【RAD統合環境】 Qt 総合スレ 13 【Win/Mac/Linux】
QtCore4.dllとかQtGui4.dllとか同梱されてるアプリは
100%Qt製と思ってええのん?
Qtで作るともっさりなんじゃなくて、Qtに限らず普通に作るともっさりになりがち
さくさく動くアプリは開発者がさくさく動くように作ってるんだよ
もっさりなのが多いのは開発者がタコかそこに力を入れてないだけ
同意せざるを得ない
ユーザーの誤操作で誤動作するプログラムはくそだって
昔、先生がいっていました。
車も原発も糞
業務系では運用で回避が基本なのでプログラムではなくてオペレータの責任です
>>393 >QML最強ですねわかります
スケーラビリティがあればね。小物アプリまでならとてもいい。
「QMLはただの選択肢」ってたまにNokiaの人がブログに書いてるけど
選択肢が増えるのって、この業界じゃあんまいいことじゃないんだよな・・・
JavaScriptが嫌われるのもブラウザ戦争による無駄な苦労が大きそうだし
携帯小物アプリならば選択肢にはなるけれど、CADや複合機などでは選択肢にすらなり得ない。
412 :
【吉】 :2012/05/01(火) 17:11:17.09
おみくじ
あ〜
QtPluginの追加の仕方がわからない
公式に書いてある方法じゃ通らないよ
パス通しても・・・
その程度こともできないで、今時Qtを使う理由ってなんなの?
C++入門として最適
>>413 QCoreApplication::addLibraryPath() はやってみた?
Q_OBJECTマクロについて質問があります。
QGLWidgetを継承したSubクラスを作成しました。
このSubクラスでsignal, slotを用いるためにQ_OBJECTマクロを
クラス内の先頭に記述したのですが、以下のようなエラーが発生しています。
LNK2001: 外部シンボル ""public: virtual struct QMetaObject const * __thiscall SubClass::metaObject(void)const " (?metaObject@SubClass@@UBEPBUQMetaObject@@XZ)" は未解決です。
Qtのmocの置換で生成された関数である、というところまでは調べましたが、
このエラーをなくす方法が分かりません。
申し訳ありませんがご教示いただけないでしょうか。
なお、いくつか他のクラスでも(QWidget)等を継承した場合も同様のエラーが発生しました。
>>417 ・Q_OBJECTと書いたヘッダーファイルをプロジェクトに加えておく
(.proファイルのHEADERSのところに書いておく)
・qmakeを再実行してから(Qt Creatorなら[ビルド]→[qmake実行])
ビルドする。
これでOKなはず。
>>418 レスありがとうございます。
環境はQTCreatorを使っています。
Q_OBJECTと書いたヘッダファイルは
プロジェクトツリーの「ソース」→「新しいファイルを追加」で作成したもので
.proファイルには既に追加済みでした。
・qmakeを再実行してから(Qt Creatorなら[ビルド]→[qmake実行])
こちらのほうは再度試してみましたがダメでした・・・。
先程、新規プロジェクトを立ちあげて、テストクラスを作成したところ
QGLWidgetを継承したサブクラスでsignal,slot共に作成できることが確認できました。
もしかしたら、コンパイル設定がどこかおかしくなってしまったのかもしれません。
一度、新規プロジェクトに作成してソースコードその他を再度登録してコンパイルを試してみます。
clang++でqt使ってる人いる?
コンパイラーとリンカー、qmakeのどこで指定すんだっけ?
Qt 5はclang++になっているのでそれを見てみては?
>>419 qmake実行と同じことだと思うけど、Makefike類をいったん全部消してもダメ?
俺は意味不明なエラーになったときは全てクリーンしてリビルドするとだいたい直る気がするw
>>423 この現象は、それでは直らないんだよ。
原因は、新たにmocで処理しなければならないファイルが増えたのでMakefileを
作り直さなければならないことを、qmakeが認識できてないことにあるらしい。
俺もよくわかってるわけじゃないんだが。
クリーンとかリビルドってのは、コンパイル以降の話なのでこの場合は無関係
だと思う。
>>417 >このSubクラスでsignal, slotを用いるためにQ_OBJECTマクロを
>クラス内の先頭に記述したのですが、以下のようなエラーが発生しています。
コンパイルした後でQ_OBJECTを追加するとmocを動かすルールがMakefileに入っていないのでこのエラーになります。
qmakeを実行して、mocを呼び出すルールが入ったMakefileを生成すれば直ります。
426 :
デフォルトの名無しさん:2012/05/03(木) 08:11:17.23
Qt 5はWindowsもclangなん?
BlackBerryがQt採用
429 :
デフォルトの名無しさん:2012/05/04(金) 01:53:41.99
QMLだけ対応とかなら
いらないです
携帯電話向けのQML以外はオープンソースだから自由にやればよい。
NokiaのTroll達はうまい逃げ場を作ったものだ。
431 :
デフォルトの名無しさん:2012/05/05(土) 03:24:01.02
432 :
デフォルトの名無しさん:2012/05/05(土) 19:35:24.58
質問させてください。
CMake関連なのですが、
>>98 オープンソースのものをとりあえずコンパイルしてみたいという段階の初心者なのですが、
CMake Error at c:/CMake/share/cmake-2.8/Modules/FindQt4.cmake:575 (MESSAGE):
It appears you're trying to use Visual Studio with Qt built by mingw.
Those compilers do not produce code compatible with each other.
Call Stack (most recent call first):
CMakeLists.txt:52 (FIND_PACKAGE)
>>99 qt sdkでないqtを入れてみたら先に進みました
これが自分のWindows XP環境でも発生して、
コンパイルできず困っています。
新しいQtのインストールや環境変数からVisual C++のパスを除いたりを試して
みたのですが、うまくゆきません。
何が足りないのか、アドバイスいただけないでしょうか。
よろしくお願いします。
>>432 >オープンソースのものをとりあえずコンパイルしてみたいという段階の初心者なのですが、
であれば、CMakeは使わずにMinGWを使えば簡単にコンパイルできます。
434 :
432:2012/05/06(日) 12:09:53.94
レスありがとうございます。
フリーのソフトのプロジェクトをビルドしたい感じでして、
INSTALLファイルを見てみるとcmakeでビルドするように書いてあるのです。
ディレクトリ構成がMinGWでビルドする用になっていない気がしまして・・
あまり関係無いでしょうか。
Debian + Qt2.8.1 にアップデートしたら、
QNetworkManager が、RC4 暗号化を使ってる https サイトに接続できなくなった、、、
デバッガで追うのは明日以降にして、バージョン戻し中、、、
徹夜しそう、、、orz
バージョン戻したら動いてくれて助かった、、、
とりあえず LD_LIBRARY_PATH で回避。
MinGW gcc 4.6.1でビルドしたlapackをQtで使いたくて悪戦苦闘中。
ツールチェインをmingw 4.6.1にしてビルドしたらmainに到達前に死ぬプログラムができる。
Qt付属のmingw 4.4でビルドすると、lapackに必要なlibgfortranがないのでビルド失敗。
Qtライブラリをmingw 4.6.1でコンパイルしようとすると、wchar_t*をLPSTRに変換できない類のエラーがわんさか出てきて断念
(ソースでGetProcessorNameとなっているのに、実際にはGetProcessorNameAとANSI版に置き換えられてエラー。なぜunicode版を使わない!)
素直にmingw 4.4を入れてlapackを作り直しか。
チラウラスマソ
clang早く来てくれー
440 :
438:2012/05/08(火) 19:10:19.57
sourceforgeが込んでてMinGWのアップデートに失敗、4.6.1と4.6.2が混在している状態だったので死んでただけだったorz
QGraphicsWebviewでスクロールするとflashがずれるのどうにかならんかなー
442 :
デフォルトの名無しさん:2012/05/08(火) 23:16:16.53
PyQt4を使っています。
http://pastebin.com/qXE22gg9 のようなコードを書いてscrollAreaの中に縦の長さが動的に変化する(動的にlayoutに追加している)Widgetを組み込んでおり、横方向はscrollAreaに合わせ、縦はボタン数に応じて伸長するようにさせたいのですが、どうしたらいいのでしょうか?
adjustSize()では横方向の大きさがあわず、しかもなぜかspinBoxの値が2の時にbuttonPanelの大きさが変わっていないのかボタンが小さくなってしまいます(3以降は逆にだんだん大きくなっていきます)。
ButtonPanelをButtonLayout(QVBoxlayoutを継承しButtonPanelの機能を持たせたクラス)に変えたら、横方向はぴったりなのですが、中身が縦方向に伸長しませんでした。
Qtを初めて使ったのですが、デバッグについて質問させていただきます。
適当なGUIアプリケーションを作って、デバッグを行うと警告メッセージダイアログが表示されます。
具体的には、CDBバイナリが見つからないからGDBengineを使いますといった内容です。
もちろん、現状ではブレークポイントでもブレークしてくれません。
QtSDKをインストールする以外にデバッグを行うためには細かな設定が必要なのでしょうか?
それとも、インストール時の問題なら、再度入れなおしてみるのですが・・・
Qtを初めて使ったのですが、痛くてとても入りません。
>>442 俺が適当に書いたサンプルコードをそのまま使うなよ…
ButtonPanel.__init__で
self.layout.setSizeConstraint(QLayout.SetFixedSize)
でいけた(PySideで確認)、他にはボタンのminimumSizeやsizePolicyをいじるとか
>>443 VC++で使うならWindows SDKのDebugging Tools for Windowsを入れないとダメだったと思う
よくわからないけどとりあえず触ってみたいってことならMinGW版のSDK入れればそのままいけたはず
あの例の延々、延期になってた本が発売されてる・・・
448 :
デフォルトの名無しさん:2012/05/09(水) 14:36:05.48
>>434 レスありがとうございます。
cmakeで生成されるconfig.hがビルドに必要なようでして、やはりcmakeを
使う必要がありそうで、まだ悩んでいます。
QtCreatorでプロジェクトの中にあるCMakeLists.txt を開くと
cmakeでビルドするウィザードが出ることが分かったので、
そちらのやり方に変えてみているのですが、まだつまづいています。
CMakeウィザードに、
「/path/to/build_dir/ の中にcbpファイルが存在しません。
CMakeを実行してこのファイルを生成して下さい。・・・」
のような表示が出るのですが、ジェネレータの選択オプションが空になっており
何も選べず、先に進めません。このジェネレータとは何なのでしょうか?
どうすれば先に進めるか教えていただけると嬉しいです。
http://toro.2ch.net/test/read.cgi/tech/1329530477/401-500
あの本出てるぞ。今度は出す出す詐欺じゃなくて、マジで出た
実践Qt4?
誰か買った奴いないの
後数ヶ月でQt5がリリースされるタイミングで出されてもという気がしないでもない
むしろ Qt5 出てしまうとやばいので慌てて売りに出たという
454 :
デフォルトの名無しさん:2012/05/09(水) 21:44:51.62
>>455 お察しの通り流用させていただきました。そのことについて断りがなかった点については謝罪します。
今日一日色々試してみて、ButtonPanelのコンストラクタにself.layout.setSizeConstraint(QLayout.SetMinimumSize)
を追加し(QLayout.SetFixedSizeでは横方向に伸長しなかったので)、TestWidgetのresizeEventをオーバーライドしてサイズが変わるごとに
self.buttonPanel.resize(self.scrollArea.width()-19,self.buttonPanel.height())
として調整したら(無理やりですが)希望どおりの挙動をするようになりました。
>>449 わざわざありがとうございます。こちらの方がすっきりしていますね。参考にさせていただきます。
456 :
デフォルトの名無しさん:2012/05/09(水) 21:52:59.95
Qt 5も出す出すと、また延期。現状ボロボロだからまたまた延期で、
出ても使えるようになるのは5.1か5.2。
まるで MS の製品の話を聞いているようだ
Qt Projectになってから収拾が付けにくくなっているな。Qt 4との互換性も徐々にないがしろにされていっているし。
Troll達がNokiaで生き残るためにはそれしか方法がなかったのだろうが。
馬鹿には無理
質問です。
QLineEditを用いて、文字入力をしているのですが
その際、一つ実現出来ない機能があって悩んでます。。。
文字を入力する際、QLineEditに表示されているカーソルを
「|」ではなく「_」にして、線を文字の下に表示するように
したいのですがどうすれば出来ますでしょうか?
また、「_」は全文字ではなく、常にカーソルがある位置にある
文字の下にのみ「_」を表示させたいです。
アンダースコアが入らないってこと?
ばかですか?w
>>463 アンダースコアは入力出来るのですが、
カーソルの位置にある文字の下にアンダースコアが入れられずに悩んでる状況orz
例えば、TextEditに文字が無い場合はTextEditの先頭で"_"が点滅していて、
「a」と入力するとaの下で"_"が点滅。
右のキーを押すと"_"がaの隣に移動して点滅という具合です。
>>463 少し訂正です。
「カーソルの位置にある〜」と書きましたが、
そもそもEdit上で点滅しているカーソルを"|"ではなく"_"にしたいという考えです。
QLineEdit の派生クラスを作って、カーソルを自前で描画すればいいのでは?
結果報告
>>468のサイトよりソースをダウンロードし、
それをカスタマイズすることで意図する動作となりました。
有難うございますm(_ _)m
お役に立ててなによりでござるぞ
Iビーム
これは・・・
デスクトップ向けのC++部分はintelが買い取ってくれないかな
そだね、インテルかIBMがいいね。Google だとバグだらけ。
macやlinuxでQWinHostみたいなのありますか?
googleは自社で開発できる能力はなく、買収しかできないからなw
あります
やっぱ、最終的に勝つのは、プログラム界のブラジル・Gtkだな・・・
Phononを使いたくて
>>4 の手順でVS版をインストールしたんだけど,
Qt Versions」を開いて自動検出された「PATH に含まれる Qt」をクリックし「MSVC バージョン」を 9.0 にする
って所で自動検出がそもそもされないんだけど…
自分で追加してもデバッグヘルパみたいな項目は全部灰色になって変更できないし,
コマンドプロンプトからqmakeって打つと動くので環境変数は間違ってないはず&
ログオフしてログインしても現象は変わらず.
手動で追加した状態でサンプルを動かそうとしても,ハローワールドは動くけどPhononを使おうとすると,
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall Phonon::VideoPlayer::~VideoPlayer(void)" (__imp_??1VideoPlayer@Phonon@@UAE@XZ) referenced in function _main
とか
18:15:13: The process "C:\Qt\qtcreator-2.5.0\bin\jom.exe" exited with code 2.
Error while building/deploying project te (target: Desktop)
When executing step 'Make'
とかによってコンパイルできないんだけど,解決法知ってる人いる?
64bit win7でVS2010で,Qtに関しては
>>4 のリンクのやつを使ってます.
>>482 まさにその通りだった…んだけど,VS2010を入れたら今度は
c:\qt\4.8.1\src\corelib\global\qglobal.h:45: error: C1083: Cannot open include file: 'stddef.h': No such file or directory
って出て来てハローワールドすらできなくなった…
しかもWinSDKとかVSとかをいじってたらコンパネに無いのを削除して下さいとか言われてよくわかんなくなったので再インストールしてきます…
>>483 pro ファイルを開いて、stddef.h の行があったら、それを削除するとどう?
485 :
481:2012/05/15(火) 13:38:49.19
>>483 proファイルは触ってないのでstddef.hは無かったんだけど,
VS2010を再インストールしたらその問題は解決して,ハローワールドはできたよ.ありがとう.
でもPhononを使おうとすると
>>481 と全く同じ症状に戻っただけだった.
エラーはこんな感じ
13:20:54: Running steps for project t...
13:20:54: Configuration unchanged, skipping qmake step.
13:20:54: Starting: "C:\Qt\qtcreator-2.5.0\bin\jom.exe"
C:\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL (長いので改行)
-DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT (長いので改行)
-I"..\..\..\..\Qt\4.8.1\include\QtCore" -I"..\..\..\..\Qt\4.8.1\include" -I"..\..\..\..\Qt\4.8.1\include\ActiveQt" (長いので改行)
-I"debug" -I"..\t" -I"." -I"..\..\..\..\Qt\4.8.1\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\username\AppData\Local\Temp\main.obj.612.47.jom
486 :
481:2012/05/15(火) 13:40:29.07
エラーその2
main.cpp
link /LIBPATH:"c:\Qt\4.8.1\lib" /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' (改行)
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" (改行)
/MANIFEST /MANIFESTFILE:"debug\t.intermediate.manifest" /OUT:debug\t.exe @C:\Users\username\AppData\Local\Temp\t.exe.612.1436.jom
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall Phonon::VideoPlayer::~VideoPlayer(void)" (改行)
(__imp_??1VideoPlayer@Phonon@@UAE@XZ) referenced in function _main
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall QWidget::show(void)" (改行)
(__imp_?show@QWidget@@QAEXXZ) referenced in function _main
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall Phonon::MediaSource::~MediaSource(void)" (改行)
(__imp_??1MediaSource@Phonon@@QAE@XZ) referenced in function _main
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall Phonon::VideoPlayer::play(class Phonon::MediaSource const &)" (改行)
(__imp_?play@VideoPlayer@Phonon@@QAEXABVMediaSource@2@@Z) referenced in function _main
487 :
481:2012/05/15(火) 13:41:09.80
エラーその3
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall Phonon::MediaSource::MediaSource(class QString const &)" (改行)
(__imp_??0MediaSource@Phonon@@QAE@ABVQString@@@Z) referenced in function _main
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall Phonon::VideoPlayer::VideoPlayer(enum Phonon::Category,class QWidget *)" (改行)
(__imp_??0VideoPlayer@Phonon@@QAE@W4Category@1@PAVQWidget@@@Z) referenced in function _main
debug\t.exe : fatal error LNK1120: 6 unresolved externals
jom: C:\Users\username\Documents\t-build-desktop-Qt_4_8_1__4_8_1__Debug\Makefile.Debug [debug\t.exe] Error 1120
jom: C:\Users\username\Documents\t-build-desktop-Qt_4_8_1__4_8_1__Debug\Makefile [debug] Error 2
13:20:56: The process "C:\Qt\qtcreator-2.5.0\bin\jom.exe" exited with code 2.
Error while building/deploying project t (target: Desktop)
When executing step 'Make'
488 :
481:2012/05/15(火) 13:42:57.56
490 :
481:2012/05/16(水) 10:37:44.52
Qt 4.8でinitializeGLFunctionsで落ちるんですが原因わかりますでしょうか?
環境くらい書けよ
環境
>>491 プロジェクトのオプションで、実行環境がデフォルトのビルド環境になっているとエラーが出る。
システムか、クリーンにするべし。
4.8.0以降はglut全滅。というかincludeすらしてないよ。
4.7.4にもどしたらいい。
>>495 プラットフォームに合わせて、GLUT/glut.hかGL/glu.hをincludeすればglutは使えるし、
QMatrix4x4などでglutを使っているのを書き直せばglutなしにもできます。
今一番安定なのは4.7.4かな
>>494 ありがとうございます
QGLContextがNULLだったのが原因ぽいです
499 :
デフォルトの名無しさん:2012/05/19(土) 19:05:55.28
Windows8でタブレット式になったら、Qtで作ったGUIアプリケーションも
動くのかな?
500 :
デフォルトの名無しさん:2012/05/19(土) 19:15:30.56
動かないしタブレット関係ないから手を出さなくていいよ