QT如何实现自定义下拉列表

QT如何实现自定义下拉列表,第1张

创建一个QListWidget的对象listWidget

设置QComboBox的Model和View, 即使用setModel(listWidgetmodel())和setView(listWIdget)

自定义一个下拉项ItemWidget, 把你项目需要的下拉项设计出来

把自定义的下拉项ItemWidget加到listWidget中, 即使用setItemWidget();

刚好我写了一个,因为我自己需要用到呵不过老实说,listview有选中的效果,那个应该 就能满足你的要求:

Option Explicit

Private WithEvents bc As PictureBox

Private Sub Command1_Click()

Call SetLineBackColor(ListView1, 3, &HE0E0E0)

End Sub

Public Sub SetLineBackColor(Lv As ListView, LvLineCount As Long, LVBC As Long)'分别是listview的名称,第几行,背景色

LvParentScaleMode = vbTwips

If bc Is Nothing Then

Set bc = ControlsAdd("VBPictureBox", "picbg")

End If

With bc

Visible = True

BackColor = LvBackColor

ScaleMode = vbTwips

BorderStyle = vbBSNone

AutoRedraw = True

Visible = False

Width = LvWidth

Height = LvListItems(1)Height (LvLineCount + 1)

ScaleHeight = LvLineCount + 1

ScaleWidth = 1

DrawWidth = 1

End With

bcLine (0, LvLineCount - 1)-(1, LvLineCount), LVBC, BF

LvPicture = bcImage

End Sub

以下方法实现PyQt5 中 QListWidget 获取 item 中 combox 的当前显示的值:

(1)在Visual Studio中新建一个“Windows 窗体应用程序”项目

(2)在项目中添加一个类MyItem。这个类有两个用途:

在ComboBox中显示

用于检索被选中项的值

MyItemcs代码

namespace WindowsFormsApplication1

{

class MyItem

{

public MyItem(string name, int value)

{

Name = name;

Value = value;

}

public string Name { get; private set; }

public int Value { get; private set; }

}

}

(3)在Form1上布置一个ComboBox、一个Label

(4)窗体代码 Form1cs

using System;

using SystemCollectionsGeneric;

using SystemWindowsForms;

namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

// 清空lable1

label1Text = stringEmpty;

// 列表集合将作为comboBox1的数据源

List<MyItem> list = new List<MyItem>();

listAdd(new MyItem("张三", 10));

listAdd(new MyItem("李四", 20));

listAdd(new MyItem("王五", 30));

// 绑定

comboBox1DataSource = list;

// 在comboBox1中显示MyItem的Name属性

comboBox1DisplayMember = "Name";

}

// 获取被选中项的Value值

private void comboBox1_SelectedIndexChanged(

object sender,

EventArgs e)

{

// 将被选中的项目强制转换为MyItem

MyItem item = comboBox1SelectedItem as MyItem;

// 显示被选中项的值

label1Text = stringFormat("Value = {0}", itemValue);

}

}

}

(5)运行,程序启动后,改变comboBox1选择

热门频道

首页

博客

研修院

VIP

APP

问答

下载

社区

推荐频道

活动

招聘

专题

打开CSDN APP

Copyright © 1999-2020, CSDNNET, All Rights Reserved

打开APP

C/C++ Qt ListWidget 列表框组件应用 原创

2022-11-03 20:01:34

十年编程老舅

码龄143天

关注

ListWidget列表框组件,该组件与TreeWidget有些相似,区别在于TreeWidget可以实现嵌套以及多字段结构,而ListWidget组件则只能实现单字段结构,ListWidget组件常用于显示单条记录,例如只显示IP地址,用户名等数据,如下笔记是本人在开发中经常用到的一些基本 *** 作技巧,包括列表框组件的基本 *** 作方法。

常用节点间的 *** 作方法如下:

ListView 组件与应用基础

ListWidget 初始化

ListWidget 变化行(触发事件)

ListWidget 编辑状态设置

ListWidget 全选/全不选

ListWidget 反选(对错交织)

ListWidget 指定位置插入 / 增加一项

ListWidget 删除选中项

ListView 组件与应用基础: 该组件与ListWidget功能一致,只是ListView无法实现编辑只能预览。

QT技术文推荐:Qt开发必备技术栈学习路线和资料

代码运行效果如下:

上方代码中我们多数都是在使用View视图组件,接下来将具体分析Widget组件的使用细节,View组件与Widget组件看似一致,但却存在本质区别,其大致区别如下:

Widget 组件可以直接通过如AddItem等一系列函数 *** 作特定数据集,该组件还具有直接编辑的能力。

View 组件是基于Model模型映射工作的,每次 *** 作数据时都需要借助QAbstractListModel数据模型来 *** 作。

简单来说View组件适合于浏览展示数据较多的场景,因为其绑定了链表结构从而在数据的展示上更为灵活,而Widget组件更适合于更新或修改数据较多的使用场景。

ListWidget 节点初始化: 节点的初始化就是向widget组件内插入一个QListWidgetItem类。

代码运行效果如下:

ListWidget 行内文本变化: 当我们点击行内任意一个列表选项时,我们让其触发currentItemChanged并将变化行更新到窗体上。

代码运行效果如下:

ListWidget 编辑状态设置: 默认情况下ListWidget组件内所有文件是不可编辑的,我们也可以将编辑属性打开。

代码运行效果如下:

QT技术文推荐:Qt开发必备技术栈学习路线和资料

ListWidget 全选/全不选: 全选顾名思义就是选中菜单中的所有数据,使用aItem->setCheckState(Qt::Checked)实现选中,通过循环计数即可。

代码运行效果如下:

ListWidget 反选功能: 反选的含义是,用户选中菜单反选后会变为未选中状态,未选中则变为选中,只需要增加一个判断即可实现。

代码运行效果如下:

ListWidget 指定位置插入/追加插入: 在选中行的上方插入一行新的表项,以及追加到末尾一行。

代码运行效果如下:

ListWidget 删除选中项: 删除当前选中的一项,并清理释放内存。

代码运行效果如下:

文章知识点与官方知识档案匹配

C技能树首页概览

115836 人正在系统学习中

打开CSDN APP,看更多技术内容

listview listwidget

qt

c++

写评论

评论

收藏

点赞

分享

以上就是关于QT如何实现自定义下拉列表全部的内容,包括:QT如何实现自定义下拉列表、急求,请教大牛,在qt中怎么向listview里面添加内容,怎么用代码实现、pyqt4 怎么获取tablewidget中comboBox控件的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10085313.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存