我对 python 和使用都很陌生WinPython-32bit-2.7.10.3(包括QTDesigner 4.8.7。我正在尝试使用 QtableViews 编写一个接口,以便在两个独立的项目上使用 sqlite 数据库。
该算法大致如下:
\n- 连接到数据库并将数据转换为pandas.DataFrame
\n- 将 DataFrame 转换为 QAbstractTableModel
\n- 将 QAbstractTableModel 应用到tableview.model
\n- 加载对话框
我没有得到相同的行为,具体取决于用于创建数据帧的 sql:\n给定一个 SQL 表“参数”,具有 3 个字段(LIBELLE 作为 varchar,VALEUR 作为 varchar,TEST 作为布尔值),尝试的 sql 是:
\n\n通过第一个请求,我可以编辑表格视图内的数据。对于第二个请求,我可以选择一个“单元格”,对其进行编辑,但是当我提交版本(按 Enter 键)时,数据将设置回其第一个值。
\n\n在搜索时,我发现无论“任何”值是什么,setData 代码的这一行都不起作用:
\n\nself._data.values[index.row()][index.column()] = "anything"\nRun Code Online (Sandbox Code Playgroud)\n\n您可以通过删除主代码中第27行开头的#字符来测试sql源的发生率。
\n\n我已将代码截断到严格的最低限度(非常接近我的第一个项目的原始工作代码),并且我感到非常困惑。如果有人有想法,那就太好了!
\n\n谢谢
\n\nPS:我后来发布了代码,但我还没有找到加入的方法sqlite.db...如果有人可以指导我,我会很高兴添加它;与此同时,我已经在我的google.drive上加入了该地段的整个 …
我有一个 pandas 数据框,我想将其呈现在 QtableView 中并使其可编辑。我创建了以下模型,但由于某种原因,输出在每个字段中都有复选框。我怎样才能摆脱它们?
这是用于制作 qtavleview 中显示的 pandas 数据框并使其可编辑的模型(我正在使用 PySide)
class PandasModelEditable(QtCore.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 or role == QtCore.Qt.EditRole:
return unicode(self._data.iloc[index.row(), index.column()])
return unicode()
def headerData(self, section, orientation, role=QtCore.Qt.DisplayRole):
if role != QtCore.Qt.DisplayRole:
return None
if orientation == QtCore.Qt.Horizontal:
try:
return '%s' % unicode(self._data.columns.tolist()[section])
except (IndexError,):
return unicode()
elif orientation == QtCore.Qt.Vertical: …Run Code Online (Sandbox Code Playgroud)