2017-01-03 12 views
0

私は、アプリケーションで6列のテーブルビューを持っています。すべての列は対話型で、最後の列は関数QTableView :: setStretchLastSectionによって拡張されています。しかし、最大サイズから最小サイズ(私のアプリケーションでは1170x686)のメインウィンドウのサイズを変更しようとすると、最後のカラムは伸びたままになります。回避策を作成しました:QTableViewの最後の列の内容のサイズを自動的に変更する方法はありますか?

void MyTableView::resizeEvent(QResizeEvent* event) 
{ 
    QWidget* widget = parentWidget(); 
    while (widget != nullptr && widget->parentWidget() != nullptr) 
    { 
     widget = widget->parentWidget(); 
    } 
    if (widget != nullptr) 
    { 
     const int width = widget->width(); 
     const int height = widget->height(); 
     static const QSize s_minimumWindowSize(1170, 686); 
     QAbstractItemModel* currentModel = model(); 
     if (width <= s_minimumWindowSize.width() && height <= s_minimumWindowSize.height() && currentModel != nullptr) 
     { 
      setColumnWidth(currentModel->columnCount() - 1, GetMinimumWidthForColumn()); 
     } 
    } 
    QTableView::resizeEvent(event); 
} 

この問題を解決する方法はありますか?

答えて

-1

テーブルのサイズポリシーを確認してください。 水平と垂直の両方のポリシーをignoredに設定すると、通常この問題が解決されます。

+0

残念ながら、私のためには機能しません。 –

関連する問題