9

QTableWdigetは、シンプルなグリッド表示に最適です。色、フォントなどの変更は簡単です。

ただし、垂直方向の余白を少なくして、グリッドを「よりタイトな」外観にすることはできませんでした。Qt のドキュメントで (たとえば、こちら) について説明されていることがわかります。

  • マージン
  • 国境
  • パディング

ウィジェットの周りですが、これらを設定すると、内部ではなくグリッドウィジェット 全体の変更のみが取得されます。

これを (スタイル シートまたはハードコードされたオプションを使用して) 直接設定して、QTableWidget の表示をよりタイトにするにはどうすればよいですか?

4

5 に答える 5

5

あなたが探しているものには、非常にばかげた解決策がありますが、うまくいきます。ヘッダーの defaultSectionSize() メンバーを設定する必要があります。verticalHeader() & horizo​​ntalHeader() 経由でアクセスします。ほとんどのプロジェクトでは、列ではなく行を追加する必要があり、resizeColumnsToContents を呼び出すか、手動でサイズ変更を行うだけです。ただし、行は面倒です。私は通常、QFontMetrics を使用してフォントの高さを取得し、2 を追加します。追加された後続の行は、この高さとビオラ: よりタイトな外観にする必要があります。

それが役立つことを願っています。

編集:

テストされていないコード:

QFontMetrics fm( my_font );
int h = fm.height() + 2;
my_table->verticalHeader()->setDefaultSectionSize( h );
于 2010-02-16T02:34:19.403 に答える
3

QTableWidget は便利なモデルとビューです。通常、QAbstractItemModelの data() メソッドは、各セルのサイズをビューに伝えるために使用されるSizeHintRoleを提供します。

QTableWidget を使用しているため、内部モデルによって返されるサイズのヒントを変更するためにできることは何もないと思います。Qt スタイル シートのドキュメントでさえ、その領域については何も言及していません。

于 2010-02-01T20:03:49.570 に答える