我目前正在尝试通过子类化 QTableView
、QAbstractTableModel
和 QStyledItemDelegate
来构建 Qt 表,以维持 MVC 架构的一些外观。
我使用这个简单的示例作为构建的基础,因为我之前没有接触过 Qt 表类:
http://qt-project.org/doc/qt-4.8/modelview.html
无论如何,表格主要是文本列,但它也需要一个切换按钮列和一个复选框列。
我注意到模型的数据方法可用于实现复选框,但我需要按钮的自定义委托(delegate),因此我也将其用于复选框。
无论如何,我无法在互联网上找到任何通过使用包含文本、复选框和按钮的混合的 QTableView 对象来创建表格的合适示例。你们中的任何一位好先生能给我指出正确的方向吗?
最佳答案
您不需要自定义委托(delegate)即可在表格 View 中添加复选框和切换按钮。您可以简单地使您的项目可检查并将其设置为您的模型,例如:
QStandardItem *item = new QStandardItem( true );
item->setCheckable(true);
item->setCheckState(Qt::Unchecked);
QStandardItemModel * model = new QStandardItemModel( 0, 2 );
model->setRowCount(1);
model->setItem(0, 0, item);
对于切换按钮,您可以这样做:
QPushButton * but = new QPushButton(this);
but->setCheckable(true);
but->setText("Toggle");
ui->tableView->setIndexWidget(model->item(0,1)->index(),but);
关于c++ - Qt QTableView 实现切换按钮和复选框委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22865201/