QListWidget中添加QListWidgetItem的几种形式

这篇具有很好参考价值的文章主要介绍了QListWidget中添加QListWidgetItem的几种形式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文介绍QListWidget中添加QListWidgetItem的几种形式:

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 1
    ui->listWidget->addItem(new QListWidgetItem(QIcon(":/new/prefix1/hat.png"), "123"));

    // 2
    addListWidgetItem("123");

    // 3
    custommodel *model = new custommodel(ui->listView);
    ui->listView->setModel(model);

    // 4
    QListWidgetItem *pItem = new QListWidgetItem(ui->listWidget, 0);
    pItem->setSizeHint(QSize(300, 60));
    QSize size = pItem->sizeHint();

    CustomListItemWidget *pCustomListItemWidget = new CustomListItemWidget(ui->listWidget);
    pCustomListItemWidget->setFixedSize(size);
    ui->listWidget->setItemWidget(pItem, pCustomListItemWidget);
}

第一种是直接使用QListWidgetItem,第二种是添加一个widget进去:

void Widget::addListWidgetItem(QString strText)
{
    QListWidgetItem *pItem = new QListWidgetItem(ui->listWidget, 0);
    pItem->setSizeHint(QSize(ui->listWidget->width(), 60));
    QSize size = pItem->sizeHint();

    QWidget *pWidget = new QWidget(ui->listWidget);
    pWidget->setFixedSize(size);

    QLabel *pLabel1 = new QLabel(pWidget);
    pLabel1->setPixmap(QPixmap(":/new/prefix1/hat.png"));
    pLabel1->setScaledContents(true);

    QLabel *pLabel2 = new QLabel(pWidget);
    pLabel2->setText(strText);

    QLabel *pLabel3 = new QLabel(pWidget);
    pLabel3->setText(strText);

    QHBoxLayout *Hboxlayout = new QHBoxLayout(pWidget);
    Hboxlayout->addWidget(pLabel1);
    Hboxlayout->addWidget(pLabel2);
    Hboxlayout->addWidget(pLabel3);

    ui->listWidget->setItemWidget(pItem, pWidget);
}

第三种是使用model

int custommodel::columnCount(const QModelIndex &parent) const
{
    return 1;
}

QVariant custommodel::data(const QModelIndex &index, int role) const
{
	//这里不能直接写return QVariant(QString::fromLocal8Bit("关注微信公众号:高二的笔记"));
	//必须加上判断role == Qt::DisplayRole
    if(role == Qt::DisplayRole)
    {
        return QVariant(QString::fromLocal8Bit("关注微信公众号:高二的笔记"));
    }

    return QVariant();
}

QModelIndex custommodel::index(int row, int column, const QModelIndex &parent) const
{
    return createIndex(row, column);
}

QModelIndex custommodel::parent(const QModelIndex &index) const
{
    return QModelIndex();
}

int custommodel::rowCount(const QModelIndex &parent) const
{
    return 3;
}

//This view does not display horizontal or vertical headers; to display a list of items with a horizontal header, use QTreeView instead.
QVariant custommodel::headerData(int section, Qt::Orientation orientation, int role) const
{
    if(role == Qt::DisplayRole)
    {
     return QVariant("BING");
    }

    return QVariant();
}

第四种实质还是添加widget,不过是使用setItemWidget添加一个自定义的widget
效果图:
qlistwidgetitem,Qt,qt,ui,开发语言,QListWidgetItem

工程源码地址:https://gitee.com/gao-yuelong/qtdemo/tree/master/listwidget文章来源地址https://www.toymoban.com/news/detail-571721.html

