(十三)QListWidget、QListWidgetItem、堆栈窗体QStackedWidget

PyQt5——QListWidget(列表控件) QListWidget列表控件,类似于QListView列表视图。支持鼠标拖放、复制、双击等操作。可以在列表中添加/删除条目,列表中的每个条目都是一个QListWidgetItem 对象。 阅读详情

先看一篇博客:

QListWidget和QListWidgetItem的简单使用

转自: http://blog.youkuaiyun.com/fjb2080/article/details/4922490

QListWidget可以显示一个清单,清单中的每个项目是QListWidgetItem的一个实例,每个项目可以通过QListWidgetItem来操作。可以通过QListWidgetItem来设置每个项目的图像与文字。下面说明3个例子,一个例子只显示文字,一个例子显示文字和图标,最后一个例子增加每个项的选择的信号。


例子1:

#include <QApplication>  
#include <QWidget>  
#include <QVBoxLayout>  
#include <QListWidget>  
#include <QListWidgetItem>  
int main(int argc, char** argv)  
{  
    QApplication app(argc, argv);  
    QWidget* widget = new QWidget;  
    QListWidget* listWidget = new QListWidget;  
    QVBoxLayout* layout = new QVBoxLayout;  
    QListWidgetItem* lst1 = new QListWidgetItem("data", listWidget);  
    QListWidgetItem* lst2 = new QListWidgetItem("decision", listWidget);  
    QListWidgetItem* lst3 = new QListWidgetItem("document", listWidget);  
    QListWidgetItem* lst4 = new QListWidgetItem("process", listWidget);  
    QListWidgetItem* lst5 = new QListWidgetItem("printer", listWidget);  
    listWidget->insertItem(1, lst1);  
    listWidget->insertItem(2, lst2);  
    listWidget->insertItem(3, lst3);  
    listWidget->insertItem(4, lst4);  
    listWidget->insertItem(5, lst5);  
    listWidget->show();  
    layout->addWidget(listWidget);  
    widget->setLayout(layout);  
    widget->show();  
    app.exec();  
      
} 

运行如下图:

 

 

 

 

第2个例子:

#include <QApplication>  
#include <QWidget>  
#include <QVBoxLayout>  
#include <QListWidget>  
#include <QListWidgetItem>  
int main(int argc, char** argv)  
{  
    QApplication app(argc, argv);  
    QWidget* widget = new QWidget;  
    QListWidget* listWidget = new QListWidget;  
    QVBoxLayout* layout = new QVBoxLayout;  
    QListWidgetItem* lst1 = new QListWidgetItem(QIcon("images/data.png"), "data", listWidget);  
    QListWidgetItem* lst2 = new QListWidgetItem(QIcon("images/decision.png"), "decision", listWidget);  
    QListWidgetItem* lst3 = new QListWidgetItem(QIcon("images/document.png"), "document", listWidget);  
    QListWidgetItem* lst4 = new QListWidgetItem(QIcon("images/process.png"), "process", listWidget);  
    QListWidgetItem* lst5 = new QListWidgetItem(QIcon("images/printer.png"), "printer", listWidget);  
    listWidget->insertItem(1, lst1);  
    listWidget->insertItem(2, lst2);  
    listWidget->insertItem(3, lst3);  
    listWidget->insertItem(4, lst4);  
    listWidget->insertItem(5, lst5);  
    listWidget->show();  
    layout->addWidget(listWidget);  
    widget->setLayout(layout);  
    widget->show();  
    app.exec();  
      
}  

运行如下图:

 

 

 

第3个例子:

#include <QApplication>  
#include <QWidget>  
#include <QHBoxLayout>  
#include <QListWidget>  
#include <QListWidgetItem>  
#include <QLabel>  
int main(int argc, char** argv)  
{  
    QApplication app(argc, argv);  
    QWidget* widget = new QWidget;  
    QListWidget* listWidget = new QListWidget;  
    QHBoxLayout* layout = new QHBoxLayout;  
    QLabel* label = new QLabel;  
    label->setFixedWidth(100);  
    QListWidgetItem* lst1 = new QListWidgetItem(QIcon("images/data.png"), "data", listWidget);  
    QListWidgetItem* lst2 = new QListWidgetItem(QIcon("images/decision.png"), "decision", listWidget);  
    QListWidgetItem* lst3 = new QListWidgetItem(QIcon("images/document.png"), "document", listWidget);  
    QListWidgetItem* lst4 = new QListWidgetItem(QIcon("images/process.png"), "process", listWidget);  
    QListWidgetItem* lst5 = new QListWidgetItem(QIcon("images/printer.png"), "printer", listWidget);  
    listWidget->insertItem(1, lst1);  
    listWidget->insertItem(2, lst2);  
    listWidget->insertItem(3, lst3);  
    listWidget->insertItem(4, lst4);  
    listWidget->insertItem(5, lst5);  
    QObject::connect(listWidget, SIGNAL(currentTextChanged(const QString &)), label, SLOT(setText(const QString &)));  
    listWidget->show();  
    layout->addWidget(listWidget);  
    layout->addWidget(label);  
    widget->setLayout(layout);  
    widget->show();  
    app.exec();  
      
}  

