QListWidget 縮略圖IconMode示例

1、實現的效果如下:

2、實現代碼

(1)頭文件

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_QListViewDemo.h"

enum ListDataType
{
? ? ldtNone = -1,
? ? ldtOne = 0,
? ? ldtTwo = 1,
};

struct ListData
{
? ? QString strImgPath;
? ? ListDataType eListDataType;
? ? QString strText;
};

class QListViewDemo : public QMainWindow
{
? ? Q_OBJECT

public:
? ? QListViewDemo(QWidget *parent = Q_NULLPTR);

private:
? ? Ui::QListViewDemoClass ui;
? ? QList<ListData> m_lstData;

? ? QMap<QListWidgetItem* , ListDataType> m_mapWidget;
};
(2)實現文件

#include "QListViewDemo.h"

QListViewDemo::QListViewDemo(QWidget *parent)
? ? : QMainWindow(parent)
{
? ? ui.setupUi(this);

? ? ui.listWidget->setViewMode(QListView::ViewMode::IconMode);
? ? //ui.listWidget->setIconSize(QSize(80, 80));
? ? ui.listWidget->setResizeMode(QListWidget::Adjust);
? ? //ui.listWidget->setGridSize(QSize(150, 150));
? ? ui.listWidget->setSpacing(5);
? ? ui.listWidget->setMovement(QListWidget::Static);


? ? {
? ? ? ? ListData _ListData;
? ? ? ? _ListData.strImgPath = ":/QListViewDemo/images/1.png";
? ? ? ? _ListData.eListDataType = ldtOne;
? ? ? ? _ListData.strText = "Sample1";
? ? ? ? m_lstData.append(_ListData);
? ? }
? ? {
? ? ? ? ListData _ListData;
? ? ? ? _ListData.strImgPath = ":/QListViewDemo/images/1.png";
? ? ? ? _ListData.eListDataType = ldtTwo;
? ? ? ? _ListData.strText = "Sample2";
? ? ? ? m_lstData.append(_ListData);
? ? }


? ?for (int i = 0; i < m_lstData.size(); i++)
? ?{
? ? ? ?QListWidgetItem* imageItem = new QListWidgetItem;
? ? ? ?imageItem->setIcon(QIcon(m_lstData.at(i).strImgPath));
? ? ? ?imageItem->setSizeHint(QSize(100, 100));
? ? ? ?imageItem->setText(m_lstData.at(i).strText);
? ? ? ?ui.listWidget->addItem(imageItem);

? ? ? ?m_mapWidget[imageItem] = m_lstData.at(i).eListDataType;
? ?}

? ?connect(ui.listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(_slotitemClicked(QListWidgetItem*)));
}

點擊按鈕事件

public slots:

? ? void _slotitemClicked(QListWidgetItem* item);

實現函數如下

