(iCount+1)); table_model->setItem(iCount, 0, item); } void MainWindow::on_pushButtonDel_clicked() { /* //设置多选的时候,没有设置checkbox时候 //获取所有的选中行 QModelIndexList selection = ui->tableView->selectionModel()->selectedRows(); int count = selection.count(); QModelIndex id...
第一种方法是:编辑委托法 这种方法直接利用委托中重载createEditor(),激活QCheckBox,这个缺点是必须双击/选中,才能显示CheckBox控件。一般不满足我们实际中的直接显示的需要。可以参考Qt中的QSpinBoxDelegate例子。 第二种方法是:设置QAbstractTableModel的flags()函数法。 第三种方法是:用QTableView中的方法void setIndexW...
QTableView::indicator:enabled:indeterminate:hover { image: url(:/Images/checkBoxIndeterminateHover); } QTableView::indicator:enabled:indeterminate:pressed { image: url(:/Images/checkBoxIndeterminatePressed); } 使用 QTableView *pTableView = new QTableView(this); TableModel *pModel = new TableModel(thi...
QTableView::indicator:enabled:unchecked:pressed { image:url(:/Images/checkBoxPressed); } QTableView::indicator:enabled:checked { image:url(:/Images/checkBoxChecked); } QTableView::indicator:enabled:checked:hover { image:url(:/Images/checkBoxCheckedHover); } QTableView::indicator:enabled:checked:pre...
这种方法直接利用委托中重载createEditor(),激活QCheckBox,这个缺点是必须双击/选中,才能显示CheckBox控件。一般不满足我们实际中的直接显示的需要。可以参考Qt中的QSpinBoxDelegate例子。 第二种方法是:设置QAbstractTableModel的flags()函数法。 第三种方法是:用QTableView中的方法void setIndexWidget(const QModelIndex &in...
代码很简单,重写QHeaderView类,然后设置到对应的Table中即可。 <>重写QHeaderView类 class CheckBoxHeaderView : public QHeaderView { Q_OBJECT public: CheckBoxHeaderView(int checkColumnIndex, Qt::Orientation orientation, QWidget * parent = 0) : QHeaderView(orientation, parent) { // 默认ComboBox; m_combo...
这种方法直接利用委托中重载createEditor(),激活QCheckBox,这个缺点是必须双击/选中,才能显示CheckBox控件。一般不满足我们实际中的直接显示的需要。可以参考Qt中的QSpinBoxDelegate例子。 第二种方法是:设置QAbstractTableModel的flags()函数法。 第三种方法是:用QTableView中的方法void setIndexWidget(const QModelIndex &in...
简介:简述使用QTableView,经常会遇到复选框,要实现一个好的复选框,除了常规的功能外,还应注意以下几点:三态:不选/半选/全选自定义风格(样式)下面我们介绍一下常见的实现方式:编辑委托。 方式:利用委托重载createEditor(),激活QCheckBox。 特点:必须双击/选中,才能显示CheckBox控件。一般不满足实际中的直接显示的需要...
关于如何在QTableView中只有一个复选框列,可以参考以下代码示例: 代码语言:cpp 复制 QStandardItemModel*model=newQStandardItemModel(this);model->setColumnCount(2);model->setRowCount(3);QTableView*tableView=newQTableView(this);tableView->setModel(model);// 创建复选框列QStandardItem*checkBoxItem=newQStandardIt...
上述CheckBoxDelegate类已经实现了这些方法。paint()方法用于绘制勾选框,createEditor()方法用于创建编辑控件(这里是QCheckBox),setEditorData()和setModelData()方法用于在编辑控件和模型之间同步数据。 通过以上步骤,你就可以在QTableView中为每一行或指定的单元格添加勾选框了。记得为你的项目添加适当的资源文件(如:/...