【qt】QTableWidget 表格组件3

简介: 【qt】QTableWidget 表格组件

【qt】QTableWidget 表格组件2:https://developer.aliyun.com/article/1523072

五.删除功能

1.删除逻辑

通过获取当前光标在的单元格位置,来删除单元格所在的行。

2.获取当前选中的单元格

void MainWindow::on_actionDel_triggered()
{
    auto item=ui->tableWidget->currentItem();        
    ui->tableWidget->removeRow(item->row());
}

运行结果:

这样有个问题就是,当我们删除后,没有进行选择,但是还是可以删除,所以我们要进行是否被选中的判断。

3.判断单元格是否被选中

void MainWindow::on_actionDel_triggered()
{
    auto item=ui->tableWidget->currentItem();
    if(item->isSelected())
    {
       ui->tableWidget->removeRow(item->row());
    }
    
}

问题就被完美的解决了。

4.删除行

ui->tableWidget->removeRow(item->row());

六.查找功能

1.查找逻辑

我们是在行编辑器中去输入字符串,通过按钮来关联槽函数来进行包含查找,查找到就进行选中,同时来搞一个高亮显示。

2.查找字符

因为我们打算是在状态栏加lineeditpushbutton所以我们只能用代码来进行添加。

    lineFind=new QLineEdit;
    button=new QPushButton;
    label=new QLabel;
    
    statusBar()->addWidget(lineFind);
    statusBar()->addWidget(button);
    statusBar()->addWidget(label);
    
    lineFind->setMaximumWidth(200);
    button->setText("查找");
    connect(button,SIGNAL(clicked()),this,SLOT(onButtonFind()));//对按钮进行自己定义的槽函数关联

运行结果:

void MainWindow::onButtonFind()
{
    QString ret=lineFind->text().trimmed();//去除开头和结尾的空白符
    if(ret.length()>0)
    {
        //包含模式查找,返回的是一个容器链表
        auto items=ui->tableWidget->findItems(ret,Qt::MatchContains);
        //遍历所有查找到的结果将其设置为选中
        for(auto it=items.begin();it!=items.end();it++)
        {
            (*it)->setSelected(true);
        }
    }
}

3.设置选中

 //遍历所有查找到的结果将其设置为选中
        for(auto it=items.begin();it!=items.end();it++)
        {
            (*it)->setSelected(true);
        }

4.设置样式表

可以看成查到了牛马,但是这个颜色太浅了,我们可以来设置选中的样式表来高亮显示。

ui->tableWidget->setStyleSheet("selection-background-color:rgb(255,128,0)");

运行结果;

这就很清晰了,但是有个问题就是我们下次查询的时候,这些高亮还是在,所有我们要进行清除选中。

5.清除高亮

ui->tableWidget->clearSelection();//清除选中

这就很爽了,你们可以试试。

七.显示信息

1.显示逻辑

当我们随便选择一个单元格的时候,我们就在标签上,显示该单元格所在的一行信息。

2.信号

3.读出单元格的信息

void MainWindow::on_tableWidget_cellClicked(int row, int column)
{
    QString ret;
    for(int i=0;i<ui->tableWidget->columnCount();i++)
    {
        ret+=ui->tableWidget->item(row,i)->text()+"/";
    }
    label->setText(ret);
}

运行结果:

八.总结

表格的构建先列(表头)后行,每一个数据都是通过单元格进行设置。

其次就是对增删改查功能的设计的掌握。

人的一切痛苦,本质上都是对自己无能的愤怒。

相关文章
|
5月前
【qt】Tool Box组件
【qt】Tool Box组件
44 0
|
2月前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
75 2
|
2月前
|
编解码 开发框架
【Qt 学习笔记】Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍
【Qt 学习笔记】Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍
140 3
|
4月前
Qt安装之后添加或移除组件(Qt Creator 10.0.1)
Qt安装之后添加或移除组件(Qt Creator 10.0.1)
|
5月前
【qt】QTableWidget 表格组件2
【qt】QTableWidget 表格组件
53 0
|
5月前
【qt】QTableWidget 表格组件1
【qt】QTableWidget 表格组件
40 0
|
5月前
|
索引 Windows
【qt】QTreeWidget 树形组件2
【qt】QTreeWidget 树形组件
40 0
|
5月前
|
C++
【qt】QTreeWidget 树形组件1
【qt】QTreeWidget 树形组件
41 0
|
3月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
146 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
2月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
50 0