【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,这又是一种类型。

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

冰冻三尺,非一日之寒

相关文章
|
2月前
【qt】Tool Box组件
【qt】Tool Box组件
20 0
|
4天前
Qt安装之后添加或移除组件(Qt Creator 10.0.1)
Qt安装之后添加或移除组件(Qt Creator 10.0.1)
14 2
|
2月前
【qt】QTableWidget 表格组件3
【qt】QTableWidget 表格组件
18 0
|
2月前
【qt】QTableWidget 表格组件2
【qt】QTableWidget 表格组件
25 0
|
2月前
【qt】QTableWidget 表格组件1
【qt】QTableWidget 表格组件
18 0
|
2月前
|
索引 Windows
【qt】QTreeWidget 树形组件2
【qt】QTreeWidget 树形组件
22 0
|
2月前
|
C++
【qt】QTreeWidget 树形组件1
【qt】QTreeWidget 树形组件
27 0
|
2月前
【qt】QListWidget 组件2
【qt】QListWidget 组件
29 0
|
11天前
|
关系型数据库 MySQL 项目管理
数据库大作业——基于qt开发的图书管理系统(四)项目目录的整理与绘制登录页面
数据库大作业——基于qt开发的图书管理系统(四)项目目录的整理与绘制登录页面
|
11天前
|
SQL 关系型数据库 MySQL
数据库大作业——基于qt开发的图书管理系统(三)Qt连接Mysql数据库
数据库大作业——基于qt开发的图书管理系统(三)Qt连接Mysql数据库