运行如下图:

 




Qt使用QStackedWidget实现堆栈窗口

转自: http://www.cnblogs.com/584709796-qq-com/p/4968880.html

堆栈窗口可以根据选择项的不同显示不同的窗体

 

// stackeddlg.h  
#ifndef STACKEDDLG_H  
#define STACKEDDLG_H  
  
#include <QDialog>  
#include <QLabel>  
#include <QListWidget>  
#include <QStackedWidget>  
  
class StackedDlg : public QDialog  
{  
    Q_OBJECT  
public:  
    explicit StackedDlg(QWidget *parent = 0);  
signals:  
public slots:  
  
private:  
    QLabel *textLabel;  
    QLabel *showLabel;  
    QLabel *aboutLabel;  
    QListWidget *list;  
    QStackedWidget *stack;  
};  
#endif // STACKEDDLG_H  

//stackeddlg.cpp  
#include "stackeddlg.h"  
#include <QHBoxLayout>  
  
StackedDlg::StackedDlg(QWidget *parent) :  
    QDialog(parent)  
{  
    //创建一个QListWidget控件 并向其中添加列表项  
    list = new QListWidget();  
    list->insertItem(0, tr("文本窗口"));  
    list->insertItem(1, tr("显示窗口"));  
    list->insertItem(2, tr("关于窗口"));  
      
    textLabel = new QLabel(tr("学习使用堆栈窗口"));  
    showLabel = new QLabel(tr("仅仅是一个示例程序"));  
    aboutLabel = new QLabel(tr("欢迎交流,共同学习"));  
      
    //创建QStackedwidget控件  
    stack = new QStackedWidget();  
    //将控件添加到堆栈窗口中  
    stack->addWidget(textLabel);  
    stack->addWidget(showLabel);  
    stack->addWidget(aboutLabel);  
      
    //使用一个水平布局管理器对对话框进行布局  
    QHBoxLayout *mainLayout = new QHBoxLayout(this);  
    mainLayout->addWidget(list);  
    mainLayout->addWidget(stack, 0, Qt::AlignHCenter);  
    //设置mainLayout的边框与对话框边缘的距离  
    mainLayout->setMargin(5);  
    mainLayout->setSpacing(5);  
    //信号与槽的连接,实现按选择显示窗体  
    //此处堆栈窗口的index按插入的顺序从0依次排序,与QListWidget的条目排序一致  
    connect(list, SIGNAL(currentRowChanged(int)), stack, SLOT(setCurrentIndex(int)));  
      
    this->setWindowTitle(tr("堆栈窗口"));  
}  

//main.cpp  
#include <QApplication>  
#include <QTextCodec>  
#include "stackeddlg.h"  
int main(int argc, char *argv[])  
{  
    QTextCodec::setCodecForTr(QTextCodec::codecForLocale());  
    QApplication app(argc, argv);  
    StackedDlg dlg;  
    dlg.show();  
    return app.exec();  
}  







Qt入门教程【高级控件篇】QListWidget列表小部件 QListWidget列表小部件 阅读详情

相关推荐

three.js中如何高效加载并播放GLB格式的3D动画

本文详细介绍了在three.js中高效加载并播放GLB格式3D动画的最佳实践。通过对比GLB与GLTF格式的优势,提供从环境搭建、模型加载到动画控制的完整解决方案,并分享性能优化技巧和常见问题排查方法,帮助开发者提升3D动画项目的开发效率和用户体验。

weixin_27890975的博客 362

[QT_007]Qt学习之QListWidget控件详解

QListWidget控件详解

kongcheng253的博客 1万+

最优控制理论 二+、哈密尔顿函数法的补充

本章基于变分法所推出的哈密尔顿函数法,2、讨论了积分方程约束的转化、控制+状态等式约束的一阶必要条件。3、控制分段连续、状态存在内点约束等情况下的角点条件,给出了协态变量和哈密尔顿函数在内点处不连续的表达式。...

MSysの优快云 9394

2024年物联网嵌入式最全Qt QListWidget列表框用法详解(1),2024年最新字节跳动+阿里+华为+小米等10家大厂面试真题

已剪辑自: http://c.biancheng.net/view/vip_9656.html很多应用程序中需要以列表的形式向用户展示数据(资源),比如 Windows 操作系统会以列表的方式展示很多张桌面背景图(如图 1a) 所示),再比如很多音乐播放器中以列表的形式展示音乐资源,用户可以选择自己喜欢的音乐(如图 1b) 所示)。

