常にピックスマップ(ビデオ再生)を設定しているQLabelがあります。私のアプリケーションでは、ユーザーはビデオの上に(ボックス)を描画できる必要があります。QPaintDeviceクラス(QWidget、QPixmap、QImageなど)の1つを、ペイント用のQLabelと同じサイズで真上にレイヤー化するにはどうすればよいですか。この要素は、背景が透明である必要があります。これにより、要素に描画された形状がビデオ上に表示されます。
3073 次
1 に答える
4
図形を描画するウィジェットをビデオ ラベルの子ウィジェットとして追加します。最初にレイアウトを追加して、子ウィジェットが親ウィジェットのサイズと一致するようにします。コードは次のようになります。
QHBoxLayout *layout = new QHBoxLayout(videoWidget);
QLabel *overlayWidget = new QLabel();
overlayWidget->setAlignment(Qt::AlignCenter);
overlayWidget->setText("Overlaid Text");
layout->addWidget(overlayWidget);
ビデオにオーバーレイされたテキストが表示され、サイズを変更してもビデオ ウィジェットの中央に配置されたままになります。最終的なコードでは、マウス アクションをインターセプトして四角形を描画できる独自のウィジェット サブクラスを使用しますが、それが基本的な考え方です。
于 2012-01-15T04:40:26.643 に答える