刚好我也在弄tableview ^_^,我就分享一下我的做法吧
删除选中行
int row = tableView->currentIndex ()row ();model->removeRow(row);
增加行
int row = model->rowCount(); //获得表的行数model->insertRow(row); //添加一行
数据的修改就直接在tableview中修改让后
model->submitAll();
提交就可以实现修改了,当然前提是你的tableview是设置成手动提交的
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
每一列都是一个TableColumn,我们可以直接创建也可以在JavaFX Scene Builder中创建好。 TableView的数据填充,需要一个ObservableList。其中需要一个类来做数据填充。
重载QTableView从QAbstractItemView继承来的静态函数就kyle
按你的要去i,下面2个都可以
void activated ( const QModelIndex & index )
void clicked ( const QModelIndex & index )
先看以下的效果图
- (void)tableView:(UITableView)tableViewwillDisplayCell:(UITableViewCell)cellforRowAtIndexPath:(NSIndexPath)indexPath {
// 圆角角度
CGFloatradius =10f;
// 设置cell 背景色为透明
cellbackgroundColor = UIColorclearColor;
// 创建两个layer
CAShapeLayernormalLayer = [[CAShapeLayeralloc]init];
CAShapeLayerselectLayer = [[CAShapeLayeralloc]init];
// 获取显示区域大小
CGRectbounds =CGRectInset(cellbounds,10,0);
// 获取每组行数
NSIntegerrowNum = [tableViewnumberOfRowsInSection:indexPathsection];
// 贝塞尔曲线
UIBezierPathbezierPath =nil;
//考虑一行和多行的情况,若行数为1,则这个cell的每个角都是圆角,否则第一行的左上和右上为圆角,最后一行的左下和右下为圆角
if(rowNum ==1) {
// 一组只有一行(四个角全部为圆角)
bezierPath = [UIBezierPathbezierPathWithRoundedRect:bounds
byRoundingCorners:UIRectCornerAllCorners
cornerRadii:CGSizeMake(radius, radius)];
}else{
if(indexPathrow==0) {
// 每组第一行(添加左上和右上的圆角)
bezierPath = [UIBezierPathbezierPathWithRoundedRect:bounds
byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)
cornerRadii:CGSizeMake(radius, radius)];
}else if(indexPathrow== rowNum -1) {
// 每组最后一行(添加左下和右下的圆角)
bezierPath = [UIBezierPathbezierPathWithRoundedRect:bounds
byRoundingCorners:(UIRectCornerBottomLeft|UIRectCornerBottomRight)
cornerRadii:CGSizeMake(radius, radius)];
}else{
// 每组不是首位的行不设置圆角
bezierPath = [UIBezierPathbezierPathWithRect:bounds];
}
}
//将贝塞尔曲线的路径赋值给图层,并将图层添加到view
// 把已经绘制好的贝塞尔曲线路径赋值给图层,然后图层根据path进行图像渲染render
normalLayerpath= bezierPathCGPath;
selectLayerpath= bezierPathCGPath;
UIViewnomarBgView = [[UIViewalloc]initWithFrame:bounds];
// 设置填充颜色
normalLayerfillColor = [UIColor colorWithWhite:095 alpha:10]CGColor;
// 添加图层到nomarBgView中
[nomarBgViewlayerinsertSublayer:normalLayeratIndex:0];
nomarBgViewbackgroundColor = UIColorclearColor;
cellbackgroundView= nomarBgView;
//圆角显示就完成了,但是如果没有取消cell的点击效果,会出现一个灰色的长方形的形状,再用上面创建的selectLayer给cell添加一个selectedBackgroundView
UIViewselectBgView = [[UIViewalloc]initWithFrame:bounds];
selectLayerfillColor = [UIColor colorWithWhite:095 alpha:10]CGColor;
[selectBgViewlayerinsertSublayer:selectLayeratIndex:0];
selectBgViewbackgroundColor = UIColorclearColor;
cellselectedBackgroundView= selectBgView;
}
func tableView(_tableView:UITableView, willDisplay cell:UITableViewCell, forRowAt indexPath:IndexPath) {
// 圆角角度
let radius =calculate(w:350)
// 设置cell 背景色为透明
cellbackgroundColor = UIColorclear
// 创建两个layer
let normalLayer =CAShapeLayer()
let selectLayer =CAShapeLayer()
// 获取显示区域大小
let bounds = cellboundsinsetBy(dx:100, dy:0)
// 获取每组行数
let rowNum = tableViewnumberOfRows(inSection: indexPathsection)
// 贝塞尔曲线
var bezierPath:UIBezierPath
if(rowNum==1) {
// 一组只有一行(四个角全部为圆角)
bezierPath =UIBezierPath(roundedRect: bounds, byRoundingCorners: allCorners, cornerRadii:CGSize(width: radius, height: radius))
}else{
if(indexPathrow==0) {
// 每组第一行(添加左上和右上的圆角)
bezierPath =UIBezierPath(roundedRect: bounds, byRoundingCorners: [UIRectCornertopLeft,UIRectCornertopRight], cornerRadii:CGSize(width: radius, height: radius))
}elseif(indexPathrow==rowNum-1) {
// 每组最后一行(添加左下和右下的圆角)
bezierPath =UIBezierPath(roundedRect: bounds, byRoundingCorners: [UIRectCornerbottomLeft,UIRectCornerbottomRight], cornerRadii:CGSize(width: radius, height: radius))
}else{
// 每组不是首位的行不设置圆角
bezierPath =UIBezierPath(rect: bounds)
}
}
// 把已经绘制好的贝塞尔曲线路径赋值给图层,然后图层根据path进行图像渲染render
normalLayerpath= bezierPathcgPath;
selectLayerpath= bezierPathcgPath;
let nomarBgView =UIView(frame: bounds);
// 设置填充颜色
normalLayerfillColor=UIColorwhitecgColor
// 添加图层到nomarBgView中
nomarBgViewlayerinsertSublayer(normalLayer, at:0)
nomarBgViewbackgroundColor=UIColorclear
cellbackgroundView= nomarBgView
let selectBgView =UIView(frame: bounds)
selectLayerfillColor= UIColorwhitecgColor
selectBgViewlayerinsertSublayer(selectLayer, at:0)
selectBgViewbackgroundColor=UIColorclear
cellselectedBackgroundView= selectBgView
}
以上就是关于QT5中 怎么样实现tableview中鼠标选中行 数据库内容的增删改 求代码全部的内容,包括:QT5中 怎么样实现tableview中鼠标选中行 数据库内容的增删改 求代码、javafx8 里的tableview对象,怎样在点击某一行时,获取到该行的所有tablecell对象、Linux QT 中控件QTableView相应鼠标事件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)