問題タブ [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++ - Qt Creator 2.6.1 + Qt 5 + C ++ 11+MSVC2010コンパイラ
Qtを使用してWindows上でC++アプリを構築しようとしています。
私の設定は次のとおりです。
- インストール済みVs2008、2010、2012
- Qt5RC1をインストールしました
#includeしてstd::unique_ptrを使おうとすると、定義されていないことがわかります。VS2010ヘッダーを調べて、_HAS_CPP0Xを定義する必要があることを確認したので、DEFINES +=_HAS_CPP0Xとして.proに追加しました。
これはまだ効果がなかったので、Ctrlキーを押しながら#includeメモリをクリックして、次のメモリヘッダーを使用していることを確認しました。
C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ VC \ include
本当にそこにstd::unique_ptrがありません!
確かにそれは見ているはずです:
C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include?
フルパスを介してメモリを含めると思いましたが、移動や右辺値の参照など、C ++ 11に関連する、含まれているメモリヘッダー自体のエラーで失敗します。
だから私が知りたいのは:
- QtonWindowsはVs2010でサポートされているC++11機能を使用できますか?
- はいの場合、どのように?
- いいえの場合、LinuxでクロスプラットフォームのQt 5アプリを開発することは、他のプラットフォーム用に構築することが不可能であるため、クロスプラットフォームではないことを意味することに非常に失望しています。
編集:
これに対する解決策は明らかです。Qt5のソースをダウンロードしてMinGWでビルドすると、すべて設定されます(受け入れられた回答のC ++ 11 proオプションを含む)。
c++ - Qt5ラムダ接続への新しい信号メモリリーク
新しいQt5シグナルとスロットの構文により、シグナルをスロットだけでなく、プレーンな古い関数やファンクター/ラムダにも接続できます。ここで問題となるのは、ラムダは本質的に()演算子を持つオブジェクトであり、シグナルをそれらに接続すると、それらはqt内部クラスのどこかにコピーされるということです。そして、そのファンクターからシグナルを切断すると、qt内部にとどまります。私は理解できません、それは正常な行動ですか?または、切断後にこれらの機能オブジェクトを破棄する方法はありますか?
次に例を示します。
スロットを切断した後の接続変数の強い参照カウントを見ると、2のままです。これは、ファンクターオブジェクト自体がまだ健在であることを意味しますが、今は役に立たないのです。私は何かが恋しいですか?
qt - プログレスフロントの周りのテキストの色が異なるプログレスバー?
QtからQProgressBarのテキストに対して次の効果を得るにはどうすればよいですか? :
アイデアは、プログレス バーの左側の部分を明るい色にする必要があるということです。
qt - Qt5およびQMLでQtQuick.Window要素を使用するには?
最近、Mac OS X 用の Qt5 RC2 をインストールし、いくつかの QML アプリケーションの開発を開始しました。新しい要素を見た後、特に Window と Screen 要素を試してみたいと思いました。(http://qt-project.org/doc/qt-5.0/qtquick/qmlmodule-qtquick-window2-qtquick-window-2.html)
したがって、次のようにファイルの先頭にインポートを設定します。
QtQuick 2.0
をインポートする QtQuick.Window 2.0 をインポートする
インポートは見つかりましたが、ウィンドウもスクリーンも使用できません。Screen または Window と入力するたびに、「不明なコンポーネント (M300)」というエラーが表示されます。
誰が問題が何であるか考えていますか?
unicode - QTextCodec::setCodecForCStrings は Qt5 でなくなりました
私のプロジェクトで表示されるテキストはすべてギリシャ語です。tr()
ギリシャ文字だけを直接使用しました。そして、私が使用していた正しいエンコーディングのために:
Qt5 では が取り除かsetCodecForCStrings
れ、すべての文字が として表示され"???????"
ます。回避策はありますか?
これは大きなプロジェクトであることに注意してください。プログラム内のすべての文字列にコードを使用することは避けたいと思います。
c++ - VS2012のコンパイラでQt5とQtCreator2.6.1を使用するにはどうすればよいですか?
現在、公式ダウンロードにはVS2010用のQtライブラリ5.0.0のみが含まれています。VS 2012 Expressで試しましたが、「エラー:LNK2038:「_MSC_VER」の不一致が検出されました:値「1600」が値「1700」と一致しません...」というエラーメッセージが表示されました。
VS 2010をインストールする必要がありますか、それともVS 2012でQt5のソースコード全体をコンパイルする必要がありますか?
更新:私のIDEはQtCreator2.6.1です。公式ダウンロードにはまだminGW用のQtライブラリ5.0.0がないため、VS2012ではC++コンパイラのみを使用しています。
UPDATE-2(2013-1-1):今日それを見た、公式ブログは言う:
5.0シリーズでまだ取り組んでいることがいくつかあります。修正したいバグがあります。現在、MinGW(WebKitはまだ動作していないため)およびMSVC 2012(ソースからコンパイルする必要がある)のバイナリパッケージはありません。これらをできるだけ早く提供するように取り組んでいます。現在の計画では、最初のパッチレベルのリリースである5.0.1を、1月末までにリリースする予定です。
UPDATE-3(2013-1-31): ついに登場しましたが、MinGW4.7にはQt5.0.1しか追加されていません。
UPDATE-4(2013-7-06):長い間待った後、Windows 32ビット(VS 2012、511 MB)用のQt5.1.0が追加されました。
qt - cudaでQt5プロジェクトをビルドするには?
Qt (Win32、VS2010) と CUDA で書かれたプロジェクトがあり、cu ファイルには Qt ヘッダーが含まれています。新しい Qt 5.0 でプロジェクトをビルドしようとしたとき (Qt 4.8.3 でも問題ありません)、次のエラーが発生しました。
バグを再現する簡単なプロジェクトを作成したところ、再現されました。Qtヘッダーを使用するCUDAを使用したQtプロジェクトで繰り返すことができると思います。ただし、以下のエラーを再現するための簡単なコードを追加しました。誰でも私を助けることができますか?
test1.pro ファイル:
kernel.cu ファイル:
c++ - Qt5QtQuick2でのQWidgetの使用
Qt5とQtQuick2の組み合わせにはいくつかの問題があります。多くのQWidgetベースのクラスのいくつかを使用したいときはいつでも、最初に次の問題に遭遇します。
QApplication
Qt5の代わりに使用する必要がありますQGuiApplication
。それは簡単に変更できますよね?
だから今私は使ってQApplication
いますが、QWidgetベースのクラスを使おうとすると、プログラムがクラッシュするか、意味のないエラーメッセージが表示されます。
では、Qt5で古いQWidgetsをどのように使用する必要がありますか?Qt5の最適なソリューションではないことはわかっていますが、非常に便利です...
PS私はすべてのプラットフォーム用にLinuxでアプリを開発しています。
また、自動生成されたQtQuick2ApplicationViewerクラスを使用して、QtQuick2.0ベースのアプリケーションをレンダリングしています。
qt - Qt Creator 2.5.2 で Qt 5.0 を動作させる方法は?
Qt 5.0 のソース コードをダウンロードし、Ubuntu 12.10 64 ビットでコンパイルしました。を実行sudo make install
すると、ファイルが次の場所にコピーされたようです/usr/local/Qt-5.0.0
:
ここまでは順調ですね。しかし、Qt Creator 2.5.2 を起動して新しいビルドを指定しようとすると、異常なエラーが発生しますThe default mkspec symlink is broken
。
この種のエラーの原因は何でしょうか? 以下のシンボリックリンクはすべて/usr/local/Qt-5.0.0/mkspecs
有効です。の出力qmake -query
は次のとおりです。
また、このマシンには Qt 4.x 開発ファイルがインストールされていないことにも注意してください。
qt5 - Qt5qconfig.h奇妙な
これが私のコンテキストです。WindowsでOpenGLを使用してグラフィックエンジンをコンパイルしているので、glext.hを含めました。驚いたことに、Qt5のgl2.hと競合しています。
QT_OPENGL_ES_2が定義されている場合、gl2.h(gles2から)が含まれていることがわかりました。次に、QT_OPENGL_ES_2がデフォルトで定義されており、QT_NO_OPENGL_ES_2を定義できないことがわかりました。動作するはずです(私のqconfig.hのすべてのブロック-Qt5 msvc10オフラインインストーラーからのもの-はそのように見えます):
あまり寝ていないせいかもしれませんが、変な感じがします。しかし、QT_OPENGL_ES_2が定義されておらず、QT_NO_OPENGL_ES_2が定義されている場合、(4つのスリープしていないニューロンで)2番目のブランチに入り、QT_OPENGL_ES_2を定義することは間違いありません...
もし私が彼らだったら書いていただろう:
お時間をいただきありがとうございます:)