创建一个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控件的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)