void QListViewDemo::_slotitemClicked(QListWidgetItem* item)
{
? ? auto itrFind = m_mapWidget.find(item);
? ? if (itrFind != m_mapWidget.end())
? ? {
? ? ? ? ListDataType eListDataType = itrFind.value();
? ? ? ? switch (eListDataType)
? ? ? ? {
? ? ? ? case ldtOne:
? ? ? ? {
? ? ? ? ? ? int yyy = 5;
? ? ? ? ? ? break;
? ? ? ? }
? ? ? ? case ldtTwo:
? ? ? ? {
? ? ? ? ? ? int yyy = 5;
? ? ? ? ? ? break;
? ? ? ? }
? ? ? ? }
? ? }
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42255.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42255.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42255.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡協議與標準

協議&#xff1a; 語法 &#xff1b;計算機的算法&#xff0c;二進制 語義 &#xff1b;不要有出現歧義的 同步 &#xff1b; 同步還原信息&#xff0c;收發同步 標準&#xff1a; ISO&#xff08;國際標準化組織&#xff09; IEEE(電氣和電子工程師學會) 局域網技術 一.協議…

解決后端限制導致前端配置跨域仍請求失敗報504的問題

文章目錄 問題一、通過配置跨域方式二、直接真實接口請求三、解決方式四、后端這樣做的原因 總結 問題 前端項目設置跨域proxy處理&#xff0c;接口請求不會報跨域&#xff0c;但是接口請求報了504&#xff0c;這種情況如何處理呢&#xff0c;后端又為何要這么做&#xff0c;下…

汽車信息安全--歐盟汽車法規

目錄 General regulation 信息安全法規 R155《網絡安全及網絡安全管理系統》解析 R156《軟件升級與軟件升級管理系統》解析 General regulation 歐洲的汽車行業受到一系列法律法規的約束&#xff0c;包括 各個方面包括&#xff1a; 1.安全要求&#xff1a;《通用安全條例&a…

機器學習筑基篇,?Ubuntu 24.04 快速安裝 PyCharm IDE 工具,無需激活!

[ 知識是人生的燈塔&#xff0c;只有不斷學習&#xff0c;才能照亮前行的道路 ] Ubuntu 24.04 快速安裝 PyCharm IDE 工具 描述&#xff1a;雖然在之前我們安裝了VScode&#xff0c;但是其對于使用Python來寫大型項目以及各類配置還是比較復雜的&#xff0c;所以這里我們還是推…

AWS CloudWatch 權限管理指南

在 AWS 環境中,有效管理 CloudWatch 權限對于維護系統安全和優化運營效率至關重要。本文將詳細介紹 CloudWatch 的常用權限分類,并提供相應的 JSON 策略示例。 1. 概述 CloudWatch 權限可以大致分為以下幾類: 只讀訪問權限完全訪問權限日志管理權限告警管理權限指標管理權…

使用RAID與LVM磁盤陣列技術

前言&#xff1a;本博客僅作記錄學習使用&#xff0c;部分圖片出自網絡&#xff0c;如有侵犯您的權益&#xff0c;請聯系刪除 目錄 一、RAID磁盤冗余陣列 1、部署磁盤整列 2、損壞磁盤陣列及修復 3、磁盤陣列備份盤 4、刪除磁盤陣列 二、LVM邏輯卷管理器 致謝 一、RAID…

使用 PCA 可視化數據的分類能力

使用 PCA 探索數據分類的效果&#xff08;使用 Python 代碼&#xff09; 「AI秘籍」系列課程&#xff1a; 人工智能應用數學基礎人工智能Python基礎人工智能基礎核心知識人工智能BI核心知識人工智能CV核心知識 主成分分析 (PCA) 是數據科學家使用的絕佳工具。它可用于降低特征…

【QT】容器類控件

目錄 概述 Group Box 核心屬性 Tab Widget 核心屬性 核心信號 核心方法 使用示例&#xff1a; 布局管理器 垂直布局 核心屬性 使用示例&#xff1a; 水平布局 核?屬性 (和 QVBoxLayout 屬性是?致的) 網格布局 核心屬性 使用示例&#xff1a; 示例&#x…

2024亞太杯中文賽數學建模B題word+PDF+代碼

2024年第十四屆亞太地區大學生數學建模競賽&#xff08;中文賽項&#xff09;B題洪水災害的數據分析與預測&#xff1a;建立指標相關性與多重共線性分析模型、洪水風險分層與預警評價模型、洪水發生概率的非線性預測優化模型&#xff0c;以及大規模樣本預測與分布特征分析模型 …

UI設計中瀑布流布局方式的特定和例子

在UI設計中&#xff0c;瀑布流布局方式&#xff08;Waterfall Layout&#xff09;是一種非常流行且有效的內容展示方式&#xff0c;其特定和例子可以歸納如下&#xff1a; 瀑布流布局的特定 視覺表現&#xff1a; 瀑布流布局呈現為參差不齊的多欄布局&#xff0c;隨著頁面滾…

數據集介紹與使用 M2DGR、KITTI、EuRoc,評測

SLAM 數據集匯總主頁&#xff1a;https://github.com/qxiaofan/awesome-slam-datasets SLAM 數據 集綜述論文&#xff1a;Simultaneous Localization and Mapping Related Datasets: A Comprehensive Survey 論文地址&#xff1a;https://arxiv.org/abs/2102.04036 M2DGR 簡…

JAVA學習-練習試用Java實現“拼接最大數”

問題&#xff1a; 給定長度分別為 m 和 n 的兩個數組&#xff0c;其元素由 0-9 構成&#xff0c;表示兩個自然數各位上的數字。現在從這兩個數組中選出 k (k < m n) 個數字拼接成一個新的數&#xff0c;要求從同一個數組中取出的數字保持其在原數組中的相對順序。 求滿足該…

iview中checkbox多選框帶實際值和顯示值的寫法

<CheckboxGroup v-model"selectHotworkMeasures"><Checkboxv-for"item in hotworkMeasuresList":key"item.key">{{ item.name }}</Checkbox></CheckboxGroup>selectHotworkMeasures: [],

python操作SQLite3數據庫進行增刪改查

python操作SQLite3數據庫進行增刪改查 1、創建SQLite3數據庫 可以通過Navicat圖形化軟件來創建: 2、創建表 利用Navicat圖形化軟件來創建: 存儲在 SQLite 數據庫中的每個值(或是由數據庫引擎所操作的值)都有一個以下的存儲類型: NULL. 值是空值。 INTEGER. 值是有符…

Python 算法交易實驗76 QTV200日常推進

說明 最近實在太忙&#xff0c; 沒太有空推進這個項目&#xff0c;我想還是盡量抽一點點時間推進具體的工程&#xff0c;然后更多的還是用碎片化的時間從整體上對qtv200進行設計完善。有些結構的問題其實是需要理清的&#xff0c;例如&#xff1a; 1 要先基于原始數據進行描述…

浪潮信息元腦服務器支持英特爾?至強?6能效核處理器 展現強勁性能

如今&#xff0c;服務器作為數字經濟的核心基礎設施&#xff0c;正面臨著前所未有的挑戰和機遇。作為服務器領域的領軍企業&#xff0c;浪潮信息始終站在行業前沿&#xff0c;不斷推陳出新&#xff0c;以滿足客戶日益增長的需求。近日&#xff0c;浪潮信息再次展現技術實力&…

基于GWO-CNN-BiLSTM數據回歸預測(多輸入單輸出)-灰狼優化算法優化CNN-BiLSTM

基于GWO-CNN-BiLSTM數據回歸預測(多輸入單輸出)-灰狼優化算法優化CNN-BiLSTM 1.數據均為Excel數據&#xff0c;直接替換數據就可以運行程序。 2.所有程序都經過驗證&#xff0c;保證程序可以運行。 3.具有良好的編程習慣&#xff0c;程序均包含簡要注釋。 獲取方式 https:/…

Pandas 基礎 —— 探索數據分析的第一步

引言 在數據科學的世界中&#xff0c;Pandas 以其強大的數據處理能力而成為分析工作的核心工具。本文將引導你走進 Pandas 的大門&#xff0c;從基礎概念到數據清洗的實用技巧&#xff0c;為你的數據分析之路打下堅實的基礎。 Pandas 簡介 Pandas 是一個開源的 Python 數據分…

篩選Github上的一些優質項目

每個項目旁都有標簽說明其特點&#xff0c;如今日熱捧、多模態、收入生成、機器人、大型語言模型等。 項目涵蓋了不同的編程語言和領域&#xff0c;包括人工智能、語言模型、網頁數據采集、聊天機器人、語音合成、AI 代理工具集、語音轉錄、大型語言模型、DevOps、本地文件共享…

p2p、分布式,區塊鏈筆記:libp2p通過libp2p_demo::network實現文件傳遞功能

代碼 代碼來自github開源項目file-sharing.rs。主要依賴clap庫進行命令行參數解析&#xff0c;使用async_std進行并行操作&#xff0c;使用libp2p_demo::network中的相關方法進行網絡建立與文件傳輸&#xff0c;但是代碼量卻減少了很多&#xff0c;這是由于libp2p_demo::netwo…