个人向从零pyqt5项目:day7

个人向从零pyqt5项目:day7,第1张

早就写好了一直放在草稿里忘了发…

可以在表格中修改数据

终于迎来的快要结束的日子,虽然记录只记录了七天,但是拖拖拉拉也是好久,包括去除了一些查资料的时间,今天的目标是能检测qtableview手动修改的内容,找了属实有几天。


最开始一直是在纠结怎么用python把c++qt的connet写成python的.datachanged.connect(函数)的样子,并且已经找到了是QStandardItemModel类的函数,但是一直没找到信号和槽的链接方案。


最后还是在我经常搜索能碰到但是一直没关注的老猿那里找到了解决方案:重写QStandardItemModel的setData函数,经过测试,只有在双击修改(也可能双击后未修改)的时候才会调用到setData函数,而最开始的设置只需要用setItem就好了,并不会初始化的时候不停调用,这也解决了我觉得connect之后会遇到的问题。


#index.row() 行
#index.column() 列
#index.data() 旧数据
#value 新数据

然后就是控制每种类型输入的规定,如果修改的不符合规则那么输出如下代码:

msg_box = QMessageBox(QMessageBox.Warning,'警告','修改不符合标准')
msg_box.exec_()
return super().setData(index, index.data(), role)
#相当于调用了setData函数但是新值=旧值
修改数据的规范

既然甲方可以修改任何数据,那就得考虑到使用者会遇到的任何极端情况。


这时候发现我的缴费之前写的是一个列表来记录缴费次数并不是那么的好,所以重写了一下底层架构,把缴费两次用字典来表示,不用在字典里套列表。


后来又想,我之前用学号+姓名判断是否为同一个人是否不太好,应该就只用学号,但是写到这实在是不愿意改了,顺其自然吧。


写了150行的数据修改规范,真的是晚饭都要吐出来。


打包命令
pyinstaller -F -w main.py

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/571640.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存