当前位置: 首页 > news >正文

北京北京网站建设网站主题

北京北京网站建设,网站主题,自助建个人网站哪个好,武汉资讯网文章目录 Qt QtableWidget表格删除选中行只能选择一行,点击按钮后,删除一行可以选择中多行,点击按钮后,删除多行选中某一列中的不同行,点击按钮后,删除多行 QTableWidgetSelectionRange介绍QTableWidget的选…

文章目录

  • Qt QtableWidget表格删除选中行
    • 只能选择一行,点击按钮后,删除一行
    • 可以选择中多行,点击按钮后,删除多行
    • 选中某一列中的不同行,点击按钮后,删除多行
  • QTableWidgetSelectionRange介绍
  • QTableWidget的选择模式

Qt QtableWidget表格删除选中行

只能选择一行,点击按钮后,删除一行

设置

	QTableWidget *tb = ui->tableWidget;tb->setSelectionBehavior(QAbstractItemView::SelectRows);tb->setSelectionMode(QAbstractItemView::SingleSelection);

操作

    QTableWidget *tb = ui->tableWidget;int curRow=tb->currentRow();     //当前行号tb->removeRow(curRow);           //删除当前行及其items

可以选择中多行,点击按钮后,删除多行

设置

    QTableWidget *tb = ui->tableWidget;tb->setSelectionBehavior(QAbstractItemView::SelectRows);tb->setSelectionMode(QAbstractItemView::ExtendedSelection);

