PyQt5 中 QListWidget 怎么获取 item 中 combox 的当前显示的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyQt5 中 QListWidget 怎么获取 item 中 combox 的当前显示的值相关的知识,希望对你有一定的参考价值。

参考技术A 以下方法实现PyQt5 中 QListWidget 获取 item 中 combox 的当前显示的值:
(1)在Visual Studio中新建一个“Windows 窗体应用程序”项目
(2)在项目中添加一个类MyItem。这个类有两个用途:
在ComboBox中显示
用于检索被选中项的值
MyItem.cs代码
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)窗体代码 Form1.cs
using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace WindowsFormsApplication1

public partial class Form1 : Form

public Form1()

InitializeComponent();


private void Form1_Load(object sender, EventArgs e)

// 清空lable1
label1.Text = string.Empty;

// 列表集合将作为comboBox1的数据源
List<MyItem> list = new List<MyItem>();
list.Add(new MyItem("张三", 10));
list.Add(new MyItem("李四", 20));
list.Add(new MyItem("王五", 30));

// 绑定
comboBox1.DataSource = list;

// 在comboBox1中显示MyItem的Name属性
comboBox1.DisplayMember = "Name";


// 获取被选中项的Value值
private void comboBox1_SelectedIndexChanged(
object sender,
EventArgs e)

// 将被选中的项目强制转换为MyItem
MyItem item = comboBox1.SelectedItem as MyItem;
// 显示被选中项的值
label1.Text = string.Format("Value = 0", item.Value);



(5)运行,程序启动后,改变comboBox1选择本回答被提问者采纳

从PyQt5中的QListWidget中删除项目

我想在pyqt5中创建一个刷新按钮。我正在构建一个桌面应用程序。我编写了扫描特定文件夹的代码,并将文件名及其路径保存为数组。

数组值作为项添加到QListWidget

self.sampleChoose_list.addItems(sample_directory[0])

我正在尝试创建一个刷新数组值的函数并将其传递给QListWidget。

像这样的东西

self.refreshSamples.clicked.connect(self.refreshSample)

def refreshSample(self): 
    sample_directory = []
    sample_files = []
    for (dirpath, dirnames, filenames) in walk('./Samples'):
        filenames = [f for f in filenames if not f[0] == '.']
        sample_files.extend(filenames)
        break
    the_dir = "Samples"
    paths = [os.path.abspath(os.path.join(the_dir,filename)) for filename in os.listdir(the_dir) if not filename.startswith('.')]    

    sample_directory.append(sample_files)
    sample_directory.append(paths)

    self.sampleChoose_list.addItems(sample_directory[0])

我遇到的问题是:当我按下刷新按钮时,会添加新项目,但不会删除旧项目。如何从QListWidget中删除项目?

答案

使用QListWidget.clear()和它

删除视图中的所有项目和选择。

对于更具选择性的方法,你可以使用QListWidget.takeItem( index ),它

从列表小部件中的给定行中删除并返回该项


Official Docs: clear() Official Docs: takeItem()

以上是关于PyQt5 中 QListWidget 怎么获取 item 中 combox 的当前显示的值的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5:当列表失去焦点时设置 QListWidget 选择颜色

如何在 PyQt5 中返回 QlistWidget 中项目的值

PyQt5 QListWidget自定义项目[重复]

如何在pyqt5 QlistWidget中选择当前项目

从PyQt5中的QListWidget中删除项目

如何在pyqt5 QlistWidget中选择多个项目并打印它们[重复]