質問

私のQt questoinsを読んでされていない人のために、私はプロジェクトのためのQtを学んでいます。私はQtの中で、すべてのGUIデザインの限られた経験を持って、そしてません。

私はいくつかのボタンを移入したい水平方向のレイアウトを持っています。私はちょうど罰金にこれらのボタンを養うことができますが、私の以前は、正方形のボタンはより多くのスペースを取るために水平に引き伸ばされます。

私はレイアウトマネージャは、サイズにこれらのボタンを最善の方法を決定するようにしたいが、私はまた、元の比率はそのまま残りたいです。私は、レイアウトでそれらのすべてを合わせて縮小する必要が32X32ボタンで希望開始した場合たとえば、私は、高さ、スケールの幅が維持されるようにそれらを比例縮小したいです。 20×16×16、12×12は全てうまくであろうが、24X16は許容できない大きさの一例であろう。

私はボタンとストレッチオプションのサイズの方針に手を加えました。私もこれを行う方法のQPushButtonとQHboxLayoutクラスを読んだ後、見ていませんよ。それはどのように行われる?

感謝します。

役に立ちましたか?

解決

限り、私が正しく質問を理解して、私が何をしたいことはQBoxLayout::addStretch()だと思います。これは、未使用のスペースを埋めるスペーサーオブジェクトを追加します。だから、ボタンは自分の理想的なサイズを持つことになりますし、スペーサーは、残りの部分を記入します。あなたは、それが書き込み/コンパイル/実行サイクルよりも簡単ですデザイナーで、この実験で試すことができます。

他のヒント

あなたはへの回答を見てみる必要がありますこの質問を。これは、そこに私の答えの要約である。

あなたは、縦横比を維持するためにbool hasHeightForWidth()int heightForWidth( int width )をオーバーライドするQLayoutItemのカスタム誘導体を、作成する必要があります。あなたには、ボタンを渡し、それを照会、またはあなただけの直接比を設定することができます可能性がどちらか。また、ウィジェット()関数は、適切なボタンにポインタを返すことを確認する必要があります。

それが完了すると、

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

私は実際にこののいずれかをテストしていないので、この時点で理論的なソリューションです。それが望まれていた場合、私は、デザイナーによるこのソリューションを行うにはどのような方法を知りません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top