0

QGraphicsView フレームワークを使用している Qt プロジェクトがあり、シーンにポップアップ ウィンドウがあります。(QDialog)

誰かが特定のボタンをクリックすると、ポップアップ ウィンドウが表示されます。アクティブにする.exec()代わりに、メソッドを使用して呼び出しています。また、ライトボックス.show()がhtmlページに提供するような視覚効果を与えたいので、バックグラウンドウィンドウが通信しないことはユーザーにも明らかです。それを機能させるための簡単な解決策を知っていますか?それともQtで実装するのは難しいですか? 編集: 明らかではないかどうかはわかりませんが、これはデスクトップ アプリケーションであり、Web アプリケーションではありません。

4

2 に答える 2

0

カスタマイズされた背景と透明度を使用して、必要な領域に QFrame を作成するだけです。アニメーション効果には、QPropertyAnimation + QGraphicEffects および qt アニメーション フレームワークのその他のものを使用できます。

于 2013-03-28T10:51:37.327 に答える
0

今、私は自分が望んでいたことを達成する別の方法を見つけました。このような:

QWidget* mytranswidget = new QWidget(mybgwidget);
mytranswidget->setStyleSheet( "background:transparent; background-color:rgba(0,0,0‌​,95)");
mytranswidget->setWindowFlag(Qt::FramelessWindowHint);
mytranswidget->setGeometry(mybgwidget->rect());
mytranswidget->show();

ポップアップウィジェットのコンストラクターの先頭でそれを行っているので、ポップアップを描画する前に描画されるため、正しい順序で表示されます。

于 2013-03-28T14:01:50.937 に答える