QListWidget 小节

news2024/11/20 4:31:58

QListWidget 小节

  • QListWidget 简介
  • 举例
    • UI设计
    • 头文件
    • 源文件


QListWidget 简介

以下是 QListWidget 常用函数的一些说明:

  1. addItem(item):向列表中添加一个项。

  2. addItems(items):向列表中添加多个项。

  3. clear():清空列表中的所有项。

  4. count():返回列表中的项数。

  5. currentItem():返回当前选中的项。

  6. currentRow():返回当前选中项的行索引。

  7. setCurrentRow(row):设置当前选中项的行索引。

  8. setCurrentItem(item):设置当前选中的项。

  9. item(row):返回指定行索引的项。

  10. itemAt(x, y):返回给定坐标处的项。

  11. row(item):返回给定项的行索引。

  12. row(item):返回给定项的行索引。

  13. selectedItems():返回当前选中的所有项。

  14. setSelectionMode(mode):设置选择模式,如 SingleSelection(单选)、MultiSelection(多选)等。

  15. takeItem(row):移除并返回给定行索引处的项。

  16. setSortingEnabled(enabled):启用或禁用排序功能。

  17. sortItems(order):按照指定排序顺序对项进行排序。

  18. setIconSize(size):设置项中图标的尺寸。

  19. setViewMode(mode):设置显示模式,如列表模式或图标模式。

  20. findItems(text, flags):根据指定的文本和标志在列表中查找匹配的项。


以下是 QListWidget 常用的信号:

  1. itemClicked(item):当用户点击列表中的一个项时触发,返回被点击的项。

  2. itemDoubleClicked(item):当用户双击列表中的一个项时触发,返回被双击的项。

  3. itemSelectionChanged():当列表的选中项发生变化时触发,无参数返回。

  4. currentTextChanged(text):当当前选中项的文本发生变化时触发,返回当前选中项的文本。

  5. currentRowChanged(currentRow):当当前选中项的行索引发生变化时触发,返回当前选中项的行索引。

  6. currentColumnChanged(currentColumn):当当前选中项的列索引发生变化时触发,返回当前选中项的列索引。

  7. itemEntered(item):当鼠标光标进入一个项时触发,返回进入的项。

  8. itemPressed(item):当用户按下鼠标在一个项上时触发,返回被按下的项。

  9. itemActivated(item):当用户激活(双击项,按下Enter键)一个项时触发,返回被激活的项。

  10. itemChanged(item):当用户编辑项后,项的内容发生变化时触发,返回发生变化的项。


举例

UI设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

头文件

#ifndef FORM_H
#define FORM_H

#include <QWidget>
#include <QListWidget>
#include <QPushButton>
#include <QVBoxLayout>
#include <QLineEdit>

namespace Ui {
class Form;
}

class Form : public QWidget
{
    Q_OBJECT

public:
    explicit Form(QWidget *parent = nullptr);
    ~Form();

private slots:
    void itemClicked(QListWidgetItem *item);
    void updateItem();

private:
    Ui::Form *ui;

    QListWidget *m_listWidget;
    QLineEdit *m_lineEdit;
    QPushButton *m_PB;

};

#endif // FORM_H

源文件

#include "form.h"
#include "ui_form.h"

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

    // 创建垂直布局
    QVBoxLayout *v_Layout = new QVBoxLayout(this);
    m_listWidget = new QListWidget(this);
    // 添加组件
    v_Layout->addWidget(m_listWidget);

    m_lineEdit = new QLineEdit(this);
    v_Layout->addWidget(m_lineEdit);

    m_PB = new QPushButton("Quit", this);
    v_Layout->addWidget(m_PB);

    // 设置布局
    this->setLayout(v_Layout);

    QStringList cities;
    cities << "BeiJing" << "GuiZhou" << "CPDD";
    foreach(const QString& city, cities) {
        m_listWidget->addItem(city);
    }

    connect(m_listWidget, &QListWidget::itemClicked,this,&Form::itemClicked);
    connect(m_lineEdit, &QLineEdit::editingFinished,this,&Form::updateItem);
    connect(m_PB, SIGNAL(clicked()), qApp, SLOT(quit()));
}


