如何在QTableView中的一列或一行上添加控件

如何在QTableView中的一列或一行上添加控件,第1张

首先,创建一个combobox代理

class ComboDelegate : public QItemDelegate

{

Q_OBJECT

public:

ComboDelegate(QObject parent = 0);

QWidget createEditor(QWidget parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;

void setEditorData(QWidget editor, const QModelIndex &index) const;

void setModelData(QWidget editor, QAbstractItemModel model, const QModelIndex &index) const;

void updateEditorGeometry(QWidget editor, const QStyleOptionViewItem &option, const QModelIndex &index) const;

};

实现里面声明的方法,具体参考帮助文档。

然后,在表中,为某一列设置代理

比如,第二列

pComboDelegate = new ComboDelegate();

pTable->setItemDelegateForColumn(1, pComboDelegate);

这样,每行的第二列,需要编辑时,双击,就会出现combobox了

设置垂直头不可见

实现代码:tabeWidget->verticalHeader()->setVisible(false);

改变颜色以及样式通过setStyleSheet()改变

例如:tableWidget->setStyleSheet("selection-background-color:lightblue;");//设置选择背景色为"淡蓝色"

以上就是关于如何在QTableView中的一列或一行上添加控件全部的内容,包括:如何在QTableView中的一列或一行上添加控件、QTableview 怎样用 stylesheet 实现 选中行背景色保持原有颜色不变,但是加粗选中行边框、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/10145242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存