45

私は Qt を初めて使用し、モデルで QTableView を機能させることができました。3列固定です。ウィンドウを開くと問題ないように見えますが、ウィンドウのサイズを変更すると、QTableView 自体のサイズが変更されますが、列の幅は変わりません。それを機能させる組み込みの方法はありますか?ウィンドウのサイズが変更されるたびに、 QTableView の端に合わせて列のサイズを変更したい。

4

4 に答える 4

7

ウィジェットQTableViewQTreeView、およびそれらの派生クラス ( QTableWidgetなど) には、次の 2 つの便利なメソッドがあります。

QHeaderView* horizontalHeader() const;
QHeaderView* verticalHeader() const;

クラスQHeaderViewのドキュメントを開くと、項目ビューの行ヘッダーまたは列ヘッダーの外観と動作を設定するメソッドが見つかります。次のいずれかの方法で問題を解決できます。

  1. void QHeaderView::stretchLastSection( bool stretch ) Davy Jones
    が述べた ように。

    例:

    QTableView *table = new QTableView();  
    table->horizontalHeader()->setStretchLastSection(true);
    
  2. void QHeaderView::setResizeMode( ResizeMode mode ) モードとして
    、QHeaderView::Stretch または QHeaderView::ResizeToContents を設定できます。 残念ながら、この方法には欠点があります。適用後は、列 (​​または行) のサイズを手動で (GUI で) またはプログラムで変更することはできません。

    例:

    QTableView *table = new QTableView();  
    table->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
    
于 2014-12-26T14:13:45.813 に答える