QT的QListWidget之单击双击增删改详解

2023-11-20

QListWidget是列表框控件,它是通过QListWidgetItem列表项来进行操作,我们的增删改操作也是围绕着它来开展。

需要注意的是:删除操作,需要先断开QListWidget的信号和槽连接,否则会程序崩溃。


void MainWindow::on_listWidget_itemClicked(QListWidgetItem *item)
{
    ui->lineEditList->setText(item->text());//单击操作
}

void MainWindow::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{
    QMessageBox::information(this,tr("双击提示"),"双击操作:"+item->text());
}

void MainWindow::on_BtnAdd_clicked()
{
    if(ui->lineEditList->text().isEmpty())
    {
        QMessageBox::information(this,tr("提示"),tr("请输入一个城市名后再添加"));
        return;
    }
    QListWidgetItem *item =new QListWidgetItem(QIcon(":/icon/image/2.ico"),ui->lineEditList->text());
    ui->listWidget->addItem(item);
}


void MainWindow::on_BtnEdit_clicked()
{
    QListWidgetItem *curitem=ui->listWidget->currentItem();//获取当前列表项
    if(curitem==Q_NULLPTR)
    {
        QMessageBox::information(this,tr("提示"),tr("请在列表里选中一个城市名后再编辑"));
        return;
    }
    if(ui->lineEditList->text().isEmpty())
    {
        QMessageBox::information(this,tr("提示"),tr("请输入一个城市名后再编辑"));
        return;
    }
    curitem->setText(ui->lineEditList->text());
}

void MainWindow::on_BtnDel_clicked()
{
    QListWidgetItem *curitem=ui->listWidget->currentItem();//获取当前列表项
    if(curitem==Q_NULLPTR)
    {
        QMessageBox::information(this,tr("提示"),tr("请在列表里选中一个城市名后再删除"));
        return;
    }
    //QListWidget的删除和清空操作之前,要调用disconnect函数把链接上的信号和槽解除链接,否则程序会崩溃
    ui->listWidget->disconnect();
    int irow=ui->listWidget->row(curitem);//获取该列表项的行号
    QListWidgetItem *item=ui->listWidget->takeItem(irow);//删除该列表项
    delete item;//手工再释放该列表项占用的资源
}

