如何检索 QTableView 的选定行?

2024-04-02

我正在使用QTableView具有该模型的类:

class PaletteTableModel(QtCore.QAbstractTableModel):
    def __init__(self,colors = [[]],headers =[],parent=None):
        QtCore.QAbstractTableModel.__init__(self, parent)
        self.__colors=colors
        self._headers=headers

    def rowCount(self,parent): 
        return len(self.__colors)
    
    def columnCount(self,parent):
        return 6        
    
    def headerData(self,section,orientation,role):
        if role==QtCore.Qt.DisplayRole:
            if orientation==QtCore.Qt.Horizontal:
                return self._headers[section]  
            else:
                return QtCore.QString("Credit %1").arg(section+1) 
            
    def data(self,index,role):
        if role==QtCore.Qt.ToolTipRole:
            row=index.row
            return "Crédit"
        if role==QtCore.Qt.EditRole:
            row=index.row()
            column=index.column()
            return self.__colors[row][column]
        if role==QtCore.Qt.DisplayRole:
            row=index.row()
            column=index.column()
            value=self.__colors[row][column]
            return value  

    def setData(self,index,value,role=QtCore.Qt.EditRole):
        if role==QtCore.Qt.EditRole:
            row =index.row()
            column=index.column()
            ch=(value)
            
            self.__colors[row][column]=ch
            self.dataChanged.emit(index,index)
            return True
                
    def flags(self, index):
        return QtCore.Qt.ItemIsEnabled|QtCore.Qt.ItemIsEditable|QtCore.Qt.ItemIsSelectable

我想检索此表视图的选定行。 (如果可能的话,我想要Python代码)。


这取决于“所选行”的含义。默认情况下,一个QTableView有它的选择方式 http://qt-project.org/doc/qt-4.8/qabstractitemview.html#selectionMode-prop set to ExtendedSelection,及其选择行为 http://qt-project.org/doc/qt-4.8/qabstractitemview.html#selectionBehavior-prop set to SelectItems。这意味着可以同时选择不同行和列中的多个单独的表格单元格。那么哪一行应该算作“选定的”行呢?

The 选择模型 http://qt-project.org/doc/qt-4.8/qabstractitemview.html#selectionModel表视图的有一个选定的行 http://qt-project.org/doc/qt-4.8/qitemselectionmodel.html#selectedRows方法将返回行的索引列表,其中所有列被选中(即当您单击一行的标题部分时):

    indexes = table.selectionModel().selectedRows()
    for index in sorted(indexes):
        print('Row %d is selected' % index.row())