2401_85015025的博客 437

GB/T 27930-2023协议升级与CANoe仿真测试实践

本文深入解析GB/T 27930-2023协议的核心升级,包括A/B类系统分类与EVIN码引入,并详细指导如何使用CANoe搭建仿真测试环境、编写CAPL脚本及利用DLL库进行一致性验证与故障注入测试,助力开发人员确保电动汽车充电通信的合规性与稳定性。

y7z8a的博客 540

ADES1831和ADBMS6830

1、上电默认进入STANDBY模式,SPI发送0xFF也可以进入STANDBY模式2、看门狗定时器超时后,进入SLEEP状态3、配置寄存器中的REFON位使用WRCFGA命令将组A设置为1进入REFUP状态,此状态比待机状态更快地启动ADC转换。i<TOTAL_IC;i++)注意:读AFE数据时会随着AFE片数增加而增加,原因是唤醒时间和AFE片数密切相关,如果需要缩短时间,那么减少唤醒频次。

m0_61973119的博客 266

QListWidget和QStackedWidget

QListWidget和QStackedWidget的简单使用,模仿QQ设置     layout1.pro [cpp] view plaincopy SOURCES += layout1.cpp /       main.cpp /       widget1.cpp /

小青年儿 4790

别再用Selenium被秒封了!2026最新反爬全突破+动态渲染实战(通过率99%)

做爬虫的同学,肯定都有过这样的经历:遇到一个纯前端渲染的网站,Requests抓包只能拿到一堆空的div标签,所有数据都是JS动态生成的。这时候你想到了Selenium,结果刚打开浏览器,网站直接跳出来一个"检测到机器人访问"的页面,或者直接返回403。我之前做一个跨境电商的爬虫项目,就踩了这个大坑。一开始用默认的Selenium ChromeDriver,10次请求有9次被封,通过率不到10%。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1385

Qt使用QStackedWidget实现堆栈窗口

堆栈窗口可以根据选择项的不同显示不同的窗体 // stackeddlg.h #ifndef STACKEDDLG_H #define STACKEDDLG_H #include &lt;QDialog&gt; #include &lt;QLabel&gt; #include &lt;QListWidget&gt; #include &lt;QStackedWidg...

mmdev 334

odom反算成经纬度

这个转换系统能够将局部坐标(相对于原点的X, Y, Z坐标)转换回全球坐标系统。将局部里程计数据反算成经纬度坐标的过程涉及几个关键步骤,主要是将相对于某个局部参考点的坐标(例如在机器人、无人车或无人机的导航系统中使用的坐标)转换回全球GPS坐标系统(WGS-84经纬度)。为了能够将局部里程计数据转换为经纬度,首先需要知道局部坐标系统的原点(即参考点)在全球坐标系统中的位置。对于从里程计获得的每个局部坐标点,使用步骤2中设置的坐标转换系统将其转换为经纬度。使用转换模型将局部坐标转换为全球坐标。

如果想成为中心,那么就到中心去吧。 650

MVSNet (pytorch版) 搭建环境 运行dtu数据集重建 实操教程(图文并茂、超详细)

MVSNet (pytorch版) 代码注释版 下载 (注释非常详细,代码结构有所调整,使用起来更方便) 深度学习三维重建 MVSNet-ECCV-2018 (源码、pytorch版、原文+注释、译文+批注)Meshlab查看三维点云时 ,使用技巧总结。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 2938

Qt学习——堆栈窗体QStackedWidget类

这些窗体都比较类似,相对简单,就没什么可以深入研究的了。 下面用代码实现上面窗口的设计: 1.建立项目时基类选择QDialog,取消Gernerate form复选框的选中状态。 2.在头文件dialog.h中编写如下代码: #include #include #include #include class Dialog : public QDi

liming's blog 6万+

【YOLOv12改进trick】高效多尺度卷积注意力EMCAD_Block模块引入YOLOv12,实现涨点和效率提升,含创新点Python代码

EMCAD引入YOLOv12模块,实现高效多尺度注意力模块引入到YOLOv12中的快速涨点及效率提升

向上生长的程序媛的博客 852

qt的两个类学习:QStackedWidget和QListWidget

以下源码来自“QT小神童”视频(有微小变更) 头文件:config.h #ifndef CONFIG_H #define CONFIG_H #include #include #include #include #include #include #include #include #include class config : public QWidg

yongan1006的专栏 7087

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【Qt学习】多元素控件:QListWidget、QTableWidget 的介绍与使用