void MainWindow::on_BtnClear_clicked()
{
    //QListWidget的删除和清空操作之前,要调用disconnect函数把链接上的信号和槽解除链接,否则程序会崩溃
    ui->listWidget->disconnect();
    ui->listWidget->clear();//如下两种清空方法
    /*
    while(1)
    {
        QListWidgetItem *item=ui->listWidget->takeItem(0);
        if(item!=Q_NULLPTR)
            delete item;
        else
            break;
    }
    */
}
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT的QListWidget之单击双击增删改详解 的相关文章

  • QGraphicsView 和 eventFilter

    这个问题已经困扰我两天多了 所以我想我应该问一下 我在Win7上使用Qt 4 5 3 用VC2008编译 我有 MyGraphicsView 继承 QGraphicsView 和 MyFilter 继承 QObject 类 当我将 MyFi
  • QSpinBox 输入 NaN 作为有效值

    我正在尝试扩展 QSpinBox 以能够输入 NaN 或 nan 作为有效值 根据文档 我应该使用 textFromValue valueFromText 和 validate 函数来完成此操作 但我无法让它工作 因为它仍然不允许我输入除数
  • QT/QML Android App,点击通知栏时打开应用程序

    我为 Android 应用程序制作了一个 QT 当我单击平板电脑中上面看到的按钮通知栏时 但是 如果单击通知 我的应用程序将打开 聚焦 不知道 并显示黑色窗口 简单来说怎么做呢 我的代码是 package org ays operation
  • Qt中如何获取鼠标在屏幕上的位置?

    我想获取屏幕上的鼠标坐标 我怎样才能在 Qt 中做到这一点 在 Windows 上 使用 C 我正在做类似答案中建议的事情对于这个问题 https stackoverflow com q 11737665 1420197 正如文档所述 QC
  • QtCreator 调试暂停停在代码而不是汇编处

    如何配置 QtCreator 以便在调试并按下暂停时它会显示当前正在处理的代码 现在显示汇编 无法在任何地方找到有关此问题的答案 我使用的是 Windows 7 我在 Ubuntu 16 04 中使用 Qt Creator 4 2 2 时遇
  • Qt 创建者 + MITK (Linux)

    我正在尝试使用MITK 与 Qt Creator 我已经通过 ccmake 成功编译并使用了 VTK 和 ITK 我已经编译了 MITK超级建造模式 它下载 CTK VTK ITK 等 然后我就配置好了 我已经用 make 编译了 大约两个
  • 加权 Voronoi 的 CGAL 2D APOLLONIUS 图 - 如何生成和获取面和顶点?

    我正在尝试根据阿波罗尼乌斯图生成加权沃罗诺伊 我正在使用 CGAL 库 我找不到如何从 apollonius 获取面和顶点的好例子 我有以下类型定义 typedef double NT typedef CGAL Cartesian lt N
  • 错误 LNK2001:无法解析的外部符号 __CxxFrameHandler3

    我正在将 Qt 从 VS 2013 迁移到 Qt 5 10 1 到 VS 2015 出现以下多个链接错误 error LNK2001 unresolved external symbol CxxFrameHandler3 error LNK
  • 重定向 python 交互式帮助()

    我正在为使用 Qt 的应用程序开发交互式 python shell 但是我似乎无法获得重定向的交互式帮助 我的 python 代码中有这个 class OutputCatcher def init self self data def wr
  • 为 Windows 98 编译 Qt

    我需要支持 Windows 98 Qt 文档声称这是可能的 但没有说明 Qt 4 6 的分布式二进制文件不能在 Win98 上运行 而且我采样的大多数 Qt 应用程序也不能在 Win98 上运行 对于几个确实在 98 上运行的应用程序 我询
  • 与 Qt 项目的静态链接

    我有一个在 Visual Studio 2010 Professional 中构建的 Qt 项目 但是 当我运行它 在调试或发布模式下 时 它会要求一些 Qt dll 如果我提供 dll 并将它们放入 System32 中 它就可以工作 但
  • Qt 布局,在小部件大小更改后调整到最小大小

    基本上我有一个QGridLayout里面有一些小部件 最重要的是 2 个标签 我用它们将图像绘制到屏幕上 好吧 如果用户愿意 他可以更改传入图像的分辨率 从而强制标签调整大小 我们假设标签的初始大小是320x240 用户将 VideoMod
  • Qt:如何连接到 SQLite?

    我安装了 SQLite3 解压到 c sqlite 创建了一个数据库 c sqlite mzsales 现在我试图在 QTableView 中显示其内容 QSqlDatabase db QSqlDatabase addDatabase QS
  • QT从QTableWidgetItem继承到Widget并覆盖'<'运算符

    我想要一个QTableWidget具有定制的某些单元QProgressBars 并且我希望能够对包含这些的列进行排序 我的定制QProgressBar继承自两者QProgressBar and QTableWidgetItem 并且我正在覆
  • 无法在带有 QSortFilterProxyModel 的 QTreeView 的点击信号中使用 itemFromIndex

    我有一个 QTreeView 在视图和 QStandardItemModel 之间有一个 QSortFilterProxyModel 来对树进行排序 然后我想通过 clicked 信号对视图中的点击进行操作 模型 视图的设置类似于 mymo
  • Qt 5.6 测试版 Visual Studio 2015

    我已经安装了这个 http download qt io development releases qt 5 6 5 6 0 beta qt opensource windows x86 msvc2015 5 6 0 beta exe mi
  • 如何将 zlib 添加到现有的 qt 安装中

    如何将 zlib 添加到 Qt 的现有安装中 我对此很陌生 所以请给我详细的描述 提前感谢您的帮助 zlib 包含在 Qt 核心库中 如果你想在 Qt 程序中使用 zlib 函数 你只需要包含 src 3rdparty zlib 中的 zl
  • 如何为 Windows 构建静态 Qt 库并将其与 Qt Creator 一起使用

    我已经下载了以下 Qt 源 http download qt nokia com qt source qt everywhere opensource src 4 7 3 zip http download qt nokia com qt
  • Mac 上的 Qt — 如何访问帮助菜单中的“搜索”

    我正在将我的 Qt 应用程序移植到 Mac OS X 在 Windows Linux 上 我使用 QLineEdit 在帮助菜单中提供搜索功能 In Mac OS X I saw something like this is built i
  • Qt GUI 应用程序中的控制台输出?

    我有一个在 Windows 上运行的 Qt GUI 应用程序 它允许传递命令行选项 在某些情况下我想向控制台输出一条消息 然后退出 例如 int main int argc char argv QApplication a argc arg

