如何从 PyQt 中的 QListView 中选择项目

2023-11-26

我是 PyQt 的新手。所以我试图从 QListView 中获取所选项目,我能够获取所选项目的索引,但我无法获取索引的值,请有人帮助我。

这是代码:

import sys
import os

from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 

class asset(QtGui.QDialog):

    def __init__(self,parent=None):
        super(asset, self).__init__(parent)
        self.assetList = QtGui.QListView(self)
        self.assetList.clicked.connect(self.on_treeView_clicked)

        ######################################################################
        # ----------------- ADD ITEMS----------------------------------------
        ######################################################################

        list_data = listDirs('D:\\')
        dir = listModel(list_data)
        self.assetList.setModel(dir)

        self.setStyleSheet('''

                            *{
                            background-color : rgb(65,65,65);
                            color : rgb(210,210,210);
                            alternate-background-color:rgb(55,55,55);
                            }

                            QTreeView,QListView,QLineEdit{
                            background-color : rgb(50,50,50);
                            color : rgb(210,210,210);
                            }

                            '''
                           )
        self.setFocus()

    @QtCore.pyqtSlot(QtCore.QModelIndex)
    def on_treeView_clicked(self, index):
        itms = self.assetList.selectedIndexes()
        for it in itms:
            print 'selected item index found at %s' % it.row()

class listModel(QAbstractListModel): 
    def __init__(self, datain, parent=None, *args): 
        """ datain: a list where each item is a row
        """
        QAbstractListModel.__init__(self, parent, *args) 
        self.listdata = datain

    def rowCount(self, parent=QModelIndex()): 
        return len(self.listdata) 

    def data(self, index, role): 
        if index.isValid() and role == Qt.DisplayRole:
            return QVariant(self.listdata[index.row()])
        else: 
            return QVariant()

def listDirs(*path):
    completePath = os.path.join(*path)
    dirs = os.listdir(os.path.abspath(completePath))
    outputDir = []
    for dir in dirs:
        if os.path.isdir(os.path.join(completePath,dir)):
            outputDir.append(dir)
    return outputDir



if __name__ == "__main__":

    app = QtGui.QApplication(sys.argv)
    app.setStyle('plastique')
    main = asset()
    main.resize(200,200)
    main.show()
    sys.exit(app.exec_())   

Thanks !


您可以使用便捷的方法data of QModelIndex。它返回一个QVariant。只需将其转换为您会使用的东西,例如QString with .toString:

print 'selected item index found at %s with data: %s' % (it.row(), it.data().toString())

顺便一提,QListView.clicked会给你索引。除非您有多项选择,或覆盖默认选择行为,否则它将是唯一选定的项目。你不需要循环selectedIndexes():

@QtCore.pyqtSlot(QtCore.QModelIndex)
def on_treeView_clicked(self, index):
    print 'selected item index found at %s with data: %s' % (index.row(), index.data().toString())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 PyQt 中的 QListView 中选择项目 的相关文章

  • 使用 psycopg2 在 python 中执行查询时出现“编程错误:语法错误位于或附近”

    我正在运行 Python v 2 7 和 psycopg2 v 2 5 我有一个 postgresql 数据库函数 它将 SQL 查询作为文本字段返回 我使用以下代码来调用该函数并从文本字段中提取查询 cur2 execute SELECT
  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • 将数据从 python pandas 数据框导出或写入 MS Access 表

    我正在尝试将数据从 python pandas 数据框导出到现有的 MS Access 表 我想用已更新的数据替换 MS Access 表 在 python 中 我尝试使用 pandas to sql 但收到错误消息 我觉得很奇怪 使用 p
  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • Python - StatsModels、OLS 置信区间

    在 Statsmodels 中 我可以使用以下方法拟合我的模型 import statsmodels api as sm X np array 22000 13400 47600 7400 12000 32000 28000 31000 6
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • Flask如何获取请求的HTTP_ORIGIN

    我想用我自己设置的 Access Control Allow Origin 标头做出响应 而弄清楚请求中的 HTTP ORIGIN 参数在哪里似乎很混乱 我在用着烧瓶 0 10 1 以及HTTP ORIGIN似乎是这个的特点之一object
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 使用其构造函数初始化 OrderedDict 以便保留初始数据的顺序的正确方法?

    初始化有序字典 OD 以使其保留初始数据的顺序的正确方法是什么 from collections import OrderedDict Obviously wrong because regular dict loses order d O
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di