Form::~Form()
{
    delete ui;
}

void Form::itemClicked(QListWidgetItem *item)
{
    // item !=0
    Q_ASSERT(item); // 如果测试为false,则打印包含源代码文件名和行号的警告消息。
    // Q_ASSERT()可用于测试开发过程中的前置和后置条件。如果在编译期间定义了QT_NO_DEBUG,则它将不起任何作用。
    m_lineEdit->setText(item->text());
}

void Form::updateItem()
{
    QListWidgetItem* item = m_listWidget->currentItem();
    if (item) {
        item->setText(m_lineEdit->text());
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755821.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

射线与物质的相互作用

射线与物质的相互作用 射线与物质的相互作用概要 电离——核外层电子克服束缚成为自由电子&#xff0c;原子成为正离子激发——使核外层电子由低能级跃迁到高能级而使原子处于激发状态&#xff0c;退激发光 射线 致电离辐射 慢化 电离损失&#xff1a;带电粒子与靶物质原子…

this指针/闭包及作用域

一.作用域链 1.通过一个例子 let aglobalconsole.log(a);//globalfunction course(){let bjsconsole.log(b);//jssession()function session(){let cthisconsole.log(c);//Windowteacher()//函数提升function teacher(){let dstevenconsole.log(d);//stevenconsole.log(test1,…

【unity之IMGUI实践】单例模式管理数据存储【二】

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

FocusState, SubmitTextField 的使用

1. FocusState 输入文本添加焦点状态 1.1 实现 /// 输入文本焦点状态 struct FocusStateBootcamp: View {// 使用枚举enum OnboardingFields: Hashable{case usernamecase password}//FocusState private var usernameInFocus: BoolState private var username: String "…

两分钟python发个邮件

python简单发个邮件 直接上代码测试 之前spring boot简单发送发送个邮件大约5min&#xff0c;ennn这个python发个邮件两三分钟吧 直接上代码 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMETextclass MailTest(object):def…

Flink 在新能源场站运维的应用

摘要&#xff1a;本文整理自中南电力设计院工程师、注册测绘师姚远&#xff0c;在 Flink Forward Asia 2022 行业案例专场的分享。本篇内容主要分为四个部分&#xff1a; 1. 建设背景 2. 技术架构 3. 应用落地 4. 后续及其他 Tips&#xff1a;点击「阅读原文」免费领取 5000CU*…

Vue localhost 从 http 307 到 https

Vue localhost 从 http 307 到 https HTTP 307 与 HSTS HTTP 307中间人攻击HSTS - HTTP Strict Transport Security 如何解决问题 Vue localhost 从 http 307 到 https 一个 Vue2 项目之前本地都是通过 HTTP 的 localhost 访问(如下) 后来突然无法访问了, 提示的错误内容是 E…

静电接地桩的设计和施工

静电接地桩是用于将静电荷引导到地下的装置&#xff0c;以确保工作环境。以下是一般静电接地桩设计的一些建议和步骤&#xff1a; 1. 选择合适的位置&#xff1a;静电接地桩应该位于静电产生源附近&#xff0c;并接近地面。可以选择在室内或室外&#xff0c;但要确保容易维护和…

web中引入live2d的moc3模型

文章目录 前言下载官方sdk文件使用ide编译项目&#xff08;vsCode&#xff09;项目初始化使用vsCode项目树介绍使用live server运行index页面 演示导入自己的模型并显示modelDir文件resources文件夾案例模型修改modelDir然後重新打包項目運行 前言 先跟着官方sdk调试一遍&…

14.live555mediaserver-play请求与响应

live555工程代码路径 live555工程在我的gitee下&#xff08;doc下有思维导图、drawio图&#xff09;&#xff1a; live555 https://gitee.com/lure_ai/live555/tree/master 章节目录链接 0.前言——章节目录链接与为何要写这个&#xff1f; https://blog.csdn.net/yhb1206/art…

基于C/S架构工作原理序号工作步骤和理论的区别

基于C/S架构工作原理序号工作步骤和理论的区别 SSH 概念 对称加密linux 系统加密&#xff0c;就是加密和揭秘都是使用同一套密钥。 非对称加密有两个密钥&#xff1a;“私钥”和“公钥”。私钥加密后的密文&#xff0c;只能通过对应的公钥进行揭秘。而通过私钥推理出公钥的…

深入解析浏览器Cookie(图文码教学)

深入解析浏览器Cookie 前言一、什么是 Cookie?二、Cookie的特点二、如何创建 Cookie&#xff1f;三、服务器如何获取 Cookie四、Cookie 值的修改4.1 方案一4.2 方案二 五、浏览器查看 Cookie六、Cookie 生命控制七、Cookie 有效路径 Path 的设置八、案例&#xff1a;Cookie 练…

183_Power BI 折线图之平滑线性类型

183_Power BI 折线图之平滑线性类型 一、背景 曾几何时&#xff0c;为了在 Power BI 让折线图显示出平滑曲线&#xff0c;各路大佬是尽显神通。如今时间来到 2023 年 7 月&#xff0c;刚刚更新的 Power BI 已经支持折线图的平滑曲线。让我们来看看最终效果。 同时&#xff0c…

【SpringBoot3】--04.核心原理

文章目录 SpringBoot3-核心原理1.事件和监听器1.1生命周期监听1.1.1 监听器-SpringApplicationRunListener1.1.2生命周期全过程 1.2事件触发时机1.2.1各种回调监听器1.2.2完整触发流程 1.3SpringBoot事件驱动开发 2.自动配置原理2.1入门理解2.1.1自动配置流程2.1.2SPI机制2.1.3…

apache ranger

简介&#xff1a; ranger 是一个用于启用、监控和管理跨hadoop平台的全面的数据安全框架。 ranger的愿景是在hadoop系统中提供全面的安全管理。随着yarn的出现&#xff0c;hadoop 平台能够支持真正的数据糊架构。企业能够在多租户环境中运行多个任务负载。hadoop 数据安全需要…

面向对象编程/原型及原型链

一.面向对象 (1)对象是什么?为什么要面向对象? 通过对代码的抽象,进而描述单个种类物体的方式. (2)特点:面向对象-逻辑上迁移更加灵活,代码的复用性更高,高度的模块化. (3)对象的理解 1.对象是对于单个物体的简单抽象; 2.对象是容器,封装了属性和方法 **属性:对象状态…

Python官方文档中Availability: not Emscripten, not WASI是什么意思?

在我们阅读Python官方文档中&#xff0c;当某个模块或特性的文档中写着 "Availability: not Emscripten, not WASI" 时&#xff0c;它表示该模块或特性在 Emscripten 和 WASI 环境中不可用。 Emscripten 是一个工具链&#xff0c;用于将C和C代码编译为WebAssembly&am…

【Python从入门到进阶】28、xpath的安装以及使用

接上篇《27、Handler处理器使用及代理和Cookie登录实现》 上一篇我们讲解了urllib中Handler处理器的基本使用&#xff0c;以及实现代理访问和Cookie的登录。本篇我们来讲解HTML文档解析中的核心插件xpath的安装及使用。 一、xpath介绍 XPath是由W3C&#xff08;World Wide We…

kotlin中使用Room数据库(包含升降级崩溃处理)

目录 1.导入依赖库 2.数据实体类 3.数据访问对象 (DAO) 4.数据库类 5.调用DAO里面的“增、删、改、查”方法 6.数据库升降级处理 升级&#xff08;保存数据库历史数据&#xff09;&#xff1a; 升级&#xff08;不保存数据库历史数据&#xff09;&#xff1a; 降级&…

剑指 offer 数学算法题:数值的整数次方

题目描述&#xff1a; 实现 pow(x, n) &#xff0c;即计算 x 的 n 次幂函数&#xff08;即&#xff0c;xn&#xff09;。不得使用库函数&#xff0c;同时不需要考虑大数问题。 分析&#xff1a; 直接计算法&#xff0c;通过判断 n 的正负&#xff0c;若为负数&#xff0c; x 即…