問題タブ [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.
qt - Qt GLWidget + ツリー = クラッシュ
私は Qt の初心者で、QGLWidget とその他の UI コントロールを使用して Qt アプリを作成しようとしています。起動後しばらくするとクラッシュします。
以下は、問題を再現する手順です。
Mac 上の Qt 5.0.1。
- QTCreator を開きます。QMainWindow クラスに基づいて新しいプロジェクトを作成します。
opengl を .pro ファイルに追加します。
/li>QGLWidget から継承された単純な GLWidget クラスを作成します (何もしません)。
/li>デザイナーでいくつかのことを行います。
- メイン ウィンドウに 3 つの垂直レイアウトを配置します。
- それらを垂直スプリッターで整理します。
- CentralWidget レイアウトを水平に設定します。
ウィンドウに GLWidget を追加する mainwindow.cpp コードの MainWindow コンストラクターに配置します。
/li>
走る。わかった!
QTreeView ウィジェットをデザイナーの左側のレイアウトにドロップします。
もう一度実行...クラッシュ!
/li>
これは QWidget::mapTo 関数でアサートされます:
どうすればこれを回避できますか?
qt - Qtフォームクラス内のOpenGLウィジェットのサイズを変更する方法
Qtフォームクラス( )の(myWidget
)内にOpenGLウィジェット( )があります。QVBoxLayout
verticalLayout_2
MyForm
フォームのサイズが変更されたときにOpenGLウィジェットのサイズを変更したい。
QVBoxLayout
とOpenGLウィジェットのサイズを新しいサイズに変更するには、changeEventメソッド内に何を書き込む必要がありますか?
qt - OpenCV IplImage を QGLWidget にレンダリングする
OpenGL シーンのレンダリングに問題があります。
背景は、ビデオ キャプチャ デバイスからのフレームをプレビュー ウィンドウに表示したいということです。私は OpenCV と Qt を使用しています。テストするために、MacBook の Web カメラからキャプチャしています。プレビュー ウィンドウは 200x200 で、キャプチャされるフレームは 640x480 です。アスペクト比を維持する心配はありません。
IplImage 構造体からのその他の情報:
- デバッグ: チャネル: 3
- デバッグ: 深さ: 8
- デバッグ: dataOrder: 0
- Debug: align: 4. 画像行 4 または 8 の位置合わせ
- Debug: origin: 0. 0=左上、1=左下
- デバッグ: widthStep: 2560。
- デバッグ: colorModel: RGB
したがって、この画像は現在の状況を示しています。
現在のキャプチャ http://clinsoftsolutions.com/fgvc4.png
glDrawPixels を使い始めたのですが、うまくいきませんでした。出力は得られましたが、スケーリングはありません。
現在、私はテクスチャを試しています。これがGLインタラクションに使用しているコードです
イメージはタイマー スロットでキャプチャされ、m_image は _IplImage ポインターです。
誰かがこの種の歪んだ画像を以前に見て、何が問題なのかを知っていることを本当に望んでいます.
c++ - Qt の QGLWidget を使用して OpenGL のオブジェクトの位置を正確に更新するにはどうすればよいですか?
QGLWidget で OpenGL で描画された立方体を移動しようとしています。コードの一部を次に示します。
シグナルとスロット接続を介して定期的に animate() を呼び出すタイマーを実装しました。animate() が実行されるたびに z 座標に -0.1 を追加して、キューブを z 方向に移動するべきではありませんか? 選択した値に応じて、立方体が動かない (値が約 <-0.3 の場合) か、まったく見えない (値が約 >0.4) かのいずれかです。最初は、非常に速く動いて消えるか、非常に遅く動くので変化が見られないのではないかと考えました。しかし、z 値をいじると、常に上記のケースのいずれかになります...それは奇妙ではありませんか? 私は何を間違っていますか?
c++ - Qt アプリケーションが遅くなり、xorg が大量の CPU を使用する
Qt アプリケーションで、非常に遅くて遅延があるという問題が発生しました。もともとは、私が現在使用しているマシンとは別のマシンで開発されたもので、そこでは問題なく動作しているように見えました。現在、アプリケーションを起動すると、ほとんど何もしていないにもかかわらず、xorg プロセスの CPU 負荷が非常に高い (>25%) ことがわかります。
25fps のフレームレートで 2D グラフィックスを描画するために 2 つの QGLWidget を使用しています。私がそれを行う方法は、paintEvent() 関数をオーバーロードすることです。関数内で新しいオブジェクトを作成するときなど、この関数が無限ループを生成する場合があることを読みました。コードを最小限に抑えようとしましたが、問題はまだ存在します:
何も描画していません (aerpainter->paint() をコメントアウトしたため、そうあるべきです) が、xorg はまだ 25% の CPU 負荷であり、GUI は遅いです。
タイマーのタイムアウト信号 (25Hz 周期) は、Qt の例の 1 つで行われるように、paintEvent をトリガーする次のスロットに接続されます。
問題に関連する可能性のあるその他の観察事項を次に示します。
かなり多くの CPU を使用する kworker および移行プロセスも多数あります (合計すると、約 10% ~ 30% です)。
元のマシンでアプリをテストしましたが、正常に動作しますが、何も描画していない場合でも、xorg ではなく compiz の CPU 負荷が高い (約 80%) ことに気付きました...
更新: 2dpainting デモのような他の Qt アプリケーションも、(上記のように) 描画コードをコメントアウトしても、fps を上げると遅延することに気付きました。つまり、問題全体が私のシステムに関連している可能性があります...?
opengl - QGraphicsSceneの背景として複雑なOpenGLを使用するには?
複雑な OpenGL イメージとイメージ上のいくつかのスピンボックスを使用してディスプレイを作成しようとしています。http://doc.qt.digia.com/qq/qq26-openglcanvas.htmlを使用すると、単純な OpenGL 画像を背景に、コントロールを前景に持つ 2 つのレイヤー オブジェクト (QGraphicsScene から継承) を作成できます。
だから、今、本当の OpenGL 画像を背景として表示しようとしています。この画像は次のユーザーによって作成されました。
- 構造物にマッピングされたクワッド、
- クワッド (上部 z 値) に描画された、アルファ チャネルと特定のシェーダーを使用した 2D テクスチャで表されるいくつかの小さな 2D オブジェクト
- いくつかのポリライン。
この画像では、私はいくつかの奇妙な動作をしています。2D テクスチャ オブジェクトは、白い背景で描画されます。いくつかの実験では、この複雑な OpenGL 画像の描画ではアルファ チャネルが無効になっていることが示されているようです。
QGraphicsView のビューポートとして使用される QGLWidget のさまざまな構成を試しましたが、結果はありませんでした。
したがって、この OpenGL 画像を適切な透明効果で作成できるようにするには、助けが必要です。