ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021-09-10

2021-09-10 20:30:19  阅读:197  来源: 互联网

标签:10 selstr 上移 selitem 09 ui 2021 listWidget currRow


Qt ListWidget内容上下移动(简单实现)

  1. 上移操作
    实现思路:获取当前选中行信息(内容QString、行号currentRow()),删除当前行,并将获取到的信息在上一行进行添加。
widget.h文件
private:
    Ui::Widget *ui;
    QListWidgetItem * selitem; //新建ListWidgetItem指针
widget.cpp文件
void Widget::on_btn_up_clicked() //单步操作上移
{
    selitem = ui->listWidget->currentItem(); //获取用户当前选中项
    if(selitem!=NULL) //判断非空,否则点击会出错
    {
        int currRow = ui->listWidget->currentRow();//获取当前行号
        QString selstr = selitem->text(); //获取当前行内容
        if(currRow>0) //限制(上移至第0行终止)
        {
            delete ui->listWidget->takeItem(currRow);//删除当前行
            ui->listWidget->insertItem(currRow-1,selstr);//在上一行插入新行,内容为之前选中内容
        }
        ui->listWidget->setCurrentRow(currRow-1);//将上移后的新行选中,实现连续上移
    }
}
  1. 下移操作
    实现思路与上移大致相同,只不过通过总行数与选中行行数之差判断是否还有下移空间
void Widget::on_btn_down_clicked() //单步操作下移
{ 
    selitem = ui->listWidget->currentItem();
    if(selitem!=NULL)
    {
        int currRow = ui->listWidget->currentRow();
        QString selstr = selitem->text();
        int rowAll = ui->listWidget->count();//获取当前list总行数
        if((rowAll-currRow)>0)//限制(下移至最后一行终止)
        {
            delete  ui->listWidget->takeItem(currRow);
            ui->listWidget->insertItem(currRow+1,selstr);
        }
        ui->listWidget->setCurrentRow(currRow+1);
    }
}

新人第一次发文,希望能帮到有需要朋友,当然欢迎大家在评论区交流分享更简单高效的代码!

标签:10,selstr,上移,selitem,09,ui,2021,listWidget,currRow
来源: https://blog.csdn.net/zbl340/article/details/120228991

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有