思路。 扩展QHeaderView, 并创建控件,把这些控件覆盖到headerview相应的位置上。
简单代码如下 我想放个 combobox 到第一行那里
构造函数中
{
box.setParent(this);
box.addItem("sss1");
box.addItem("sss2");
box.setCursor(Qt::ArrowCursor);
box.hide();
// 设置高度
//setFixedHight(50);
}
扩展类 覆盖下面这个函数
rect 就是这一列的 尺寸, logicIndex 是序列号
void paintSection(QPainter* painter, const QRect& rect, int logicIndex) const {
painter->save();
QHeaderView::paintSection(painter, rect, logicalIndex);
painter->restore();
// 这是个combobox,且已在构造函数中初始化,是成员变量
box.setGeometry(rect);
if (box.isHidden())
box.show();
// 如果你不想填满整个,可以自己拆分这个rect
}