到了这里,关于QListWidget中添加QListWidgetItem的几种形式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 电磁波的空间辐射的几种传输形式

    一般来说,波的传播方式与波长有关,如低频段的地波传播,极低频段的地—电离层波导传播,短波段的天波传播,甚高频,超高频的直线传播和散射传播方式等。绕射和透射是电磁波传输特性与环境的关系,属于电波特性范畴。   电磁波根据传播方式分为: 1、 直射波 :

    2024年01月25日
    浏览(44)
  • 10Mbps以太网Ethernet的几种形式分别介绍

    1、10Base-5 (1)以太网的最初形式,数字信号采用曼彻斯特编码; (2)传输介质为直径10mm的粗同轴电缆; (3)电缆最大长度为500m。 2、10Base-2 (1)采用阻抗为50Ω的基带细同轴电缆为传输介质。 (2)数字信号采用曼彻斯特编码。 (3)不使用中继器时电缆的最大长度为18

    2024年02月05日
    浏览(56)
  • 拉普拉斯矩阵的定义,常见的几种形式以及代码实现?

    拉普拉斯矩阵(Laplacian matrix) 也叫做导纳矩阵、基尔霍夫矩阵或离散拉普拉斯算子,主要应用在图论中,作为一个图的矩阵表示。对于图 G=(V,E),其Laplacian 矩阵的定义为 L=D-A,其中 L 是Laplacian 矩阵, D=diag(d)是顶点的度矩阵(对角矩阵),d=rowSum(A),对角线上元素依次为各个顶点

    2023年04月25日
    浏览(49)
  • jQuery之添加节点的几种方式

    目录 一、append() 1、基本使用 2、获取一个dom节点然后通过追加到指定元素里面,相当于把这个元素剪切,然后作为追加指定元素中的最后一个子元素 二、prepend() 三、before() 四、after() 五、appendTo() 1、基本使用 把元素追加到父元素里面,并且是最后一个 2、获取一个dom节点然

    2024年02月09日
    浏览(59)
  • Python脚本添加参数的几种方法

    用python添加参数都是用的input函数,不能添加默认值也不能输入help提示。 最近发现了2个更好用的库分享给大家。 这个使用很简单,就不过多描述了。 实际调用: argparse是python自带库,不用额外安装。 这个库定义参数麻烦,使用起来简单。 在cmd里执行python脚本 输入下面语句

    2024年02月07日
    浏览(47)
  • 把代码添加到git库的几种方式

    把一个新的代码工程提交到git服务器上,有几种情况: 1)先有git库,后添加代码:在服务器上创建一个空仓库,本地拉取下来。创建、编写源文件后,提交代码。 2)已有本地代码,添加到远程代码库:本地已经创开发好代码,在代码目录中init一个本地git库,然后把git远程

    2024年02月08日
    浏览(95)
  • 使用Java将图片添加到Excel的几种方式

    使用POI,依赖如下 Java代码如下,运行该程序它会在桌面创建 ImageLinks.xlsx 文件。 点击它会自动打开浏览器访问设置的超链接 使用POI 下面是java代码 运行代码之后会在桌面生成文件 ExcelWithImage.xlsx 可以看到图片插入到了单元格中 但是尺寸太大了并且占了n行n列,下面设置成占

    2024年01月21日
    浏览(49)
  • Jetpack Compose 中添加 click 事件的几种方法

    Compose 中添加 click 有多总方法,本文做一个简单总结 这是最常见也是最简单的方式,如下所示 当点击发生时,除了可以相应事假处理,也会触发水波纹(Ripple)等主题效果。 需要注意,对于 Button 类的 Composable ,不推荐使用 Modifier.clickable,应该使用其自带的 onClick 参数,虽

    2024年02月13日
    浏览(50)
  • 使用css和js给按钮添加微交互的几种方式

    在现实世界中,当我们轻弹或按下某些东西时,它们会发出咔嗒声,例如电灯开关。有些东西会亮起或发出蜂鸣声,这些响应都是“微交互”,让我们知道我们何时成功完成了某件事。在本文中,我们将学习向网页按钮添加微交互的几种简单方法。 微交互是用户界面上的小交

    2024年02月14日
    浏览(52)
  • PyQT QListWidget 列表项添加、删除与编辑

    PyQT开发图形界面的应用时,QListWidget控件类用于生成列表,可以方便地以可视化方式对列表项进行选择,添加,删除,编辑操作。 如果要处理的数据是2维结构,如2维数组, Pandas DataFrame, 嵌套列表等, 请参考文章:PyQt QTableWidget 表格控件的使用 如果需要可视化处理数据库数

    2024年01月19日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包