python – 使用自定义数据方法自定义QStandardItemModel
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 使用自定义数据方法自定义QStandardItemModel,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1350字,纯文字阅读大概需要2分钟。
内容图文
![python – 使用自定义数据方法自定义QStandardItemModel](/upload/InfoBanner/zyjiaocheng/724/c413fa3c04f2400fb46b107ecba81200.jpg)
我想要做的是,我想制作一个带有可检查项目的listView.我能够使用QStandardItemModel作为我的模型.现在我需要做的是添加一些需要自定义数据方法的功能.正如我们所做的那样,我将QStandardItemModel分类为一个类,并将其指定为listView的模型.现在我遇到的问题是,listView只显示文本而没有检查选项.
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
from random import randint
class rrap(QStandardItemModel):
def __init__(self ,parent = None):
QStandardItemModel.__init__(self,parent)
self.d = QStandardItem(QString("asd"))
self.d.setCheckable(True)
self.d.setFlags(Qt.ItemIsUserCheckable| Qt.ItemIsEnabled)
self.appendRow(self.d)
def data(self , index , role):
if role == Qt.ToolTipRole:
return self.d
if role == Qt.DisplayRole:
return self.d.text()
app = QApplication(sys.argv)
view = QListView()
model = rrap()
view.setModel(model)
view.show()
app.exec_()
这是我正在尝试的一段代码.我在网上搜索,找到显示如何自定义QStandardItemModel的任何示例,但没有得到一个.
解决方法:
您将覆盖QStandardItemModel的数据方法,但不会实现旧数据方法处理的每个角色.您可以为所有角色实现if / elif语句,或者我的首选解决方案,将您不希望自己处理的那些语句移交给原始方法.
因此,我会将您的数据方法更改为:
def data(self , index , role):
if role == Qt.ToolTipRole:
return self.d
if role == Qt.DisplayRole:
return self.d.text()
return QStandardItemModel.data(self, index, role)
当我对您的示例进行此更改时,现在会显示复选框.
内容总结
以上是互联网集市为您收集整理的python – 使用自定义数据方法自定义QStandardItemModel全部内容,希望文章能够帮你解决python – 使用自定义数据方法自定义QStandardItemModel所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。