0

ウィジェット内のレイアウト自体の中にQTableViewがあります。tableView.resizeColumnsToContents()を呼び出した後、テーブルのサイズを同じにする(スクロールバーを必要としない)ためにウィジェットのサイズを設定する方法ありがとうございます

4

1 に答える 1

2

コンテナ ウィジェットの水平サイズをテーブルコンテンツのサイズ(必ずしもテーブル サイズとは限りません) に合わせて調整する必要があることを正しく理解している場合。次の方法は、20 行と 3 列の小さなテーブルで機能します。

  • テーブル モデルに列の総数を問い合わせます (columnCountメソッドの実装によって返される必要があります) 。
  • メソッドを使用してすべての列の幅をビューに尋ね、columnWidth列の合計幅を計算します
  • 最後に、列の合計幅、テーブルの垂直ヘッダーの幅、および自動スクロール マージンを考慮して、コンテナー ウィジェットのサイズを変更します。

したがって、コードは次のようになります。

my_table_view.resizeColumnsToContents()
w = 0
for c in range(my_table_model.columnCount()):
    w = w + my_table_view.columnWidth(c)
container_widget.resize(w + my_table_view.verticalHeader().width() + my_table_view.autoScrollMargin()*1.5, container_widget.size().height())

先ほど言ったように、ウィジェットのサイズを水平方向に変更したいと考えています。

于 2012-11-03T19:20:57.167 に答える