• Qt 带有图片的listwidget


    原文:https://beondxin.blog.csdn.net/article/details/100173606
    看到一个不错的文字和图片对应起来的方式,记录下
    给每个item传入Qt::UserRole item->setData(Qt::UserRole, i.key());
    根据 item->data(Qt::UserRole).toInt();返回dialog返回信息
    在这里插入图片描述

     QMap<int, QString> symbolMap;
    symbolMap.insert(132, QObject::tr("Data"));
    symbolMap.insert(135, QObject::tr("Decision"));
    symbolMap.insert(137, QObject::tr("Document"));
    symbolMap.insert(138, QObject::tr("Manual Input"));
    symbolMap.insert(139, QObject::tr("Manual Operation"));
    symbolMap.insert(141, QObject::tr("On Page Reference"));
    symbolMap.insert(142, QObject::tr("Predefined Process"));
    symbolMap.insert(145, QObject::tr("Preparation"));
    symbolMap.insert(150, QObject::tr("Printer"));
    symbolMap.insert(152, QObject::tr("Process"));
    
    
    while (i.hasNext()) {
            i.next();
            QListWidgetItem *item = new QListWidgetItem(i.value(),
                    listWidget);
            //设定一个Icon(视图)
            item->setIcon(iconForSymbol(i.value()));
            //将ID保存到QListWidgetItem中去---Qt::UserRole为自定义角色(模型数据)
            item->setData(Qt::UserRole, i.key());
        }
    
    
    QString fileName = ":/images/" + symbolName.toLower();
        fileName.replace(' ', '-');
        return QIcon(fileName);
    
    
    void flowchartsymbolpicker::done(int result) {
        id = -1;
        if (result == QDialog::Accepted) {
            QListWidgetItem *item = listWidget->currentItem();
            if (item) {
                id = item->data(Qt::UserRole).toInt();
            }
        }
        QDialog::done(result);
    }
    
    
  • 相关阅读:
    C#实现图片的无损压缩
    C#实现图片的无损压缩
    ACM2034
    产品经理入门攻略(三)
    编程思想14.类型信息
    分布式ID生成策略 · fossi
    在加拿大找工作:如何写简历(适用理工科)
    支持向量机 SVM
    javaSE复习之——线程
    spring基于@Value绑定属Bean性失
  • 原文地址:https://www.cnblogs.com/xiaohai123/p/16281127.html
Copyright © 2020-2023  润新知