0

QGridLayout を使用し、レイアウトを ui ファイルとして定義します。

そのようなレイアウトを実装する必要があります:

|列 0 |列 1 |列 2 |列 3 |

|テキストに合わせて十分な幅|空白|幅 66-70 の行編集|テキストに合わせて十分な幅|

私の問題は列1と2です。

すべての空き領域を列 1 に割り当てるには、どのサイズ ポリシーを使用すればよいですか?

列 2 に最小幅 = 66 と最大幅 = 70 を設定しようとしています。そして、列 1 に「拡張」幅ポリシーを設定します。

しかし、何らかの理由で、この場合、列 1 は本来あるべきよりも拡張されており、列 2 は 66 未満です。

列 1 のサイズ ポリシーを「最大」に設定すると、すべてのスペースが列 2 に割り当てられます。また、その列の幅は行編集ウィジェットよりも大きいため、右揃えになりません。

4

1 に答える 1

1

ユニットを除いて、あなたはすべてを正しくやっています。

行編集の幅は文字数で指定されていると思いますが、その数値を使用して幅をピクセル単位で設定しているようです。

次のように設定します。

qreal em = QFontMetricsF(ui.lineEdit->font()).width('m');
ui.lineEdit->setMinimumWidth(round(em*66));
ui.lineEdit->setMaximumWidth(round(em*70));
于 2012-06-08T17:17:37.973 に答える