是 Qt 框架中用于显示列表项的控件,它支持显示文本、图标等信息,并且可以允许用户通过交互选择其中的项。有以下核心函数(方法)函数描述addItem在列表中添加新的数据项insertItem在指定位置插入新的数据项takeItem从列表中移除指定的数据项并返回该数据项clear清空列表中所有的数据项sortItems根据指定的方式对列表中的数据项进行排序滚动列表以确保指定的数据项可见设置列表中的选择模式,可以为单选、多选等设置列表中的拖放功能是否启用。

卜及中的博客 5115

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Qt6之QListWidget——Qt仿ToDesk侧边栏(1)

QListWidget也称列表框类,它提供了一个类似于提供的列表视图,但是它具有一个用于添加和删除项的经典的基于项的接口。在实际应用中,多与堆栈窗体类配合使用。它是Qt这些常用基础组件里,我认为最被低估的类,其实QListWidget反到灵活、简单、实用,包括我自己在侧栏或者上栏,也经常使用了QFrame+QPushButton或者QToolButton组合拼接起来自己“造轮子”,如下图卡巴和微信的侧栏列表框样式以及。

yanchenyu365的博客 3651

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

QT QListWidget 的个人理解及应用

QT QStackedWidget 个人理解QT QStackedWidget 个人理解 QT QStackedWidget 个人理解 QT QStackedWidget 个人理解

zjjlrf1991的博客 809

QListWidget+QStackedWidget

【代码】QListWidget+QStackedWidget。

m0_62407354的博客 249

Qt_day03

Qt常用控件详细笔记

qq_53839898的博客 658

QT——基于 QListWidget 和 QStackedWidget 的页面切换

Qt 练习题:基于 QListWidget 和 QStackedWidget 的页面切换题目描述:请使用 Qt 设计一个窗口,其中包含一个 QListWidget 和一个 QStackedWidget。要求实现以下功能:当用户双击 QListWidget 中的某一项时,QStackedWidget 切换到对应的页面(索引相同)。当 QStackedWidget 页面发生切换时,在控制台输出当前页面的索引值。

weixin_56261190的博客 655

模型视图简介、QListWidget、QTreeWidget、QTableWidget、QStringListModel、QFileSystemModel

一、模型视图简介     有时,我们的系统需要显示大量数据,比如从数据库中读取数据,以自己的方式显示在自己的应用程序的界面中。早期的 Qt 要实现这个功能,需要定义一个组件,在这个组件中保存一个数据对象,比如一个列表。我们对这个列表进行查找、插入等的操作,或者把修改的地方写回,然后刷新组件进行显示。这个思路很简单,也很清晰,但是对于大型程序,这种设计就显得苍白无力。比如,在一个大型系统中,你的数

青萍之末的博客 1659

Qt之QListWidget实战

介绍 QListWidget是一个与QListView类似的列表视图类。 作为Qt常用的视图类,它提供了很多简便的函数,方便对列表中的项进行展示和操作。 当项大于窗口高度时,会自动弹出滑动条。 以下是QListWidget的添加项、删除项、清空列表、 重命名,右键菜单弹出,双击事件等功能。 重命名效果 所有代码 头文件 #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QListWidget&gt

c_shell_python的博客 2614

QListView切换条目的方法(模拟点击)

事先创建listview并且添加了model。如果想跳转到某一条目(相当于模拟点击),怎么办呢?当然用  void QAbstractItemView::setCurrentIndex(const QModelIndex &amp;index)+clicked(const QModelIndex &amp;index) 这个两个函数。 重点是如何取index 就要用到这个虚函数QModel...

PepperEggFriedRice的博客 2278

qt listwidget tab之间互相跳转时崩溃的一个原因

listwidget从tab_2跳转至tab_1时,若函数中使用到currentitem时需要给listwidget设置currentitem的位置,因为跳转过来时currentitem时是空的,在函数中使用currentitem时就会奔溃;解决:(update_chatwidget中使用了currentitem) ui-&gt;tabWidget-&gt;setCu...

李玉峰的博客 1124

qt listwidget 默认选中行

需求:模拟进入软件鼠标点击listwidget 正常按钮是直接pushbutton->clicked() 就可以了 但对于listwidget需要设置当前行,获取当前索引才可以 ui->listWidget->setCurrentRow(0); QModelIndex test = ui->listWidget->currentIndex(); qDebug() << "test" << test; ui->lis

绑个蝴蝶结的博客 3061

Qt分页布局与切分窗口的实现

一、如何实现分页展示? QStackedLayout类可对窗口实现分页展示,每次只显示一个布局,将其他页的布局隐藏。为方便,Qt提供一个内置QStackedLayout的便利类:QStackedWidget. 方案:QStackedWidget+QListWidget/QPushButton等 步骤:(1)基于QDialog或QWidget创建一个新窗体     (2)添加一个QListW

Ctrlturtle的博客 1万+
上一篇: (十二)分割窗口
下一篇: (十四)应用程序中的主窗口
早起的虫儿灬
博客等级 码龄10年 54粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值