python - 如何在带有Qtable视图的python pyqt5中添加复选框
问题描述
我使用 python pyqt5 进行了以下窗口设置
当我单击加载按钮时,它会加载我目录中的所有文件。然后我使用一个自定义类,用 datafarme 填充 QtableView。我想要每个名称的复选框,以便我可以选择我选择的文件。
我正在使用以下类为 QtableView 创建模型:
class PandasModel(QAbstractTableModel):
def __init__(self, data, parent=None):
QtCore.QAbstractTableModel.__init__(self, parent)
self._data = data
def rowCount(self, parent=None):
return len(self._data.values)
def columnCount(self, parent=None):
return self._data.columns.size
def data(self, index, role=QtCore.Qt.DisplayRole):
if index.isValid():
if role == QtCore.Qt.DisplayRole:
return str(self._data.values[index.row()][index.column()])
return None
def headerData(self, col, orientation, role):
if orientation == QtCore.Qt.Horizontal and role == QtCore.Qt.DisplayRole:
return self._data.columns[col]
return None
def setData(self, index, value, role):
if not index.isValid():
return False
if role != QtCore.Qt.EditRole:
return False
row = index.row()
if row < 0 or row >= len(self._data.values):
return False
column = index.column()
if column < 0 or column >= self._data.columns.size:
return False
self._data.values[row][column] = value
self.dataChanged.emit(index, index)
return True
def flags(self, index):
flags = super(self.__class__,self).flags(index)
flags |= QtCore.Qt.ItemIsEditable
flags |= QtCore.Qt.ItemIsSelectable
flags |= QtCore.Qt.ItemIsEnabled
flags |= QtCore.Qt.ItemIsDragEnabled
flags |= QtCore.Qt.ItemIsDropEnabled
flags |= QtCore.Qt.ItemIsUserCheckable
return flags
解决方案
推荐阅读
- javascript - 启用屏幕阅读器时,键盘选项卡不起作用
- python - pytorch在模型或层中转发期间如何计算macs和参数?
- core-data - 如何在 SwiftUI 中对 CoreData 关系使用选择器
- rsync - rsync 选项 --update 和 --append-verify
- python - 如何在df中垂直应用函数
- reactjs - 为我的应用程序实现了一个搜索页面,并尝试复制亚马逊搜索页面。使用反应 /universal-router/apollo-graphql
- apache-spark - 带有文件扩展名的 Spark saveAsTextFile
- ruby-on-rails - 在 AWS Cloud9 (c9) 中使用 PostgreSQL 设置 Rails 6
- webpack - Webpack 5 警告:'require.extensions 不受 webpack 支持。改用装载机。
- laravel - 在laravel 8 vue3惯性js上设置ziggy后,app.blade.php中无法识别@route