el-table增加多选框并在表头增加全选字样

el-table增加多选框并在表头增加全选字样,第1张

实现方法:

1.手动添加一个el-table-column,设type属性为selection即可

<el-table-column type="selection" width="100px"></el-table-column>

2.在el-table-column中设置label属性并不会起作用,因此全选二字需要使用CSS来实现

.el-table__header .el-table-column--selection .cell .el-checkbox:after {

color: #333

content: "全选"

font-size: 16px

margin-left: 12px

font-weight: bold

}

这个样式实测有效!

1,直接添加控件

for(int i = 0i <tableCount++i) {

const QString table = tableNames.at(i)

{

QWidget *widget = new QWidget(ui->tableWidget_table)

QHBoxLayout *hLayout = new QHBoxLayout()

QCheckBox *checkBox = new QCheckBox()

hLayout->addWidget(checkBox)

hLayout->setMargin(0) // 必须添加, 否则CheckBox不能正常显示

hLayout->setAlignment(checkBox, Qt::AlignCenter)

widget->setLayout(hLayout)

ui->tableWidget_table->setCellWidget(i, TABLE_CHECKED_COLUMN, widget)

}

2,使用代理 实例里面有的

给你一个实现的方案:假设这个table的id为“table”

public void clickName(String name){

    //获取table的总行数

    //如果/table/tbody中的tr有class属性为"tr",且在tbody之外没有控件的class属性是这个

    int rowNum = driver.findElements(By.className("tr")).size()

    //如果没有上面那个条件,则使用tagName获取tbody内的行数

    int rowNum = driver.findElement(By.xpath("//table[@id = 'table']/tbody"))

                    .findElements(By.tagName("tr")).size()

    //循环获取每一行的姓名,和传入的Name比较,是的话勾选方括号

     for(int i = 1i<=rowNumi++){

         String rowName = driver.findElement(By.xpath("//table[@id='table']/tbody/tr["+i+"]")/td[3])).getText()

         if(name.equals(rowName)){

             driver.findElement("//table[@id='table']/tbody/tr["+i+"]")/td[1])).click()

             break

         }

     } 

}

//大概的代码应该是这样,太久没写了,如果点击名字可以勾选到的话实现起来就更加简单。


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

原文地址:https://54852.com/bake/11621824.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存