qtableview 个数 设置_QTableView垂直调整数据大小而不刷新

我通过派生QTableView和QAbstractTableModel实现了一个表。这一切似乎工作正常,除非我垂直调整表格,原来不在视图范围内的行不显示任何数据。

水平调整大小时没有问题,因为我已经重写了resizeEvent()方法并重新计算了列宽,如果垂直调整表格,我显然不会这样做。

我在模型中使用以下代码将数据添加到表中:

bool DDUTableModel::insertRow(int row, const QModelIndex& parent)

{

beginInsertRows(parent, row, row);

digital_display_list_.append(DigitalDisplayData(path_));

endInsertRows();

return true;

}

resizeEvent()如下所示:

void DDUTableView::resizeEvent(QResizeEvent* ev)

{

int num_columns = NUM_ELEMENTS(COLUMN_WIDTHS);

if (num_columns > 0) {

int width = ev->size().width();

int used_width = 0;

// Set our widths to be a percentage of the available width

for (int i = 0; i < num_columns - 1; i++) {

int column_width = (width * COLUMN_WIDTHS[i]) / 100;

this->setColumnWidth(i, column_width);

used_width += column_width;

}

// Set our last column to the remaining width

this->setColumnWidth(num_columns - 1, width - used_width);

}

}

有什么想法吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值