0

質問を明確にするために、QVideoWidget をアプリケーションに追加すると、すべてのボタンがクリックできなくなり、スクロールバーが機能せず、コンボボックスもクリックできなくなるのはなぜですか? QVideoWidget はこれらの機能を無効にしていますか? それとも、(この SO の質問で読んだように) QVideoWidget がアプリケーションに追加されるだけで、アプリケーションの速度が極端に低下するのでしょうか?

詳細: 誰かがこれで私を助けてくれることを本当に願っています. 次のコードを使用して QvideoWidget をデスクトップ アプリケーションに配置しようとしています (チュートリアルのように、特別なことは何もありません)。

// ...
// more code above for other things...
// main video-player widget
video_widget = new QVideoWidget;
video_widget->setMaximumHeight(100);    // I could set any size here...this is not the point
video_widget->setMinimumHeight(100);
video_widget->setStyleSheet(STYLE_WIDGET_BG); // same background as the other widgets...
video_widget->setMaximumWidth(100);
video_widget->setMinimumWidth(100);
media_player = new QMediaPlayer(0, QMediaPlayer::VideoSurface);
TV_V_LAYOUT_MAIN_2->addWidget(video_widget);    // #define TV_V_LAYOUT_MAIN_2 ui.lvl_4_tv2_h_1 --> this a layout inside another layout...
media_player->setVideoOutput(video_widget);
return; // this function is called inside the MainWindow constructor

したがって、次のような状況があります。

1) ビデオウィジェットを追加しなくても、すべて正常に動作します...

2) 上記のコードで QVideoWidget を追加するとすぐに: アプリの概要

何が起こるのですか? ビデオプレーヤーはまったく表示されません。少なくとも他のウィジェットのように灰色の背景が必要ですが、何もありません。それでもボタンの位置が下がっているので、プレーヤーが挿入されたと思います...問題は、すべてのボタン(つまり、アプリケーション内のすべてのボタン)が無効になっていることです。コンボボックスとスクロールバーも同様です。無効にするということは、クリックすると、通常、ボタンがクリックされたときのように「アニメーション化」されず、スクロールバーがスクロールしないということです...

ところで、QVideoWidget は下のボタンと同じレイアウトには配置されません。ここでレイアウト階層を確認できます: Layouts with Qt Designer

私は非常に単純なものが欠けていると思います。誰かが私のために解決策を得ましたか?

情報: Qt アドインを使用して Visual Studio 2013 でプログラミングしています。私は標準ライブラリのみを使用しています。gstreamer もプロジェクトに含まれています (まだ何も実装されていません)。

古い編集:ビデオ ウィジェットを挿入すると、アプリケーションの速度が極端に低下する可能性があります。そのため、スクロールバーとボタンが機能しないという錯覚が生じます。これは、ユーザー インタラクションを処理するのに多くの時間がかかるためです。 . これは可能ですか?そのための解決策はありますか?

4

1 に答える 1

0

解決策: QVideoWidgets または QMediaPlayers がアプリケーションを極端に遅くする場合、まだ行っていない場合は、すべての (または必要なだけの) Qt dll をプロジェクト フォルダーに移動するだけです。

それは非常に基本的なことですが、それが私の問題でした。今では天国のように機能します。

于 2016-07-21T14:46:59.877 に答える