随机推荐

  • Pyomo:从 Python 代码访问解决方案

    我有一个想要求解的线性整数程序 我安装了求解器 glpk 感谢这个答案 和pyomo 我写了这样的代码 from pyomo environ import from pyomo opt import SolverFactory a 370
  • 更改Python循环中的步骤[重复]

    这个问题在这里已经有答案了 在Python 2 7中我想修改a的步骤for根据循环中满足的具体条件进行循环 像这样的东西 step 1 for i in range 1 100 step if step 1 do stuff else st
  • 正则表达式删除 Javascript 中的空格、空行和最后换行符

    好吧 伙计们 我在正则表达式方面遇到了困难 这就是我需要的 获取一个文本文件 删除所有空行以及这些行开头和结尾的空格 要删除的空行还包括文件末尾可能的空行 a n在全文的最后 所以我的脚本是 quotes replace s r n gm
  • 我可以向 Mercurial 命令模板添加自定义颜色吗?

    我想使用定制模板hg log看起来像这样 hg log template node short desc date age by author n color always 默认终端颜色的可读性不太好 所以例如我想将节点设为红色 将 des
  • 在 ASP.Net Core 中发布表单数据时出现 400 状态错误 [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我正在开发一个 ASP Net Core 2 0 应用程序并在 Linux Nginx Kestrel 上运行它 在开发环境 Windows 10 上一切运行顺利 此外 在项目目录中使用
  • 托管和设置自己的闪亮应用程序,无需闪亮服务器

    我正在尝试为我的同事提供闪亮的应用程序 而他们无需运行甚至无需安装 R 所以我读了这个网页并找到了这句话 如果您熟悉网络托管或有权访问 IT 部门 您可以自己托管您的 Shiny 应用程序 在下面 分享为网页 部分 我怎样才能做到这一点 问
  • Try It 演示中的 Google Drive SDK 更新(删除/插入)所有者权限 500 错误

    我正在开发一个应用程序 它应该为 Google Apps 管理员提供重新分配文件所有权的能力 目前我正在使用 Google Drive SDK for NET 和 C 代码 当我在 Google Drive SDK 测试演示中进行身份验证时
  • 如何在 Twig 中使用 sprintf 格式化数字?

    我需要格式化一个数字 在 PHP 中 我会使用sprintf 05d lineNumber 在 Symfony 2 Twig 模板中 我应该使用什么代码 If i之前是 4 然后将其添加到 Twig 模板后 02d format i 它将成
  • 找出 ASP.NET 身份验证票证过期的原因

    我需要帮助弄清楚为什么我的身份验证票证在我的托管网站上大约一个小时后就过期了 但是 如果我在本地运行该站点 身份验证票证将在正确的时间内保持活动状态 这是我的本地主机 web config
  • Steam 市场货币和 XML 格式

    我试图在市场上以某种货币获取商品页面 尝试添加 Accept Language ru RU r n and Accept Language ru RU ru r n and Accept Language ru ru RU q 0 8 r
  • git 清理旧分支

    我想创建一个 git 命令来删除当前分支中包含所有提交的任何分支 例如 git branch groups master git cleanup branches deleted groups all commits are include
  • 删除向量开头和结尾的零

    我有一个像这样的向量 x lt c 0 0 0 0 4 5 0 0 3 2 7 0 0 0 我只想保留位置 5 到 11 的元素 我想删除开头和结尾的零 对于这个向量来说 这很容易 因为它很小 我有非常大的数据 需要所有向量的通用信息 尝试
  • PostgreSQL 忽略时间戳列上的索引

    我创建了下表和索引 CREATE TABLE cdc auth user cdc auth user id bigint NOT NULL DEFAULT nextval cdc auth user id seq regclass cdc
  • 使用键盘快捷键打开浏览器操作的弹出窗口

    我正在开发一个带有浏览器操作弹出窗口的 Google Chrome 扩展程序 当用户单击该图标时 会出现弹出窗口 Is there a way to open this popup with a keyboard shortcut like
  • 如何检查 zip 存档中是否存在文件

    我有 zip 存档 解压后我需要检查 zip 存档中是否存在 moduleConfig xml 我怎样才能做到这一点 我试试这个 zip new ZipArchive if zip gt open test zip TRUE if file
  • 获取 SQL Server 2000 中最后插入的 UNIQUEIDENTIFIER

    The OUTPUT子句与 SQL Server 2005 兼容 但与 SQL Server 2000 不兼容 如何将此命令转换为在 SQL Server 2000 中工作 CREATE TABLE sample ID uniqueiden
  • 线程接收错误参数

    我需要在线程中运行具有给定参数的方法 我注意到当我运行它时 参数错误 对于给出的示例 我有一个数组int output与数字1 7 对于每个数字 我使用以下方法创建一个线程WriteInt i 我希望输出以任意顺序为 1 7 但我始终看到一
  • AWK 输出到 bash 数组

    我试图将一个简单命令的内容放入 bash 数组中 但是遇到了一些麻烦 df h awk print 5 6 给出我的系统上文件系统的使用百分比 输出看起来像这样 1 dev 1 dev shm 1 var run 0 var lock 22
  • ConcurrentDictionary 和 ConcurrentQueue 的这种组合是线程安全的吗?

    我在以下代码中使用 NET 4 中的 ConcurrentDictionary 和 ConcurrentQueue 类 这段代码是线程安全的吗 如果不是 我怎样才能使其线程安全 public class Page public string
  • 如何从 PyQt 中的 QListView 中选择项目

    我是 PyQt 的新手 所以我试图从 QListView 中获取所选项目 我能够获取所选项目的索引 但我无法获取索引的值 请有人帮助我 这是代码 import sys import os from PyQt4 import QtCore Q