ui->tableView->setRowHeight(0,200);没有效果
时间: 2024-03-10 10:47:29 浏览: 74
如果调用 `ui->tableView->setRowHeight(0,200)` 后没有实际效果,可能原因有以下几个:
1. 当前的 QTableView 控件没有设置 QAbstractItemView::AdjustToContents 属性。在这种情况下,即使设置了行高,也可能会被 QTableView 控件的其他属性或样式表所覆盖,导致实际效果不符合预期。
2. 当前的 QTableView 控件中没有足够的数据行。如果 QTableView 控件中只有 1 行数据,那么 `ui->tableView->setRowHeight(0,200)` 只会影响该行数据的高度,而不会影响表格的行高。
3. 当前的 QTableView 控件中存在自定义的委托或模型,这些自定义组件可能会覆盖 `setRowHeight` 的效果。可以考虑在自定义委托或模型中添加相应的逻辑来实现设置行高。
解决方法可能包括:
1. 设置 QTableView 控件的 `verticalHeader` 为 `nullptr`,禁用垂直表头,以确保表格的第一列可以设置行高。
```cpp
ui->tableView->verticalHeader()->setVisible(false);
ui->tableView->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed);
```
2. 尝试设置 QTableView 控件的 `sizePolicy` 为 `QSizePolicy::Expanding`,让表格可以根据窗口大小自动调整大小。
```cpp
ui->tableView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
```
3. 尝试在 QTableView 控件的 `showEvent` 事件中设置行高,确保表格控件完全展示后再进行行高设置。
```cpp
void MyTableView::showEvent(QShowEvent *event)
{
QTableView::showEvent(event);
setRowHeight(0, 200);
}
```
如果以上方法都不能解决问题,建议检查一下代码中是否存在其他不可预知的问题,或者提供更多上下文信息以便进行更精确的解答。
阅读全文