問題タブ [qt5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - CMakeのQtMainをQt5とリンクするには?
プロジェクト コードを Qt4 から Qt5 にアップグレードしました。CMakeを使用しています。Qt関連のCmakeコマンドの1行を除いて、変換はうまくいきました。次のような現在のドキュメントでは見つかりません
- http://qt-project.org/doc/qt-5.0/qtdoc/cmake-manual.html
- http://qt-project.org/doc/qt-5.0/qtdoc/qtmain.html
CMake から QtMain とリンクするには (Qt5 を使用)?
私のプロジェクトを変換する唯一の欠落ビットです。誰かがこれを説明するドキュメントを教えてくれますか、またはQt5でそれを行う方法を説明できますか? 私の Qt4 コードは正しく動作しましたが、Qt5 の Cmake マクロが見つかりません。
編集> 現時点で持っているCMakeファイルは次のとおりです。
すべての qt5 の必要な CMake マクロは正しく設定されていると思います。動作しないのは、何もしない QtMain へのリンクだけです。 Qt5 ドキュメント。
ファイル履歴を参照して、Qt4 でどのように動作していたかを確認できます。
qt - QT5 ライブラリでデプロイされたアプリケーションが Windows 7 で起動しない
最近、Windows 上の QT ベースのアプリケーションを QT 4.8 から QT 5 に移行しましたが、展開で問題が発生しました。アプリは変更されていないことに注意してください。新しい QT5 フレームワークでビルドしただけです。少し努力して、VS2010 ベースの QT5 ライブラリでビルドすることができました。そして、Qt Creator からアプリを正常に実行しました。
QT4 で行ったように、必要な QT ライブラリのセットをインストーラーに含めました。
テスト段階で、クリーンなマシンに QT5 アプリをインストールしたとき。それは始まりません。アプリケーションが起動しないだけでなく、エラーも出力されませんでした。
依存関係チェッカーを通じてアプリを実行しました。また、欠落しているライブラリの依存関係はまったくありませんでした。
c++ - アプリケーションが Qt でフォーカスを失ったことを検出するにはどうすればよいですか?
マウス カーソルが特定のウィジェットの上にあるときにポップアップ ウィンドウを表示しています。マウスがウィジェットから離れたときにこのポップアップを非表示にしたいと考えています。
それを行うために、私は再実装しleaveEvent()
ました。これは、別のアプリケーションに切り替える場合を除いて、すべての場合に機能するようAlt+Tab
です。おそらく別のイベントをキャッチする必要があることがわかりましたが、どういうわけか適切なイベントが見つかりません。1つ提案できますか?
qt - QT5 QSound がすべての wave ファイルを再生しない
QT4.X ベースのアプリを QT5 に移行中です。Phonon のサポートは QT5 で削除されたため、QSound を使用するように Wave ファイルを再生するコードを変更しました。
変更は非常に簡単です。マルチメディアライブラリにあるQSoundを使用する必要がありました。コードは次のとおりです。
私の Wave ファイルのほとんどは、これで問題なく動作します。ただし、私のウェーブ ファイル (44100Hz のサンプル レート) では機能しません。
公式の QT バグはここにあります。
更新: このバグは qt 5.1 で修正されました
windows - Qt が windows.h を見つけられない
SDK7がインストールされたWindows 7 + msvc2010の下で、Qt5、QtCreatorを使用して簡単なプログラムを実行しています。このプログラムで特定の Windows 関数を呼び出す必要があります。
コンパイルしようとすると、常に次のようになります。
エラー: C1083: インクルード ファイルを開けません: 'Windows.h': そのようなファイルまたはディレクトリはありません。
もちろん、私はdevを「通常」に設定しました。QtCreator (Microsoft Visual C++ Compiler 10.0) のキットで、以前に vcvars32.bat を実行しようとしました。まだ機能していません。
別のポイント: コンパイル中に、Windows SDK に関連するインクルード (-I...) が表示されないのはなぜですか?
私の間違いはどこですか?
dll - Qt 5 追加プラグインのパスを取得する
Qt 4 プロジェクトで、Inno Setup を使用して Windows インストーラーをビルドします。必要なライブラリ (qsqlite.dll、qjpeg4.dll など) は、 や などの CMake 変数を使用してスクリプトに含まれていQT_QSQLITE_PLUGIN_RELEASE
ますQT_QJPEG_PLUGIN_RELEASE
。
例: setup.iss.in :
これで、プロジェクトは Qt5 に移行するはずです。すべて正常に動作しますが、これらのプラグイン パスに相当する Qt5 を取得するための事前定義された変数が見つかりません。もちろん、ハードコードすることもできますが、クリーンで独立した方法で定義する方法を探しています。
c++ - QListWidgetは、200を超えるアイコンサイズを許可しません
QListWidget::setIconSize
サイズが200x200を超える場合、効果はないようです。それは意図されたものですか、それとも私は何か間違ったことをしていますか?ドキュメントにはそのような上限についての言及はありません。アイコンのサイズを制限している別のプロパティはありますか?
Qt5を使用しています。
c++ - qmlscene(またはqmlviewer5)を使用して.qmlでQtQuick2拡張プラグインを使用する方法
QtCreatorのプロジェクトtemplete「Libraries/QtQuick 2 Extension Plugin」を使用して、Qt5/QML共有ライブラリとしてテストプラグインを作成しました。私の開発環境は、Qt-5.0.0とQtCreator-2.6を備えたLinuxです(詳細は下部に追加されています)。
ソースファイル(要点):https ://gist.github.com/4467883
ソースファイルはデフォルトで変更なしで生成されます。プロジェクト名は「untitled」、URIは「com.mycompany.mycomponents」、オブジェクトクラス名は「MyItem」です。SRCDIRとしての「/tmp/untitled」内のソースファイル。
そして、それをビルドして、ライブラリファイルを「libuntitled.so」、「qmldir 」として出力し、「/ tmp/untitled-build」内のいくつかのオブジェクトファイルをDESTDIRとして出力します。
しかし、 qmlsceneコマンドでテストQMLソースとして「/tmp/test/test.qml」のライブラリを使用することはできません。
「test.qml」(要点):https ://gist.github.com/4474422
失敗し、QML_IMPORT_TRACEログは次のとおりです。
そして、「-I」オプションを試してください。
それも失敗です。ログは次のとおりです。
そして、「/ tmp / test/qmldir」で試してください。
"tmp / test / qmldir"(要点):https ://gist.github.com/4474497
それは失敗です。ログ:
qmlscene(またはqmlviewer5)を使用したテスト.qml( "/ tmp / test.qml")でライブラリ( "/tmp/untitled-build/libuntitled.so")を使用するにはどうすればよいですか?
環境の詳細(openSUSE-12.2に基づく):
参照:
qml - QAbstractListModel から継承されたリスト モデル、リスト項目のプロパティは QML から更新されません
私は自分の問題を説明するのに苦労しているので、できるだけ簡単にして、うまくいくことを願っています。QtQuick 2.0 で Qt5 を使用しています。
QAbstractListModel から継承し、MyListItem タイプのアイテムを保持する MyListModel クラスを作成しました。QML ListView で として使用するmodel: myListModel
と、デリゲートはquantity
MyListItem のプロパティを素敵な TextInput ボックスに表示します。すべて正常に動作します。
ただし、quantity
デリゲートから値を変更しても、モデル内のアイテムは更新されません。MyListItem のメンバーである関数が実行されないため、それらが更新されていないことはわかっています。setQuantity(long desired_quantity)
簡単に言うと、デリゲート内から setQuantity 関数を実際に呼び出す方法がわかりません。Q_PROPERTY(long quantity READ quantity WRITE setQuantity)
MyListItem に追加し、それを使用してオブジェクトを QMLsetContextProperty()
に公開し、. しかし明らかに、デリゲートが数量プロパティに書き込むことができない場合 (読み取ることしかできない場合)、それは仕事をしていません。MyListItem myTemp
myTemp.quantity = 10
誰かが私を正しい方向に向けることができますか? Qt の設計者が期待していた可能性のあるすべてのことを試したような気がしますが、何も得られませんでした。また、私の問題を明確に説明しているドキュメントが見つかりません。