【qt】QListWidget 组件3

简介: 【qt】QListWidget 组件

【qt】QListWidget 组件2:https://developer.aliyun.com/article/1523024

3.反选

先用item拿到列表项

然后检查复选框的状态,然后进行相反的设置。

void MainWindow::on_actionFan_triggered()
{
    int count=ui->listWidget->count();
    for(int i=0;i<count;i++)
    {
        auto item=ui->listWidget->item(i);
        if(item->checkState()==Qt::Checked)
        {
            ui->listWidget->item(i)->setCheckState(Qt::Unchecked);
        }
        else
        {
            ui->listWidget->item(i)->setCheckState(Qt::Checked);
        }
    }
}

运行结果:

4.add添加

对按钮进行转到槽,然后检查文本框是否为空

trimmed可以排除收尾的空格,避免输入无效空格

void MainWindow::on_pushButton_clicked()
{
    //如果文本不为空
    if(ui->lineEdit->text().trimmed().length()>0)
    {
        QListWidgetItem *item=new QListWidgetItem;
        item->setText(ui->lineEdit->text().trimmed());
        QIcon icon;
        icon.addFile(":/images/image/class.png");
        item->setIcon(icon);
        item->setCheckState(Qt::Unchecked);
        ui->listWidget->addItem(item);
    }

}

运行结果:

八.右键快捷菜单

1.自定义菜单设置

 ui->listWidget->setContextMenuPolicy(Qt::CustomContextMenu);//可以自定义菜单

将上下文菜单策略设置为自定义菜单策略。在这种策略下,当用户在该部件上右击时,不会自动弹出默认的上下文菜单,而是需要手动编写代码来定义自己的上下文菜单。

2.转到槽

选择这个信号

3.创建菜单

QMenu *menu=new QMenu(this);

4.添加菜单项

    menu->addAction(ui->actionIconMode);
    menu->addAction(ui->actionListMode);
    menu->addSeparator();//添加分割线
    menu->addAction(ui->actionDelete);

7.显示菜单

menu->exec(QCursor::pos());

8.删除菜单

delete menu;

总的:

void MainWindow::on_listWidget_customContextMenuRequested(const QPoint &pos)
{
    
    menu->addAction(ui->actionIconMode);
    menu->addAction(ui->actionListMode);
    menu->addSeparator();//添加分割线
    menu->addAction(ui->actionDelete);
    menu->exec(QCursor::pos());
    delete menu;
}

运行结果:

九.工具按钮

1.拖拉工具按钮

2.添加菜单

    QMenu *menu=new QMenu;
    menu->addAction(ui->actionIconMode);
    menu->addAction(ui->actionListMode);
    menu->addAction(ui->actionDelete);
    ui->toolButtonMenu->setMenu(menu);

3.弹出方式

ui->toolButtonMenu->setPopupMode(QToolButton::InstantPopup);

4.默认子菜单

ui->toolButtonMenu->setDefaultAction(ui->actionIconMode);

5.显示样式

ui->toolButtonMenu->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);

运行结果:

十.总结

对于QListWidget的组件,我们最重要的一点是往里面添加的是列表项ListWidgetItem,这又是一种类型。

因此我们要注意那些接口是用在列表项的,那些是用在列表的。

冰冻三尺,非一日之寒

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