5

次の構造のウィジェットとレイアウトを含む大きなレイアウトがあります。

QVBoxLayout
  QTableView
  QPushButton

レイアウトのマージン、パディング、および間隔を 0 に設定しました。これが Mac OS X でレンダリングされる方法では、ボタンはすべてのスペースを埋めません。代わりに、その周りにパディングがあります。魔法のように、レイアウトはこれを認識しているようで、テーブル ビューがボタンの幅と正確に同じ幅になるようにします。

QPushButton によるマジック パディング

ボタンを削除すると、テーブル ビューは全幅に戻ります。

ここには魔法のパディングはありません

ボタンとテーブルビューがレイアウトと同じ幅になるように変更するにはどうすればよいですか?

スタイルシートのパディングとマージンで遊んでみました。これらを使用してボタンを広くすることはできますが、ツリー ビューの周りの余分なパディングは残ります。私がこれまでに持っている唯一の解決策は、ボタンを別のウィジェットにラップし、スタイルシートを介してマージンとパディングを 0 に設定することですが、丸みを帯びた外観が失われます。

4

4 に答える 4

1

QPushButton のマージンではなく、レイアウト マージンを 0 に設定する必要があります。

見てください。これはデザイナーのルックアンドフィールです:

ここに画像の説明を入力

これは QWidget のレイアウト プロパティです。

ここに画像の説明を入力

そして、これが最終的なウィジェットです:

ここに画像の説明を入力

于 2012-10-16T16:26:50.090 に答える
0

さらに実験を重ねた結果、QPushButton の代わりに QToolButton を使用すると、期待どおりに動作することがわかりました。それは説明ではありませんが、解決策です。

于 2012-10-21T01:14:56.567 に答える
0

プッシュ ボタンの外観を維持する別の回避策は、QFrame コンテナー ウィジェットにレイアウトを配置し、スタイルシートに負のパディングを設定することです。コンテナーは QFrame でなければなりません。そうしないと、パディングが機能しません。

于 2015-07-21T22:38:09.960 に答える