随机推荐

  • maven的resources介绍

    在开发maven项目时 一般都会把配置文件放到src main resources目录下 针对这个目录 maven的resources对其进行单独的配置 resources配置一般如下
  • reactJS 干货(reactjs 史上最详细的解析干货)

    一 State和 Props state是状态机 应该包括 那些可能被组件的事件处理器改变并触发用户界面更新的数据 譬如需要对用户输入 服务器请求或者时间变化等作出响应 不应该包括 计算所得数据 React组件 在render 里使用pro
  • [echarts]echarts的canvas画布大小与容器大小不一致的解决方案

    div class wrap style width 300px height 300px div style width 100 height 100 div div 场景描述 如上所示布局 我的echarts容器大小设置的宽高都是100
  • 学习java笔记:实现家庭记账

    第一步 采用 Utility工具类 import java util Scanner Utility工具类 将不同的功能封装为方法 就是可以直接通过调用方法使用它的功能 而无需考虑具体的功能的实现 public class Utility
  • centos7-docker安装mysql5.7

    目录 1 docker 拉取mysql5 7镜像 2 创建实例并启动 3 查看容器是否启动成功 4 使用navicat 连接mysql 5 配置mysql 配置文件 6 重启容器 7 进入容器 1 docker 拉取mysql5 7镜像 d
  • 分布式集群管理—认知

    分布式集群管理 认知 分布式系统都是大规模机器的应用 所以需要管理大量的集群与机器 特别是云计算领域 部署管理系统 支持在大规模 多集群上进行分布式系统的部署 冷升级和热升级 进程的配置通过一个专门的配置中心进行推送 集群的配置中心 用于管
  • centos8安装rabbitmq(rpm包)

    1 先下载好rpm包 https pkgs org 1 检索rabbitmq下载对应centos8的版本 rabbitmq server 3 9 14 1 el8 noarch rpm 2 检索erlang下载对应centos8的版本 在官
  • delphi 后台截图

    function PrintWindow SourceWindow hwnd Destination hdc nFlags cardinal bool stdcall external user32 dll name PrintWindow
  • Windows slmgr.vbs 命令详解

    系统软件授权管理工具主要是用来查看系统的激活状态 以及密钥许可证等信息 在现在不在是使用 接参数了 现在 接参数 详解可以在cmd窗口输入slmgr vbs了解 常用参数 使用方式 再次提醒是使用 而不是 ipk 配合密钥使用 安装密钥 替
  • 基于google升级版c++代码规范指南

    有些团队所有成员写的代码都一致 10个人写的代码像1个人写的 正因为有代码规范 使得代码可读性强 方便代码review 利于后期维护 这体现了代码规范的重要性 接下来 在参考google的代码规范基础上 详细列举代码规范细节 1 文件描述
  • matlab 怎么使用function,Matlab怎么调用函数 自定义函数使用方法

    Matlab作为一款专业性极强的商业数学软件 将诸多的算法开发 统计分析 数据可视化功能融入其中 用户可以方便地调用需要的函数 建立数学模型 为了满足你工作的需要 还可以自行设置自己需要的函数 下面就跟小编了解下吧 类别 理科工具 大小 1
  • Unix Network Programming Episode 77

    gethostbyaddr Function The function gethostbyaddr takes a binary IPv4 address and tries to find the hostname correspondi
  • time_wait的快速回收和重用

    问题现象 PC与工控机之间通信 工控机发送SYN PC一直回复FIN或者RST 问题解释 1 time wait产生的原因及作用 下面我们先来简单回顾一下TCP连接关闭动作 在Linux环境下我们可以如下的方式来统计TCP连接的情况 net
  • 高防服务器如何防止网站攻击,高防服务器怎么防御攻击的?

    高防服务器怎么防御攻击的 高防服务器 从字面上来理解就是具备防御性能的服务器 高防服务器相较于普通的服务器除了超高的防御性能以外 在配置上通常也是比较高的 所以在使用上 会更稳定一些 所以深受各类行业站长的喜爱 如今 很多企业在选择租用服务
  • C语言之冒泡排序法

    首先 还是老规矩先上代码 include
  • 数组双指针法汇总

    指针移动方向 相向夹逼 同向移动 维护的是一个区间还是只是关心指针指向的两个元素 同向移动的 维护一个区间的双指针法即滑动窗口法 2Sum 排序后两头往中间夹逼的双指针法 指针为什么可以不回退 即为什么可以i只 j只 当A i A j
  • jvm学习——7.运行时数据区之堆

    一个进程对应一个jvm实例 一个运行时数据区 又包含多个线程 这些线程共享了方法区和堆 每个线程包含了程序计数器 本地方法栈和虚拟机栈 66 核心概述 1 一个jvm实例只存在一个堆内存 堆也是java内存管理的核心区域 2 Java堆区在
  • kuboard获取token命令

    输入命令查看 echo kubectl n kube system get secret kubectl n kube system get secret grep kuboard user awk print 1 o go templat
  • u8系统怎么连接服务器,u8客户端连接服务器流程

    u8客户端连接服务器流程 内容精选 换一换 请点击下载 下载并安装桌面版客户端 您已经从企业的会议管理员那儿获取用户帐号了吗 快使用用户帐号登录客户端 开启会议之旅 桌面客户端定位基于电脑使用 在会议室中不支持接入鹅颈麦克风 音箱等外设使用
  • QT的QListWidget之单击双击增删改详解

    QListWidget是列表框控件 它是通过QListWidgetItem列表项来进行操作 我们的增删改操作也是围绕着它来开展 需要注意的是 删除操作 需要先断开QListWidget的信号和槽连接 否则会程序崩溃 void MainWin