2

私はqmlでアプリケーションを持っています。クイックビューを使用してフルスクリーンに設定しています。しかし、全画面表示モードから .ui ファイル (QWidget) を開こうとすると、メインウィンドウの背後に移動します。これは、全画面表示モードでない場合には発生しません。フラグ (Qt::WindowStaysOnTopHint) を設定しようとしましたが、機能しません。QT5 を使用しています。助けてくれてありがとう

 QUiLoader loader;
 QFile file("abc.ui");
 file.open(QFile::ReadOnly);
 QWidget * _parent = loader.load(&file);
 file.close();
 _parent->setParent(mainlayout);
 _parent->setWindowFlags(Qt::Tool);
 _parent->setWindowFlags(_parent->windowFlags() | Qt::WindowStaysOnTopHint)

このメインレイアウトはクイックビューです

4

1 に答える 1

0

QDialogQt でのウィジェットの親子関係の動作は、 と の間で異なりQWidgetます。AQDialogは常にトップレベルのウィジェット (ウィンドウ) です。あなたの.uiファイルが作成するオブジェクトはQDialog. 以下であることを確認してください。

QWidget * _parent = loader.load(&file);
Q_ASSERT(qobject_cast<QDialog*>(_parent));

このアサートが失敗した場合は、.uiファイルの基本クラスをダイアログに変更する必要があります。

おそらく、ダイアログをアクティブにして上げる必要があります。

_parent->activateWindow();
_parent->raise(); 
于 2013-10-18T12:56:32.550 に答える