私はQTを初めて使用しています。私はそのモデルでQTableViewの動作を管理しました。 3つの列が固定されています。私はウィンドウを開いてもOKですが、ウィンドウのサイズを変更すると、QTableView自体のサイズは変更されますが、カラムの幅は変わりません。それを動作させるための組み込みの方法はありますか? QTableViewの辺に合わせて列のサイズを変更し、ウィンドウのサイズが変更されるたびに欲しい。カラムはQTableViewのサイズに自動的にリサイズされます
答えて
サイズ変更された場合、QTableViewの最後の列がその親を塗りつぶすようにするためのヘッダーフラグがあります。
table_view->horizontalHeader()->setStretchLastSection(true);
ただし、他の列のサイズは比例して変更されません。あなたにも、あなたは以下のようなものを自分の親のresizeEvent内側にそれを扱うことができることをやりたい場合:
void QParent::resizeEvent(QResizeEvent *event) {
table_view->setColumnWidth(0, this->width()/3);
table_view->setColumnWidth(1, this->width()/3);
table_view->setColumnWidth(2, this->width()/3);
QMainWindow::resizeEvent(event);
}
QParentクラスはQMainWindowのサブクラスです。あなたはクラスQHeaderViewためのオープンドキュメント、あなたはの外観と動作を設定する方法を見つける場合
QHeaderView* horizontalHeader() const;
QHeaderView* verticalHeader() const;
:
ウィジェットQTableView、QTreeViewと(例えばQTableWidgetなど)、その派生クラスは、この2便利なメソッドを持っていますアイテムビューの行ヘッダーまたは列ヘッダー。言及Davy Jonesとして
void QHeaderView::stretchLastSection(bool stretch)
:あなたはこれらのいずれかの方法で、あなたの問題を解決することができます。例:あなたはQHeaderView ::ストレッチやQHeaderViewを設定することができますモード:: ResizeToContentsとして
QTableView *table = new QTableView(); table->horizontalHeader()->setStretchLastSection(true);
void QHeaderView::setResizeMode(ResizeMode mode)
。
残念ながら、このメソッドには欠点があります。適用後、列(または行)のサイズを手動で(GUIで)またはプログラムで変更することはできません。例:彼らは、テーブルの幅に合うように
QTableView *table = new QTableView(); table->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
このコードは、均等に各列をstretchs。
table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ドキュメント:
- QHeaderView::setSectionResizeMode
- モードhereのサイズを変更するを参照してください。
私はあなたに今キスしたい、ちょうど冗談;-) ..私はこの行のために長い間見てきました..ありがとう –
パーフェクト...これは、TableViewストレッチ/スケーリングの問題のための完璧なソリューションです..本当にありがとうロット.. – Maxx
- 1. divの高さが自動的にリサイズされませんか?
- 2. NPOI自動サイズ変更カラム
- 3. ウェブページ上の小さなプレビューウィンドウに画像を自動的にリサイズ
- 4. は自動的にサイズ
- 5. iframeの高さを自動的にリサイズする
- 6. Androidは自動的にビットマップをリサイズします
- 7. フレックススパークドロップダウンコンポーネントの幅を自動的にリサイズする方法は?
- 8. CGRectは自動的にアクションの後にサイズ変更されます
- 9. NivoスライダーのjQueryプラグイン - 画像は自動的にリサイズ
- 10. iframeのコンテンツの高さを自動的にリサイズするように設定
- 11. Longlistselectorは自動的に自動更新されますか?
- 12. DOMWindowのポップアップが内容に自動的にサイズ変更されますか?
- 13. UINavigationBarをリピート時の回転で自動的にリサイズする
- 14. イメージは自動的にサイズ変更され、ウィンドウに収まるように調整されます
- 15. 自動ウェブアプリケーションの高さと幅のリサイズ
- 16. 自動的にサイズ変更されるJavaScriptスライダ
- 17. TextBoxがオーバーフローすると自動的にサイズが変更されます(WPFで)
- 18. カラムが自動インクリメントされないmysql
- 19. Cakephpのクッキーは常に自動的に削除されます
- 20. ボタンのサイズを自動的に小さくする方法
- 21. AutoRisezeTextViewは最初に自動サイズ変更されません。
- 22. FBSDKAccessTokenはtvOSに自動的にキャッシュされます
- 23. WPF TreeViewは自動的に下にスクロールされますか?
- 24. IIS7は自動的にnullにリダイレクトされます(IEで)
- 25. grailsアプリケーションは、run-appの完了後に自動的に自動的にリロードされます。
- 26. Androidリストビュー動的リサイズ
- 27. HttpContext.Current.Cache - これはいつ自動的にクリアされますか?
- 28. LaTeXでA4サイズに自動的にサイズを変更するには
- 29. ベースクラスのコンストラクタは自動的に呼び出されますか?
- 30. ボタンのtouchupinsideアクションは自動的に表示されますか?
いつも列の幅を同じにしますか?そうでない場合は、table-> horizontalHeader() - > setStretchLastSection(true)を呼び出して、最後の列の幅を引き伸ばすことができます。 –