一、首先我们需要创建一个类注意命名最好前面加个Q此类对应你需要改变的一行、一列或者其他位置的窗口选择模式。二、创建好类以后就复制QStyledItemDelegate里面的四个函数到自己创建的类里面四个函数的功效介绍用户双击单元格↓双击后显示创建的编辑器这里先创建什么类型的编辑器以及设定一些数据窗口大小、加减最小值、max、min等┌─────────────────────────────────────┐│ 1. createEditor() 创建编辑器控件 │└─────────────────────────────────────┘↓完成编辑器的样式后就要得到模型的值然后显示到编辑器上因为你双击后编辑器就会替代你的视图所以当然要自己设值了喵。┌─────────────────────────────────────┐│ 2. setEditorData() 从Model读取数据 ││ 显示在编辑器中 │└─────────────────────────────────────┘↓注意用户修改的是编辑器上面的值。qt中关于mvc的使用是将视图和控制器优化了一下在qt中模型不可以点击视图可以点击。在视图上双击就会触发控制器的功能于是你可以直接修改在视图v产生双击信号就会触发c模型的值。所以这里修改的值是编辑器上面的值而非模型。┌─────────────────────────────────────┐│ 用户在编辑器中修改数据 │└─────────────────────────────────────┘↓为了能让视图显示修改的值我们需要从编辑器中获取修改后的值传给模型。┌─────────────────────────────────────┐│ 3. setModelData() 把新数据写回Model│└─────────────────────────────────────┘↓这里可以修改编辑器的位置和大小┌─────────────────────────────────────┐│ 4. updateEditorGeometry() 更新位置 │└─────────────────────────────────────┘最后视图会自动显示修改后的模型三、开始根据自己的需要完成四个函数四、现在你写好了自己的类接着声明成员变量创建自定义代理类的对象实例把我们定义的模板类变成可以使用的具体对象五、最后你可以使用它了例ui-tableView-setItemDelegateForColumn(4, intSalary);将第四列变成自定义代理。