2

私の Qt に関する質問をまだ読んでいない方のために、私はプロジェクトのために Qt を学んでいます。Qt ではなく、GUI 設計の経験がまったくありません。

いくつかのボタンを配置したい水平レイアウトがあります。これらのボタンに問題なくフィードできますが、以前は正方形だったボタンは水平方向に引き伸ばされて、より多くのスペースを占有します。

これらのボタンのサイズを変更する最適な方法をレイアウト マネージャーに決定させたいと考えていますが、元の比率もそのまま維持したいと考えています。たとえば、レイアウトにすべて収まるように縮小する必要がある 32X32 ボタンから始める場合、幅と高さのスケールが維持されるように、比例して縮小する必要があります。20X20、16X16、12X12 はすべて問題ありませんが、24X16 は許容できない寸法の例です。

ボタンとストレッチ オプションのサイズ ポリシーをいじりました。QPushButton および QHboxLayout クラスを読んだ後でも、これを行う方法がわかりません。それはどのように達成されますか?

ありがとう。

4

2 に答える 2

2

この質問に対する回答を参照してください。これは私の答えの要約です。

縦横比をオーバーライドbool hasHeightForWidth()して保持するために、QLayoutItem のカスタム派生物を作成する必要があります。int heightForWidth( int width )ボタンを渡してクエリすることも、比率を直接設定することもできます。また、widget() 関数が適切なボタンへのポインターを返すようにする必要もあります。

これが完了すると、ウィジェットと同じ方法でレイアウト アイテムをレイアウトに追加できます。したがって、ボタンが追加されたら、カスタム レイアウト アイテム クラスを使用するように変更します。

私は実際にこれをテストしていないので、現時点では理論上の解決策です。必要に応じて、デザイナーを介してこのソリューションを実行する方法がわかりません。

于 2009-11-06T23:48:07.800 に答える