0

Windows 用の Qt アプリケーションで非常に奇妙な UI の問題が発生しました。Qt 5.3.1 から 5.6.0 にアップグレードして以来、一部のウィジェットは、親 (QDialog、QWizard、または単に QSplitter) のサイズを変更するまでクリックできなくなりました。これには、QPushButtons、QRadioButtons、QCheckBoxes などが含まれます。奇妙なのは、これが私のマシンと他の 1 つの開発者のマシンでのみ発生することです。他のすべての開発者にはこの問題は発生しません。複数のバージョンの Qt がインストールされていること (私は 4.8.、5.3.1、および 5.6.0 を持っています) と関係があるのではないかと考えていましたが、それはありそうにありません (さらに、他のすべての開発者も複数のバージョンを持っています)。Windows 7 で VisualStudio 2015 を使用しています。

問題を 100% 再現する小さなコードをいくつか添付しましたが、他のマシンではそうかもしれないし、そうでないかもしれません。私に何が起こるかというと、「クリック」ボタンをクリックして QWizard がポップアップすると、「キャンセル」ボタンをクリックできません (また、有効にすると「完了」ボタンもクリックできません) - マウスイベントが登録されていないようです全て。ただし、右上の X をクリックすることはできます。QWizard のサイズを任意の方向に変更すると、[キャンセル] ボタンをクリックできます。

考えられる手がかりは、この問題がある QDialogs では、QComboBoxes も奇妙な動作をすることです - ポップアップ ビューが奇妙な位置に表示されます (下のスクリーンショット)。繰り返しますが、親のサイズを変更すると、ポップアップ ビューが予想される場所に表示されます。これは、位置または親オブジェクトがどこかに正しく設定されていない (相対位置) という問題を示している可能性がありますが、どこから始めればよいかわかりません。

添付の例を使用して、次のいずれかでウィザードページを追加すると、何らかの形で親の設定に関連しているようです。

wizard->addPage(new GeneralPropertiesPage(QSet<QString>() << "test", this));

また

wizard->addPage(new GeneralPropertiesPage(QSet<QString>() << "test", NULL));

コンボボックスのポップアップ ビューを次のようにします。 キャプチャー2

使用中:

wizard->addPage(new GeneralPropertiesPage(QSet<QString>() << "test", wizard));

次のようになります。 ここに画像の説明を入力

ただし、根本的な原因が何であるかはまだわかりません。ファイルは以下に添付されています。

ソースファイルとヘッダー

4

0 に答える 0