【问题标题】:Remove items from QListWidget in PyQt5从 PyQt5 中的 QListWidget 中删除项目
【发布时间】:2018-08-10 14:35:18
【问题描述】:

我正在尝试在 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 中删除项目?

【问题讨论】:

  • 您似乎在使用refreshSamples 作为按钮名称和信号
  • 更新问题@Gianluca

标签: python pyqt pyqt5 desktop-application


【解决方案1】:

使用QListWidget.clear() 和它

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

如果你有更多选择性的方法,你可以使用QListWidget.takeItem( index ),它

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


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多