吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 373|回复: 6
收起左侧

[学习记录] pyqt5 dataChanged

[复制链接]
dircou 发表于 2024-9-18 12:12
弄了格表格来自动统计,可在

self.model.dataChanged.connect(self.tableEdit)


里遇到点问题,预想效果是改变了某个单元格里的内容后,根据大小来给自身赋值一个颜色
如:小于3500与大于9500则设置背景色或字体颜色为红色!

if vmodeIndex.column() == 3:
row, column = vmodeIndex.row(),vmodeIndex.column()

判断是否在位置列进行双击! abs()取绝对值,负数变正数;round()四舍五入,取整数!

        # print(self.model.index(row,3).data())
        data = self.model.index(row,3).data()
        print(f'Data数据:{data}')
        # 判断当前数据是否是纯数字!
        if not data.isdigit():
            item = QStandardItem('0')
            self.model.setItem(row, 7, item)
            item = QStandardItem('0')
            self.model.setItem(row, 4, item)
            return
        if int(data) < 3500 or int(data) > 9500:
            # 设置背景色
            print('内容大于或小于系统预设值!')
            item = QStandardItem(data)
            # #self.model.setItem(vmodeIndex,)
            item.setForeground(QBrush(QColor(255, 0, 0)))  # 设置字体颜色
            # # item.setBackground(QBrush(Qt.red))
            self.model.setItem(row, column - 1, item)


边学边弄的,运行到  self.model.setItem(row, column - 1, item) 这里就死循环崩溃!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

hei2023 发表于 2024-9-18 16:39
这是干嘛呀
tp522022 发表于 2024-9-18 16:46
没理解错的话 你监听一个cell的变更 ,然后修改cell的外观继续触发cell的变更 不死循环才怪。
kk007kangkai 发表于 2024-9-18 17:56
if self.model.index(row, column - 1).data() != data:
        self.model.setItem(row, column - 1, item)
marione 发表于 2024-9-18 18:05
本帖最后由 marione 于 2024-9-18 18:08 编辑

在setItem前把信号关掉,以前遇到过

blockSignals
XiangMaster 发表于 2024-9-26 21:16
厉害了大佬
 楼主| dircou 发表于 2024-9-26 22:48
感谢各位,以解决  
在self.model.setItem(row, column - 1, item) 前关闭信号检测!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-13 00:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表