2

サブクラス化された QSpinBox の束を含むサブクラス化された QDialog があります。スピンボックスをクリックすると、プッシュボタンを使用して数字を入力できるキーパッド (別の QDialog)。両方の QDialog は、QDialog::exec(); を呼び出すことによってアクティブ化されます。

ただし、この 2 番目の QDialog を開くと、最初の QDialog が閉じます。私はそれをステップ実行しましたが、最初の QDialog がまだ終了していないことに気付きました。QDialog 1 は、QDialog 2 を終了した後に "QDialog::Rejected" を送信します。QDialog 1 がまったく終了しないようにする必要があります。入力した値でスピンボックスを更新し、他のスピンボックスのためにさらに多くの QDialog を開く必要があります。ユーザーは後で編集したいと考えています。

QDialog 1のイベントループがQDialog 2のイベントループによって殺されたことに関係していると思います。QDialog 2 で QDialog::show を使用してみました。ウィジェットは一瞬 (ミリ秒) ポップアップしますが、アクティブなままではありません。QDialog 1 もすぐに閉じられます。

4

2 に答える 2

3

QDialog 1 は Qt::Popup に設定され、QDialog 2 はデフォルトで Qt::Dialog に設定されました。ポップアップは、さまざまなイベントで閉じます。QDialog 2 のフラグを Qt::Popup にも設定しましたが、QDialog 1 を閉じないようです。

于 2010-02-18T16:31:43.230 に答える