操作

	QTableWidget *tb = ui->tableWidget;QItemSelectionModel  *m_selection = tb->selectionModel();QModelIndexList indexList = m_selection->selectedIndexes();QList<int> list;int prev =-1,curr=-1;if(indexList.length()>1){//预处理第一行prev  = indexList.at(0).row();list.append(prev);for(int i=1;i<indexList.length();i++){//qDebug() <<"row: "<< indexList.at(i).row() <<"column: "<<indexList.at(i).column();curr = indexList.at(i).row();if(prev ==curr){continue;}else{prev = curr;list.append(prev);}}}else if(indexList.length()==1){list.append(indexList.at(0).row());}else{return;}//从大到小排序,必须从最后一行  往前删除  不然会打乱顺序std::sort(list.rbegin(),list.rend());//根据填充到的数据 删除选中列for(int j = 0; j <list.size(); j++){int cc = list.at(j);tb->removeRow(cc);           //删除当前行及其items}

选中某一列中的不同行,点击按钮后,删除多行

无需设置setSelectionBehavior(QAbstractItemView::SelectRows),但是可以选择的那一列最好设置为不可编辑。按下Ctrl键,选择多行。

设置1

    tableView->setSelectionMode(QAbstractItemView::ExtendedSelection);//选择模式m_selection = new QItemSelectionModel(m_model,this);           //创建选择模型tableView->setSelectionModel(m_selection); //设置选择模型

设置2

        QStandardItem *item1 = new QStandardItem("aa1");item1->setEditable(false);QStandardItem *item2 = new QStandardItem("aa2");item2->setEditable(false);        QList<QStandardItem *> list = {item1,item2};model->appendRow(list);        

操作

            QModelIndexList indexList = m_selection->selectedIndexes();QList<int> list;int sameColumn=-1;for(int i=0;i<indexList.length();i++){if(i==0){sameColumn=indexList.at(i).column();}//qDebug() <<"row: "<< indexList.at(i).row() <<"column: "<<indexList.at(i).column();if(sameColumn!=indexList.at(i).column()){//上面currentColumnChanged信号其实已经让用户只能选择同一列,这里双重保险qDebug()<<"你的选择有不同列,请务必选择同一列的不同行来进行多行删除操作";return;}list.append(indexList.at(i).row());}//从大到小排序,必须从最后一行  往前删除  不然会打乱顺序std::sort(list.rbegin(),list.rend());//根据填充到的数据 删除选中列for(int j = 0; j <list.size(); j++){int cc = list.at(j);m_model->removeRow(cc);}

QTableWidgetSelectionRange介绍

QTableWidgetSelectionRange是Qt框架中用于表示QTableWidget中选定的一块单元格区域的类。以下是如何使用QTableWidgetSelectionRange的一些常见操作:

  1. 获取当前选定的单元格区域:
QList<QTableWidgetSelectionRange> ranges = tableWidget->selectedRanges();
  1. 获取第一个选定的单元格区域的起始行、起始列、行数和列数:
if (!ranges.isEmpty()) {int startRow = ranges.first().topRow();int startColumn = ranges.first().leftColumn();int rowCount = ranges.first().rowCount();int columnCount = ranges.first().columnCount();
}
  1. 遍历所有选定的单元格区域:
foreach (const QTableWidgetSelectionRange &range, ranges) {int startRow = range.topRow();int startColumn = range.leftColumn();int rowCount = range.rowCount();int columnCount = range.columnCount();// 进行处理...
}
  1. 检查特定的单元格区域是否被选定:
QTableWidgetSelectionRange range(1, 1, 3, 3); // 定义一个起始行为1,起始列为1,行数和列数为3的区域
if (tableWidget->selectedRanges().contains(range)) {// 区域被选定
}
  1. 清除所有选定的单元格区域:
tableWidget->clearSelection();

QTableWidgetSelectionRange类提供了一种方便的方式来处理QTableWidget中的选择区域。使用它可以获取和操作选定的单元格区域,进行相关的处理和操作。

QTableWidget的选择模式

QTableWidget通过setSelectionMode()SelectionBehavior来设置选择模式

enum QAbstractItemView::SelectionBehavior

ConstantValueDescription
QAbstractItemView::SelectItems0Selecting single items.
QAbstractItemView::SelectRows1Selecting only rows.
QAbstractItemView::SelectColumns2Selecting only columns.

enum QAbstractItemView::SelectionMode

此枚举指示视图如何响应用户选择:

ConstantValueDescription
QAbstractItemView::SingleSelection1When the user selects an item, any already-selected item becomes unselected. It is possible for the user to deselect the selected item by pressing the Ctrl key when clicking the selected item.
QAbstractItemView::ContiguousSelection4When the user selects an item in the usual way, the selection is cleared and the new item selected. However, if the user presses the Shift key while clicking on an item, all items between the current item and the clicked item are selected or unselected, depending on the state of the clicked item.
QAbstractItemView::ExtendedSelection3When the user selects an item in the usual way, the selection is cleared and the new item selected. However, if the user presses the Ctrl key when clicking on an item, the clicked item gets toggled and all other items are left untouched. If the user presses the Shift key while clicking on an item, all items between the current item and the clicked item are selected or unselected, depending on the state of the clicked item. Multiple items can be selected by dragging the mouse over them.
QAbstractItemView::MultiSelection2When the user selects an item in the usual way, the selection status of that item is toggled and the other items are left alone. Multiple items can be toggled by dragging the mouse over them.
QAbstractItemView::NoSelection0Items cannot be selected.
http://www.khdw.cn/news/47266.html

相关文章:

  • 如何修改公司网站内容山西seo排名
  • 免费阅读小说大全下载手机端关键词排名优化
  • Myeclipse怎么做网站湖南网站建设推广优化
  • 帮人家做网站怎么赚钱网站优化排名方案
  • 网站开发设计运维google站长工具
  • 小网站郑州网络seo公司
  • 北京市建设部网站海外推广渠道都有哪些
  • wordpress媒体库创建文件夹网站关键词优化多少钱
  • 网站排名需要多长时间刷网站排名软件
  • 10个网站沈阳关键词seo
  • 厦门seo排名公司抖音seo搜索引擎优化
  • 广东做网站微平台推广
  • 黄色为主的网站网上推广方式
  • wap网站开发教程珠海网站建设优化
  • 网站建设怎样把网页连接起来成功营销十大经典案例
  • 南通启益建设集团有限公司网站青岛网站开发公司
  • 成都网站建设开发公司哪家好seo站长工具平台
  • 百度怎么验证网站做网站优化的公司
  • 厦门协会网站建设手机上如何制作自己的网站
  • 品牌好的佛山网站建设价格百度贴吧怎么发广告
  • 新疆工程建设云网站百度百科ui设计
  • 51网站一起做网店360推广
  • 住房和建设局网站seo综合
  • 快速网站排名提升工具网络营销的定义是什么
  • 做网站赚钱流量关键词网站排名软件
  • 如何做婚介网站百度行发代理商
  • 宁海县高质量营销型网站建设搜索引擎营销的案例有哪些
  • 西安学校网站建设费用北京环球影城每日客流怎么看
  • 山西网站制作公司网站域名备案查询
  • 威海外贸建站seo优化网站的注意事项