但是,如果您想获取所有行最后一个选择单元格后,您可以使用选定的索引 http://qt-project.org/doc/qt-4.8/qtableview.html#selectedIndexes method:

    rows = sorted(set(index.row() for index in
                      self.table.selectedIndexes()))
    for row in rows:
        print('Row %d is selected' % row)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检索 QTableView 的选定行? 的相关文章

  • 如何从 python 发布到 hipchat

    我有一些 python 工具 我想将它们的更新发送到 hipchat 房间 我在其他地方使用 shell 脚本执行此操作 因此我知道它在我们的环境中有效 但我似乎无法将令牌推送到 hipchat API 一定是简单的事情 首先 这会正确进行
  • 非常大的数据集的余弦相似度

    我在计算大量 100 维向量之间的余弦相似度时遇到问题 当我使用from sklearn metrics pairwise import cosine similarity I get MemoryError在我的 16 GB 机器上 每个
  • 用于列出用户和组的 Python 脚本

    我正在尝试编写一个脚本 在自己的行上输出每个用户及其组 如下所示 user1 group1 user2 group1 user3 group2 user10 group6 etc 我正在为此用 python 编写一个脚本 但想知道如何做到这
  • matplotlib 中散点图的轴限制不成立

    我正在尝试使用 matplotlib 将散点图叠加到等值线图上 其中包含 plt contourf X Y XYprof T self nLevels extent extentYPY origin lower if self doScat
  • 字典损坏了键的名称 [Python]

    我的问题是 当我输入带重音的输入时 字典会存储不同的键名 它会用字符代码替换重音字符 我是新来的 我接受一切帮助 感谢您的帮助 usr bin python coding utf 8 products try prodNum int raw
  • 使用 Pyinstaller 制作 exe 文件时出现问题(使用 tkinter 和 Custom tkinter 制作的文件)

    我正在尝试使用 tkinter 和自定义 tkinter 制作一个用于数据输入的小型应用程序 代码在 python 中运行良好 我使用它制作了 exe 文件 pyinstaller onefile noconsole try45 py 但在
  • Python 中快速、小型且重复的矩阵乘法

    我正在寻找一种使用 Python Cython Numpy 快速将许多 4x4 矩阵相乘的方法 任何人都可以给出任何建议吗 为了展示我当前的尝试 我有一个需要计算的算法 A 1 A 2 A 3 A N 哪里每个 A i A j Python
  • 将 python filedialog 限制为特定文件类型

    我创建了以下试用代码来制作一个程序 该程序将 Excel 工作表加载到数据框中 然后将该数据框保存到另一个 Excel 工作表 所有用户选择 import os import pandas from pandas import ExcelW
  • Snakemake - 无法从输出文件中确定输入文件中的通配符

    我对snakemake很陌生 而且对python也不太熟悉 所以抱歉 这可能是一个非常基本的愚蠢问题 我目前正在构建一个管道来分析一组 bamfilesatlas https bitbucket org phaentu atlas wiki
  • 当用户点击无框架 pygame 窗口时如何移动它?

    我想创建一个没有框架的 pygame 窗口 当用户单击它并移动鼠标时该窗口会移动 我尝试了这个脚本 但是当我单击窗口时 打印 0 而不是 1 我的脚本有问题 coding utf 8 import pygame from pygame lo
  • 如何避免绘图散点图中的文本重叠?

    我正在寻找一种解决方案来避免文本标签中的文本重叠 我用散点图创建图像 也许这里有自动化 from pandas import util import plotly express as px import plotly graph obje
  • 使用 Python 发布 XML 文件

    我是 Python 新手 需要一些帮助 我的目标是向 URL 发送一些带有 post 请求的 XML 这将触发发送 SMS 我有一个小的 XML 文档 我想将其发布到 URL 我可以在需要发布的 python 代码中引用我的服务器上的 XM
  • 使用 python 从 hive 读取数据时的性能问题

    我在 hive 中有一个表 其中包含 351 837 110 MB 大小 记录 我正在使用 python 读取该表并写入 sql server 在此过程中 从 hive 读取数据到 pandas dataframe 需要很长时间 当我加载整
  • 如何在matplotlib_venn中将维恩图保存为PNG图

    使用以下代码我尝试创建维恩图 然后另存为文件 import matplotlib from matplotlib venn import venn2 set1 set A B C D set2 set B C D E plt venn2 s
  • admin.py 用于项目,而不是应用程序

    如何指定项目级别admin py 我前段时间问过这个问题 但由于该问题缺乏活动 我刚刚获得了风滚草奖 gt Project 设置 py admin py 这就是我想要开始工作的 App admin py 我知道该怎么做 例如 admin a
  • 应用函数创建以多列作为参数的字符串

    我有一个像这样的数据框 name size type av size type 0 John 23 Qapra 22 1 Dan 21 nuk neH 12 2 Monica 12 kahless 15 我想用一个句子创建一个新列 如下所示
  • 在ubuntu 18.04上安装python 2.7

    有没有办法在 Ubuntu 18 04 上安装 Python 2 7 我尝试了这个命令 但它不起作用 sudo apt install python minimal 有没有办法手动安装 我尝试使用 python 2 7 作为不支持 pyth
  • 在python中求Legendre多项式的根

    我正在编写一个程序 通过勒让德 高斯求积求解积分 n 阶求积算法需要在某一时刻找到 n 阶勒让德多项式 Pn x 的根 并将它们分配给数组 Absc 表示 横坐标 Pn 是一个 n 阶多项式 在区间 1 1 上有 n 个独立的实根 我希望能
  • 使用 python 突出显示图像中的特定文本

    我想突出显示网站屏幕截图中的特定单词 句子 截取屏幕截图后 我使用提取文本pytesseract and cv2 效果很好 我可以获得有关它的文本和数据 import pytesseract import cv2 if name main
  • Python 对象什么时候可以被 pickle

    我正在使用多处理模块在 Python 中进行大量并行处理 我知道某些对象可以是 pickle 因此作为 multi p 中的参数传递 而其他对象则不能 例如 class abc pass a abc pickle dumps a ccopy

随机推荐