【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,这又是一种类型。
因此我们要注意那些接口是用在列表项的,那些是用在列表的。
冰冻三尺,非一日之寒