問題タブ [qglwidget]
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++ - QGLWidget でのレンダリングとカラーピッキング: 両方に対処する方法
これよりも優れた解決策があるかどうか疑問に思っています: レンダリング コードとカラー ピッキング コードがあり、これら 2 つのコード (VBO など) 間で共有できるすべてのものを既に共有しており、私のコードは次のようになります。
コードは機能し、ちらつきはユーザーに表示されませんが、率直に言って、コード内の goto のアイデアは貧弱な解決策のように思えます。
他に良いアイデアはありますか?
c++ - qt centralWidget (QGLWidget) のサイズが適切に変更されないのはなぜですか?
QMainWindow を持つアプリケーションがあり、理想的には QGLWidget を中央に配置し、ツールバーやその他のトップ/サイド ウィジェット用に外側にスペースを残します。
残念ながら、QGLWidget がどのようなサイズまたはジオメトリに設定されていても、巨大に見え、メイン ウィンドウ全体を占有します。
基本的に、セットアップは次のとおりです。 CreateWindow() は main() で呼び出され、メイン ウィンドウを構築し、GLWidget を構築する関数 Init() を呼び出します。したがって、適応したメイン ウィンドウ クラスのメンバーである Init() 内には、基本的に次のものがあります。
ここで、GLScene を目的のサイズと位置に合わせるために、まず GLWidget (GLWidget から直接派生した私のクラス) コンストラクター内でジオメトリを設定しようとしました。
ただし、これはまったく機能せず、メイン ウィンドウ全体を占有していました。代わりに、setGeometry 呼び出しを Init() に入れてみました。setCentralWidget(); の直前と直後の両方で試しました。どちらのオプションも機能しませんでした。また、setCentralWidget 呼び出しを完全に削除することもできませんでした (実際、これにより GLWidget が消えました)。
これは明らかに適切に機能していないため、GLWidget をスケーリングする正しい方法は何ですか? それとも、もっと深く調べる必要があるのは、物事がどのように順序付けられているかだけの問題ですか?
qt - QStackedWidget インデックスの急激な変化によるちらつき
QStackedWidget に格納されている 2 つの QGLWidget を使用して、Qt で画像視覚化アプリケーションを開発しました。考慮されている 2 つの画像の違いを見つけるために、各 QGLWidget を順番にすばやく表示できるようにしたいと考えています。そのために、wheelEvent()
関数をsetCurrentIndex()
QStackedWidget の にマップしました。
私の問題は、関数をすばやくトリガーするwheelEvent()
と、画像分析タスクを妨げる白いちらつきが時々発生することです。QGLWidget を表示する前に、一部のウィジェットのデフォルトの背景が表示されているようですが、どれを見つけることができませんでした...
VisualStudio 2008 で C++ と Qt 4.7 を使用していますが、Windows XP と Windows 7 の両方で問題が発生します。
以下は、問題を再現する最小限のコードです。
以下のコードを使用して、関連するすべてのウィジェット (QMainWindow を含む) の背景色を黒に設定しようとしましたが、まだ白いちらつきが発生します。
このちらつきを取り除く方法を知っている人はいますか?
qt - QGLWidgetがMacOSXLionで正しく機能しない
ご覧のとおり、なぜそれがまったく機能しないのかわかりません。
プログラムを実行すると、次のようになります。
私はmacportsのqt4-mac(v4.8.2)を使用しています。パッケージはプリコンパイルされているようです。
そして、ここにソースがあります:
main.cpp:
GLPlayerWindow.hpp:
GLPlayerWindow.cpp:
そして.proファイル:
qt - QGLWidget の QtImage にビットをコピーする
誰かが次の問題を解決してくれるかもしれません: QGLWidget で QImage のコンテンツを描画したいのですが、ウィジェットが黒く塗られています。
バグ: スロットが呼び出されると、メモリがイメージにコピーされます。画像が保存されていれば、内容は正しいです。しかし、repaint メソッドは黒いコンテンツをウィジェットに描画するだけです。
修正: memcpy ラインがスロットの外側に実装されている場合、画像コンテンツはウィジェットに描画されます。この修正により、コードの複雑さが大幅に増加しました。したがって、次の質問があります。
質問: memcpy がスロット内で機能しないのはなぜですか? これは Qt の一般的な問題ですか?
qt - メインウィンドウを拡大しても中央の QGLWidget が大きくならないのはなぜですか?
QGridLayout を含む QMainWindow があります。最初の行はツールバー (すべての列) で、2 行目は左側 (最初の列) にテキスト表示領域、右側 (2 番目の列) に QGLWidget があります。[追加のメモ...関連があるかどうかわからない: すべてを希望どおりに並べるために、これらのほとんどで setMinimumSize を使用する必要がありました。]
とにかく、メインウィンドウを最大化するか、そうでなければ大きくしようとすると、QGLWidget は少し広くなりますが、垂直方向には伸びません。ウィンドウに合わせて強制的に成長させるにはどうすればよいですか? これはおそらくウィジェット自体またはグリッド レイアウトにリンクされていますか?
c++ - 周回する球体は、中央の立方体にスポット ライトを投射する必要があります
画面の中央に回転する立方体 (テクスチャ付き)を描画し、続いて立方体の周りを周回する小さな黄色の球体を描画するプログラムを作成しています。アイデアは、立方体を照らすスポット光源として球体を作ることです。
ここに問題があります。下の画像でわかるように、スポット ライト効果を実現できません。立方体全体が照らされているようです。
GL_SPOT_DIRECTION
立方体の位置になるように設定しています。立方体の法線を計算する方法を理解するのに苦労しているため、サーフェス法線を設定しませんでした。また、このような単純なグラフィック アプリケーションで実際に法線が必要かどうかもわかりません。
以下のコードを共有しています。
main.cpp :
GLWidget.h :
GLWidget.cpp :
Lighting.pro :
目的の効果を得るために、このアプリケーションで何を変更する必要がありますか?
qt4 - QtQGLWidgetGLuint配列のメモリアライメントの問題
QGLWidgetサブクラスを使用してQtのNeHeOGLチュートリアルに従っています。これまでのところ問題はありませんでした。6番目のチュートリアルでは回転ボックスのテクスチャリングを紹介するテクスチャマッピングについて。私はすべてが機能しているので、キューブの両側に独自のテクスチャを追加するためにいじり回してみました。QGLWidget :: bindTexture()関数を使用して、Qtリソースシステムを介して保存された256x256 bmpファイルをロードし、GLuintIDをプライベートメンバー配列に保存しました。paintGL()では、正方形の各面に対してglBegin(GL_QUADS)とglEnd()を呼び出す前に、引数としてGL_TEXTURE_2DとGLuint配列要素の1つを使用してglBindTexture()を呼び出します。コンパイルは正常ですが、ボックスが完全に白くレンダリングされるか(テクスチャが見つからないかのように)、回転描画中に画面全体にランダムな線が表示されて、黒と白のアーティファクトが発生します。
いじりながら、クラス宣言の最後に別のプライベートデータメンバーを追加することで問題を解決しました。魔法のように機能し始め、GLuintテクスチャ配列の宣言をクラス宣言の上位に移動することにしました。 。私はメモリアライメントについてかなり無知です、そしてそれは起こっていることの最も明白な原因のように思われます、そして私はここで起こっていることの説明が欲しいです。
重要な場合、これはQt 4.6にあり、MinGW5.1.6のGCC4.4.0およびGNUMake 3.8.1でコンパイルされています(アップグレードする必要があります)。
コード:glwidget.hpp、問題のある宣言は下部にコメントされています
glwidget.cpp
qt - QGLContext :: makeCurrent()を呼び出すメソッド
アプリでQGLWidgetを使用しようとしています。QGLWidgetから派生クラスを作成しました。別のスレッドから(glTexSubImage2Dを使用して)Textureを更新し、GUIスレッドからpaintGLで(glTexCoord2i ..を使用して)テクスチャを描画しています。
私が直面している問題は、initializeGL、resizeGL、paintGLメソッドとこれらのメソッドを終了する前にdoneCurrentを呼び出します。
この問題を修正するためにオーバーライドする必要がある他の方法を理解するのに誰かが助けてくれますか?
ありがとうございました。ヴェン
これが私のコードのテンプレートです