列的大小自动调整为QTableView的大小
Columns auto-resize to size of QTableView
本文关键字:QTableView 调整 更新时间:2023-10-16
我是Qt的新手,我刚刚设法使QTableView与我的模型一起工作。它有固定的3列。当我打开一个窗口时,它看起来不错,但当我调整窗口大小时,QTableView本身会调整大小,但列的宽度保持不变。有什么构建方法可以让它工作吗?我希望每次调整窗口的大小时,都能调整列的大小以适应QTableView的边缘。
这段代码对每一列进行相等的拉伸,以适应表的宽度。
table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
文件:
- QHeaderView::setSectionResizeMode
- 请参阅此处的调整大小模式
如果调整大小,有一个标头标志可以确保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);
}
QPparent类是QMainWindow的子类。
小工具QTableView、QTreeView及其派生类(如QTableWidget)有以下两种有用的方法:
QHeaderView* horizontalHeader() const;
QHeaderView* verticalHeader() const;
若您打开类QHeaderView的文档,您会发现为项视图设置行或列标题的外观和行为的方法。您可以通过以下方法之一解决问题:
void QHeaderView::stretchLastSection(布尔拉伸)
正如戴维·琼斯提到的。示例:
QTableView *table = new QTableView(); table->horizontalHeader()->setStretchLastSection(true);
void QHeaderView::setResizeMode(ResizeMode模式)
作为模式,您可以设置QHeaderView::Stretch或QHeaderView::ResizeToContents
不幸的是,这种方法有一个缺点——应用它之后,您将无法手动(在GUI中)或以编程方式更改列(或行)的大小。示例:
QTableView *table = new QTableView(); table->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
在PyQt5中,您可以通过执行以下操作在table_widget中实现这一点:
header = table_widget.horizontalHeader()
header.setSectionResizeMode(QtWidgets.QHeaderView.ResizeToContents)
相关文章:
- 为char数组调整zlib-zpipe
- 调整大小后指向元素值的指针unordered_map有效?
- QTableView:endMoveRows在模型中重置水平页眉大小
- 在C++中调整向量中的索引
- 将QIcon添加到QTableView单元格
- 哪些库可以通过Opencv调整曝光率
- 如何调整 std::vector of Eigen::MatrixXd 的大小
- Alt+Enter 在 Win32 应用中,管理大小调整和分辨率
- 在容量内调整矢量大小时的性能影响
- 如何在QTableView中排序和更改日期格式
- 将 boost::odeint 与向量类一起使用,而无需调整向量的大小
- 将摄像机调整到俯视图
- Qt 图表条形图调整大小崩溃
- 除非重新绘制大小,否则SDL_Texture在调整大小后呈现黑色
- QTableview Search
- 调整布局上的 QGraphicsView 小部件的大小
- 如何在构建链接列表时调整头、尾指针
- 列的大小自动调整为QTableView的大小
- 在QTableView中调整行和列的大小是非常慢的
- QTableView垂直调整未刷新的数据大小