本文进行的了QListWidget的使用,设计了如上所示的UI界面信息,具有以下几个功能:
添加,插入,删除,显示模式调整等功能文章来源:https://www.toymoban.com/news/detail-559086.html
初始化
将模式选择添加到QpushButtonGroup中
my_button_group = new QButtonGroup(this);
my_button_group->addButton(ui->list_show,0);
my_button_group->addButton(ui->picture_show,1);
模式确定
// 设计显示模式
connect(ui->list_show,&QRadioButton::clicked,this,&Widget::onRadioButton);
connect(ui->picture_show,&QRadioButton::clicked,this,&Widget::onRadioButton);
ui->list_show->setChecked(true);
ui->province->setViewMode(QListView::ListMode);
// 信号处理函数
void Widget::onRadioButton()
{
int checkid = my_button_group->checkedId();
if( checkid == 0){
//list显示
ui->province->setViewMode(QListView::ListMode);
}else if(checkid==1){
//icon显示
ui->province->setViewMode(QListView::IconMode);
}
}
双击显示处理
connect(ui->province,&QListWidget::itemClicked,this,&Widget::onItemClicked);
connect(ui->province,&QListWidget::itemDoubleClicked,
this,&Widget::onItemDoubleClicked);
void Widget::onItemClicked(QListWidgetItem * item)
{
ui->output_line->setText(item->text());
}
void Widget::onItemDoubleClicked(QListWidgetItem * item)
{
ui->output_line->setText(item->text());
}
具体处理的信号槽函数
对应的icon文件地址映射符号
QStringList picture = {
":/new/prefix1/picture_source/健身.png",
":/new/prefix1/picture_source/吹风机.png",
":/new/prefix1/picture_source/天气.png",
":/new/prefix1/picture_source/报警.png",
":/new/prefix1/picture_source/无线网.png",
":/new/prefix1/picture_source/日历.png",
":/new/prefix1/picture_source/沐浴.png",
":/new/prefix1/picture_source/电视.png",
":/new/prefix1/picture_source/西餐.png",
":/new/prefix1/picture_source/酒店.png"
};
// 添加事件
void Widget::on_add_clicked()
{
// 设置图片
// 随机图像
设置随机数
int n = QRandomGenerator::global()->generate()%10;
QIcon icon(picture[n]);
QString text = ui->input_line->text();
QListWidgetItem *item = new QListWidgetItem(icon,text);
ui->province->addItem(item);
}
// 插入事假
void Widget::on_insert_clicked()
{
QIcon icon(":/new/prefix1/picture_source/无线网.png");
QString text = ui->input_line->text();
QListWidgetItem *item = new QListWidgetItem(icon,text);
int n = ui->province->currentRow();
ui->province->insertItem(n,item);
}
// 删除事件
void Widget::on_delete_2_clicked()
{
QListWidgetItem *item = ui->province->currentItem();
ui->province->removeItemWidget(item);
// 需要手动删除
delete item;
}
结果显示
文章来源地址https://www.toymoban.com/news/detail-559086.html
到了这里,关于QT的QListWidget使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!